diff --git a/README.md b/README.md index ef86f2b8..620f4895 100644 --- a/README.md +++ b/README.md @@ -48,10 +48,9 @@ curl -fsSL https://raw.githubusercontent.com/maxritter/pilot-shell/main/install. - **`/prd`** — brainstorm ideas into clear requirements through with optional deep research - **Spec collaboration** — share specs with teammates, annotations flow back grouped by author - **Quality hooks** — enforce linting, formatting, type checking, and tests as quality gates -- **Security scanner** — built-in credential scanner blocks dangerous patterns in prompt and files - **Context engineering** — preserves decisions and knowledge across sessions - **Code intelligence** — semantic search (Semble) + code knowledge graph (CodeGraph) -- **Token optimization** — 60–90% cost reduction via RTK and context-mode +- **Token optimization** — 60–90% cost reduction via RTK compression and Semble code search - **Extensions** — reusable rules, skills, and MCP servers with team sharing and customization - **Console** — local web dashboard with real-time notifications and session management - **Pilot Bot** — persistent automation agent with scheduled tasks and background jobs @@ -105,6 +104,31 @@ curl -fsSL https://raw.githubusercontent.com/maxritter/pilot-shell/main/uninstal ``` +
+Reset & Refresh + +Over time, Claude Code's accumulated session logs and Pilot Shell's caches can slow things down. A periodic reset gives you a clean baseline: + +```bash +# 1. Inside Claude Code, log out +/logout + +# 2. Back up your current config (just in case) +mv ~/.claude.json ~/.claude.json.bak +mv ~/.claude ~/.claude.bak +mv ~/.pilot ~/.pilot.bak + +# 3. Reinstall Pilot Shell from the official installer +curl -fsSL https://raw.githubusercontent.com/maxritter/pilot-shell/main/install.sh | bash + +# 4. Start Pilot, sign in to Claude, and re-activate your license +pilot +pilot activate +``` + +Once Pilot Shell is running smoothly again, you can delete the `.bak` copies. Forgot your license key? Recover it in the [members area](https://polar.sh/max-ritter/portal). +
+
Using a Dev Container @@ -122,7 +146,7 @@ For tighter isolation when working with untrusted code, combine the dev containe 1. **Prerequisites** — Checks/installs Homebrew, Node.js, Python 3.12+, uv, git, jq 2. **Claude files** — Installs into `~/.claude/` (native layout) — rules, commands, hooks, MCP servers, agents 3. **Config files** — Creates `.nvmrc` and project config -4. **Dependencies** — Installs Semble, RTK, CodeGraph, context-mode (better-sqlite3), [Chrome DevTools MCP](https://github.com/ChromeDevTools/chrome-devtools-mcp), [playwright-cli](https://github.com/microsoft/playwright-cli), [agent-browser](https://agent-browser.dev/), language servers +4. **Dependencies** — Installs Semble, RTK, CodeGraph, [Chrome DevTools MCP](https://github.com/ChromeDevTools/chrome-devtools-mcp), [playwright-cli](https://github.com/microsoft/playwright-cli), [agent-browser](https://agent-browser.dev/), language servers 5. **Shell integration** — Auto-configures bash, fish, and zsh with `pilot` alias 6. **VS Code extensions** — Installs recommended extensions for your stack 7. **Finalize** — Success message with next steps @@ -410,7 +434,7 @@ Each view with project-specific data has an inline **Project Filter** dropdown | **Changes** | Git diff viewer with staged/unstaged files, branch info, and worktree context. **Review mode** adds inline annotations on diff lines — the agent reads them directly before marking a spec as verified | | **Usage** | Daily token costs, model routing breakdown, and usage trends | | **Help** | Documentation, guides, and quick-start resources | -| **Settings** | Model selection per command/sub-agent, spec workflow toggles (worktree, questions, approval), reviewer toggles (spec review, changes review, optional Codex), extended context (1M) global toggle plus per-row overrides (e.g. Opus 1M for planning, Sonnet 200K for implementation) with pricing info | +| **Settings** | One scrollable page (Spec Workflow / Console). Spec workflow toggles (branch isolation, ask questions, plan approval, **Model Switching**), reviewer toggles (spec review, changes review, optional Codex). Active model is set via `/model` — no model dropdowns here. |
@@ -563,38 +587,6 @@ Only ship the files and directories you need. A repo with just `rules/` is a val -### Security Scanner - -Built-in credential scanner catches secrets before they leak — into Claude's context or into git history. Shipped as a single hook registered on four events; runs entirely on your machine, fail-closed by default, **ON out of the box**. - -
-What gets scanned - -| Event | What is scanned | What happens on a match | -|-------|-----------------|-------------------------| -| `UserPromptSubmit` | The submitted prompt text | Prompt is blocked before delivery to Claude | -| `PreToolUse(Read)` | File basename + content (binary-safe). `.env*` files denied unconditionally | Read denied | -| `PreToolUse(Bash)` | Command text, `$VAR` env values, `cat`/`head`/`tail` targets, `git commit` staged diff + staged blobs | Bash denied | -| `PostToolUse(Bash)` | Combined `stdout + stderr` (first 1 MB) | Tool result dropped — leak stays out of the transcript | - -
- -
-Patterns detected - -**24 patterns** ported from [gitleaks](https://github.com/gitleaks/gitleaks) and [TruffleHog](https://github.com/trufflesecurity/trufflehog): AWS, GCP, GitHub PAT, GitLab PAT, npm, Stripe, OpenAI, Anthropic, Slack, Discord, Telegram, Twilio, SendGrid, Mailgun, JWT, PEM/SSH private keys, generic high-entropy secrets, and more. Generic patterns use a Shannon-entropy filter so `API_KEY=test12345` doesn't trip the scanner. - -
- -
-Bypass and toggle - -**Bypass per-prompt** with `[allow-secret]` or `[allow-all]` in the next prompt — one-shot, the tag is consumed by the first tool call. Tags inside an assistant message or a Bash command string are NOT honoured (prompt-injection defense). - -Toggle from Console → Settings → Security → **Credential Scanner**. The setting persists to `~/.pilot/config.json` (`securityScanner.credentialScanner`) and the launcher exports `PILOT_CREDENTIAL_SCANNER_ENABLED` so the four hook entry points respect it. See the [Security Scanner](https://pilot-shell.com/docs/features/security) page for the full pattern list and rationale. - -
- ### Pilot Bot Run Claude Code as a persistent 24/7 automation agent with scheduled tasks, background jobs and heartbeat monitoring: @@ -655,18 +647,17 @@ For full details on every component, see the **[Documentation](https://pilot-she | [**Pilot Console**](https://pilot-shell.com/docs/features/console) | Local web dashboard at `localhost:41777` — 10 views (Dashboard, Sessions, Memories, Requirements, Specifications, Extensions, Changes, Usage, Help, Settings). Port is configurable in Console Settings (`CLAUDE_PILOT_WORKER_PORT`). SQLite-backed, nothing leaves your machine | | [**Pilot Bot**](https://pilot-shell.com/docs/features/bot) | Persistent 24/7 automation agent with scheduled jobs, background tasks, heartbeat monitoring, and optional Telegram integration for bidirectional messaging | | [**Status Line**](https://pilot-shell.com/docs/features/statusline) | Real-time session dashboard below every response — model, context usage, git status, cost, spec progress, and savings metrics across 3 lines | -| [**Smart Model Routing**](https://pilot-shell.com/docs/features/model-routing) | Opus for planning, Sonnet for implementation and verification. Configurable per-phase via Console Settings, with a Custom… option for pinning explicit Anthropic model IDs (e.g. `claude-opus-4-6`). 1M context available — included with API plans (Team, Enterprise); Max users can mix per-row (Opus 1M for planning, Sonnet 200K for implementation) without API billing | -| [**Rules & Standards**](https://pilot-shell.com/docs/features/rules) | 11 built-in rules for workflow, testing, verification, debugging, code review, documentation sync, tooling, and context protection + 5 coding standards activated by file type (Python, TypeScript, Go, Frontend, Backend) | -| [**Context Optimization**](https://pilot-shell.com/docs/features/context-optimization) | Lean context strategies — context-mode sandbox (large outputs never enter context), RTK output compression, conditional rule loading, progressive skill disclosure, lazy MCP tool loading. Compaction resilience for 200K windows | +| [**Model Switching**](https://pilot-shell.com/docs/features/model-routing) | `/model` is the only switch. Recommended flow: Opus for planning (the `spec-mode-guard` hook hard-blocks `/spec` on non-Opus), then `/model sonnet[1m]` for implementation. Two resume paths: Option A — switch model and type any prompt (fast, carries planning context); Option B — `/clear` then `/spec ` (fresh session, lower cost). The opt-out **Model Switching** toggle handles the pause. | +| [**Rules & Standards**](https://pilot-shell.com/docs/features/rules) | 10 built-in rules for workflow, testing, verification, debugging, code review, documentation sync, tooling, and MCP routing + 5 coding standards activated by file type (Python, TypeScript, Go, Frontend, Backend) | +| [**Context Optimization**](https://pilot-shell.com/docs/features/context-optimization) | Lean context strategies — RTK output compression, Semble chunk-only code search, conditional rule loading, progressive skill disclosure, lazy MCP tool loading. Compaction resilience for 200K windows | | [**Remote Control**](https://pilot-shell.com/docs/features/remote-control) | Control Pilot sessions from your phone, tablet, or any browser — send prompts, monitor progress, and receive notifications remotely | -| [**Hooks Pipeline**](https://pilot-shell.com/docs/features/hooks) | 18 hook registrations across 7 events — quality checks on every file edit (ruff, ESLint, go vet), TDD enforcement, token optimization via RTK (60–90% savings), credential scanning, session continuity, memory capture, and session lifecycle management | -| [**Security Scanner**](https://pilot-shell.com/docs/features/security) | Built-in credential scanner — 24 secret patterns (AWS, GitHub, Stripe, OpenAI, Anthropic, JWT, ...) blocked across prompts, file reads, Bash commands, command output, and `git commit` staged diffs. `.env*` files are denied unconditionally. Bypass per-prompt with `[allow-secret]`. Toggle in Console → Settings → Security | +| [**Hooks Pipeline**](https://pilot-shell.com/docs/features/hooks) | 15 hook registrations across 7 events — quality checks on every file edit (ruff, ESLint, go vet), TDD enforcement, token optimization via RTK (60–90% savings), session continuity, memory capture, and session lifecycle management | | [**Extensions**](https://pilot-shell.com/docs/features/extensions) | Unified view of skills, rules, commands, and agents across global, project, plugin, and remote scopes. Team sharing via git with push, pull, diff, and APM-compatible export | | [**Customization**](https://pilot-shell.com/docs/features/customization) | Customize what Pilot auto-installs — tweak built-in skills (spec, prd, etc.), modify rules, register additional hooks, add agents, and adjust auto-applied MCP / Claude settings. Source is a git repo (team-wide) or local directory (personal). Skill overlays (`insert_after` / `insert_before` / `replace` / `disable`) modify core workflows without full-file forks; fragments stay pinned to upstream by hash with drift detection. Team and Enterprise plans | | [**Pilot CLI**](https://pilot-shell.com/docs/features/cli) | Session management, headless mode (`-p`) for CI/CD and scripts, worktree isolation, licensing, context monitoring. Run `pilot` or `ccp` to start | -| [**MCP Servers**](https://pilot-shell.com/docs/features/mcp-servers) | 7 preconfigured MCP servers for library docs, persistent memory, web search, GitHub code search, web page fetching, code knowledge graphs, and hybrid code search (Semble), plus the context-mode plugin for sandboxed execution | +| [**MCP Servers**](https://pilot-shell.com/docs/features/mcp-servers) | 7 preconfigured MCP servers for library docs, persistent memory, web search, GitHub code search, web page fetching, code knowledge graphs, and hybrid code search (Semble), plus the Chrome DevTools MCP plugin for browser automation | | [**Language Servers**](https://pilot-shell.com/docs/features/language-servers) | Real-time diagnostics for Python (basedpyright), TypeScript (vtsls), Go (gopls). Auto-installed, auto-configured | -| [**Open Source Tools**](https://pilot-shell.com/docs/features/open-source-tools) | 20+ open-source tools installed alongside Pilot — Semble (hybrid code search), CodeGraph (code intelligence), RTK (token optimization), context-mode, language servers, and system prerequisites | +| [**Open Source Tools**](https://pilot-shell.com/docs/features/open-source-tools) | 20+ open-source tools installed alongside Pilot — Semble (hybrid code search), CodeGraph (code intelligence), RTK (token optimization), language servers, and system prerequisites | --- @@ -758,7 +749,7 @@ Yes. Pilot Shell installs once globally and works across all your projects — y Pilot Shell sets Claude Code to `bypassPermissions` mode by default so the `/spec` workflow can run autonomously — planning, implementing, and verifying without pausing for permission prompts at every tool call. This is what enables the end-to-end spec-driven development experience. -**In Quick Mode (regular chat), you have full control.** Press `Shift+Tab` at any time to cycle through [Claude Code's permission modes](https://pilot-shell.com/docs/getting-started/permission-modes): +**In Quick Mode (regular chat), you have full control.** Press `Shift+Tab` at any time to cycle through [Claude Code's permission modes](https://pilot-shell.com/docs/features/permission-modes): | Mode | Behavior | | ---------------- | ----------------------------------------------------- | @@ -799,6 +790,20 @@ For tighter isolation when working with untrusted code, layer Claude Code's [`/s +
+Pilot feels slower after a few weeks — what should I do? + +Claude Code's session logs and Pilot's caches grow over time and can degrade performance. A periodic reset every few weeks restores a clean baseline: + +1. Run `/logout` inside Claude Code. +2. Back up `~/.claude.json`, `~/.claude/`, and `~/.pilot/` (`mv` them to `.bak` copies). +3. Reinstall Pilot Shell with the official installer (`curl -fsSL https://raw.githubusercontent.com/maxritter/pilot-shell/main/install.sh | bash`). +4. Run `pilot`, sign in to Claude again, and `pilot activate `. + +Forgot your license key? Recover it in the [members area](https://polar.sh/max-ritter/portal). Full step-by-step is in the [Reset & Refresh](#install) section above. + +
+
What's the difference between pilot and pilot bot? diff --git a/console/src/services/worker/http/routes/ExtensionRoutes.ts b/console/src/services/worker/http/routes/ExtensionRoutes.ts index 24522803..5e539f7e 100644 Binary files a/console/src/services/worker/http/routes/ExtensionRoutes.ts and b/console/src/services/worker/http/routes/ExtensionRoutes.ts differ diff --git a/console/src/services/worker/http/routes/SettingsRoutes.ts b/console/src/services/worker/http/routes/SettingsRoutes.ts index 8a244f6d..c6883000 100644 Binary files a/console/src/services/worker/http/routes/SettingsRoutes.ts and b/console/src/services/worker/http/routes/SettingsRoutes.ts differ diff --git a/console/src/services/worker/http/routes/ToolSavingsRoutes.ts b/console/src/services/worker/http/routes/ToolSavingsRoutes.ts index 5389828b..db821ca3 100644 Binary files a/console/src/services/worker/http/routes/ToolSavingsRoutes.ts and b/console/src/services/worker/http/routes/ToolSavingsRoutes.ts differ diff --git a/console/src/ui/viewer/App.tsx b/console/src/ui/viewer/App.tsx index 524e0fa2..d0a2d087 100644 Binary files a/console/src/ui/viewer/App.tsx and b/console/src/ui/viewer/App.tsx differ diff --git a/console/src/ui/viewer/components/ActivationModal.tsx b/console/src/ui/viewer/components/ActivationModal.tsx index f365573a..cddbf97a 100644 Binary files a/console/src/ui/viewer/components/ActivationModal.tsx and b/console/src/ui/viewer/components/ActivationModal.tsx differ diff --git a/console/src/ui/viewer/components/LicenseGate.tsx b/console/src/ui/viewer/components/LicenseGate.tsx index 53789539..f86f3ea0 100644 Binary files a/console/src/ui/viewer/components/LicenseGate.tsx and b/console/src/ui/viewer/components/LicenseGate.tsx differ diff --git a/console/src/ui/viewer/hooks/useLegacySettingsRedirect.ts b/console/src/ui/viewer/hooks/useLegacySettingsRedirect.ts new file mode 100644 index 00000000..52af6e95 Binary files /dev/null and b/console/src/ui/viewer/hooks/useLegacySettingsRedirect.ts differ diff --git a/console/src/ui/viewer/hooks/useSettings.ts b/console/src/ui/viewer/hooks/useSettings.ts index 957a63a8..1113e5c0 100644 Binary files a/console/src/ui/viewer/hooks/useSettings.ts and b/console/src/ui/viewer/hooks/useSettings.ts differ diff --git a/console/src/ui/viewer/hooks/useToolSavings.ts b/console/src/ui/viewer/hooks/useToolSavings.ts index 7629a194..c1ae6fd7 100644 Binary files a/console/src/ui/viewer/hooks/useToolSavings.ts and b/console/src/ui/viewer/hooks/useToolSavings.ts differ diff --git a/console/src/ui/viewer/views/Settings/ModelSelect.tsx b/console/src/ui/viewer/views/Settings/ModelSelect.tsx deleted file mode 100644 index 89c2099b..00000000 Binary files a/console/src/ui/viewer/views/Settings/ModelSelect.tsx and /dev/null differ diff --git a/console/src/ui/viewer/views/Settings/index.tsx b/console/src/ui/viewer/views/Settings/index.tsx index 68b29ba1..3b002256 100644 Binary files a/console/src/ui/viewer/views/Settings/index.tsx and b/console/src/ui/viewer/views/Settings/index.tsx differ diff --git a/console/src/ui/viewer/views/Settings/sections/ConsoleSection.tsx b/console/src/ui/viewer/views/Settings/sections/ConsoleSection.tsx index 18a756fc..3148168f 100644 Binary files a/console/src/ui/viewer/views/Settings/sections/ConsoleSection.tsx and b/console/src/ui/viewer/views/Settings/sections/ConsoleSection.tsx differ diff --git a/console/src/ui/viewer/views/Settings/sections/ModelsSection.tsx b/console/src/ui/viewer/views/Settings/sections/ModelsSection.tsx deleted file mode 100644 index a1ce7a3c..00000000 Binary files a/console/src/ui/viewer/views/Settings/sections/ModelsSection.tsx and /dev/null differ diff --git a/console/src/ui/viewer/views/Settings/sections/SecuritySection.tsx b/console/src/ui/viewer/views/Settings/sections/SecuritySection.tsx deleted file mode 100644 index fec39d78..00000000 Binary files a/console/src/ui/viewer/views/Settings/sections/SecuritySection.tsx and /dev/null differ diff --git a/console/src/ui/viewer/views/Settings/sections/SpecWorkflowSection.tsx b/console/src/ui/viewer/views/Settings/sections/SpecWorkflowSection.tsx index a3e23183..7360d7b3 100644 Binary files a/console/src/ui/viewer/views/Settings/sections/SpecWorkflowSection.tsx and b/console/src/ui/viewer/views/Settings/sections/SpecWorkflowSection.tsx differ diff --git a/console/src/ui/viewer/views/Settings/sections/_shared.tsx b/console/src/ui/viewer/views/Settings/sections/_shared.tsx index 1178badf..7ea83671 100644 Binary files a/console/src/ui/viewer/views/Settings/sections/_shared.tsx and b/console/src/ui/viewer/views/Settings/sections/_shared.tsx differ diff --git a/console/src/ui/viewer/views/Usage/ModelRoutingInfo.tsx b/console/src/ui/viewer/views/Usage/ModelRoutingInfo.tsx deleted file mode 100644 index 257f8dfb..00000000 Binary files a/console/src/ui/viewer/views/Usage/ModelRoutingInfo.tsx and /dev/null differ diff --git a/console/src/ui/viewer/views/Usage/index.tsx b/console/src/ui/viewer/views/Usage/index.tsx index 7e58bdfe..ebd4dd28 100644 Binary files a/console/src/ui/viewer/views/Usage/index.tsx and b/console/src/ui/viewer/views/Usage/index.tsx differ diff --git a/console/tests/hooks/useSettings-save-error.test.tsx b/console/tests/hooks/useSettings-save-error.test.tsx new file mode 100644 index 00000000..1abc9297 Binary files /dev/null and b/console/tests/hooks/useSettings-save-error.test.tsx differ diff --git a/console/tests/hooks/useSettings.test.ts b/console/tests/hooks/useSettings.test.ts index 47b536ed..7da2bab3 100644 Binary files a/console/tests/hooks/useSettings.test.ts and b/console/tests/hooks/useSettings.test.ts differ diff --git a/console/tests/settings-routes.test.ts b/console/tests/settings-routes.test.ts index 8763ab4a..5313b0f9 100644 Binary files a/console/tests/settings-routes.test.ts and b/console/tests/settings-routes.test.ts differ diff --git a/console/tests/ui/legacy-settings-redirect.test.tsx b/console/tests/ui/legacy-settings-redirect.test.tsx new file mode 100644 index 00000000..56cb8898 Binary files /dev/null and b/console/tests/ui/legacy-settings-redirect.test.tsx differ diff --git a/console/tests/ui/model-routing-info.test.ts b/console/tests/ui/model-routing-info.test.ts deleted file mode 100644 index 2577d09b..00000000 Binary files a/console/tests/ui/model-routing-info.test.ts and /dev/null differ diff --git a/console/tests/ui/usage-view.test.ts b/console/tests/ui/usage-view.test.ts index 2a142bad..b05b1c28 100644 Binary files a/console/tests/ui/usage-view.test.ts and b/console/tests/ui/usage-view.test.ts differ diff --git a/console/tests/worker/extension-routes.test.ts b/console/tests/worker/extension-routes.test.ts index 77edbc0f..a33ac387 100644 Binary files a/console/tests/worker/extension-routes.test.ts and b/console/tests/worker/extension-routes.test.ts differ diff --git a/docs/docusaurus/docs/features/console.md b/docs/docusaurus/docs/features/console.md index ab94e393..d643f548 100644 --- a/docs/docusaurus/docs/features/console.md +++ b/docs/docusaurus/docs/features/console.md @@ -33,7 +33,7 @@ Each view that supports project filtering has an inline **Project Filter** dropd | **Changes** | Git diff viewer with staged/unstaged files, branch info, worktree context. Hosts Code Review and Spec Task Correlation (below). | | **Usage** | Daily token costs, model routing breakdown (Opus vs Sonnet), and usage trends. | | **Help** | Embedded pilot-shell.com documentation — full technical reference without leaving the Console. | -| **Settings** | Model selection, spec workflow toggles, reviewer toggles, extended context toggle, security scanner toggle. See [Settings](#settings) below. | +| **Settings** | Spec workflow toggles (branch isolation, ask questions, plan approval, Model Switching), reviewer toggles. See [Settings](#settings) below. | ## Plan Annotation @@ -103,30 +103,15 @@ The Console sends real-time alerts via Server-Sent Events when Claude needs your ## Settings -The Settings tab (`localhost:41777/#/settings`, or your custom port) controls Pilot Shell behavior. Model preferences, spec workflow toggles, and reviewer agents save to `~/.pilot/config.json`. The **Console → Worker Port** field saves to `~/.pilot/memory/settings.json` and lets you move the Console off `41777` if it conflicts with another service. Both changes take effect after restarting Pilot. +The Settings tab (`localhost:41777/#/settings`, or your custom port) is a single scrollable page with two stacked sections: **Spec Workflow** and **Console**. Toggle preferences save to `~/.pilot/config.json`. The **Console → Worker Port** field saves to `~/.pilot/memory/settings.json` and lets you move the Console off `41777` if it conflicts with another service. Both changes take effect after restarting Pilot. -### Model preferences - -Choose between **Sonnet 4.6** ($3/$15 per MTok) and **Opus 4.7** ($5/$25 per MTok) independently per component. - -| Component | Default | Scope | -|-----------|---------|-------| -| **Main Session** | Opus | Quick mode and direct chat | -| **Planning** | Opus | Codebase exploration, architecture design, plan writing | -| **Implementation** | Sonnet | TDD loop — write test, write code, verify | -| **Verification** | Sonnet | Test execution, code review orchestration | - -**Custom model IDs** — each dropdown also offers a **Custom…** option. Selecting it reveals a text input where you can pin an explicit Anthropic model ID such as `claude-opus-4-6`, `claude-opus-4-5`, or `claude-sonnet-4-5-20250929`. Useful for reproducibility, team standardization, or falling back to an older model when a newer release mis-triggers content filters on legitimate code. The value is passed through to Claude Code verbatim. Custom IDs may carry the `[1m]` suffix (e.g. `claude-opus-4-7[1m]`) — the per-row 1M checkbox is disabled for Custom rows because the ID itself encodes the context window. - -**Extended Context (1M):** the global toggle is the **default** for every row in the Model Preferences table that doesn't carry a per-row override. Each main-and-skill row also has a **per-row 1M checkbox**, so you can mix freely — e.g. *Opus 1M for planning, Sonnet 200K for implementation/verification* on Max plan without API billing. The toggle only applies to the `sonnet` and `opus` aliases; Custom rows are greyed out (their suffix encodes the context window). - -API subscribers (Team, Enterprise) get 1M at no additional cost with all models. Max plan users must use Opus for any row that wants 1M — Sonnet 1M is not included in the Max plan. - -**Per-row overrides on disk** — overrides are stored in the `extendedContextOverrides` map (see config example below). Keys are `main` or skill names (e.g. `spec-plan`, `spec-implement`). A missing key falls back to the global `extendedContext` flag. An empty map preserves pre-#139 behaviour exactly. +:::info Model selection lives in Claude Code +Pilot doesn't manage model preferences — pick your model with `/model sonnet[1m]`, `/model opus[1m]`, or an explicit Anthropic ID like `/model claude-opus-4-6`. See [Model Routing](./model-routing.md) for the recommended flow. +::: -### Review agents +### Spec Workflow → Review Agents -Two Claude sub-agents run in separate context windows during `/spec`. Each has its own model selector; disabling an agent skips it entirely. +Two Claude sub-agents run in separate context windows during `/spec`. Toggle each on or off; the sub-agent model is hard-coded to Sonnet because sub-agents do not support 1M context. | Agent | Default | Role | |-------|---------|------| @@ -140,54 +125,29 @@ Two Claude sub-agents run in separate context windows during `/spec`. Each has i | **Codex Spec Review** | Off | Adversarial plan review — second opinion before implementation. | | **Codex Changes Review** | Off | Adversarial code review — second opinion after implementation. | -### Automation toggles +### Spec Workflow → Automation -Three toggles control user interaction points during `/spec`. Disable all three for fully autonomous end-to-end execution. +Four toggles control user interaction points during `/spec`. Disable all four for fully autonomous end-to-end execution. | Toggle | Default | Enabled | Disabled | |--------|---------|---------|----------| -| **Worktree Support** | On | Asks how to handle branching at `/spec` start | Skips the branch question — changes go on the current branch | +| **Branch Isolation** | On | Asks how to isolate `/spec` changes (new branch or worktree) | Always works on the current branch | | **Ask Questions** | On | Asks clarifying questions during planning | Planning makes autonomous default choices | | **Plan Approval** | On | Requires your approval before implementation starts | Implementation begins automatically after planning | +| **Model Switching** | On | Pauses after plan approval. Option A: run `/model sonnet[1m]`, type any prompt — resumes with planning context in the new model (Claude Code will confirm; carries extra cost). Option B: run `/clear` then `/spec ` — fresh session, lower cost. | Plan → implement → verify runs continuously on whichever model is active | -With all three off, `/spec add user authentication` plans, implements, and verifies the feature end-to-end without checkpoints. +With all four off, `/spec add user authentication` plans, implements, and verifies the feature end-to-end without checkpoints on whichever model is currently active. :::warning Token usage in autonomous mode No checkpoints means Claude executes the entire workflow without asking. Make sure your prompt is specific enough to avoid misinterpretation. You can always interrupt with Escape. ::: -### Security - -| Toggle | Default | Description | -|--------|---------|-------------| -| **Credential Scanner** | On | Scans prompts, file reads, Bash commands, command output, and `git commit` staged diffs for 24 secret patterns (AWS, GitHub, Stripe, OpenAI, Anthropic, JWT, etc.). Also denies any `.env*` file read unconditionally. Bypass per-prompt with `[allow-secret]`. | - -The toggle persists to `securityScanner.credentialScanner` in `~/.pilot/config.json` and the launcher exports `PILOT_CREDENTIAL_SCANNER_ENABLED` so the four hook entry points respect it. Restart Pilot after toggling. See the [Security Scanner](./security.md) page for the full pattern list, scan-event matrix, and allow-tag semantics. - ### Config file All settings are stored in `~/.pilot/config.json`: ```json { - "model": "opus", - "extendedContext": true, - "extendedContextOverrides": { - "spec-plan": true, - "spec-implement": false - }, - "skills": { - "spec-plan": "opus", - "spec-implement": "sonnet", - "spec-verify": "sonnet", - "spec": "sonnet", - "setup-rules": "opus", - "create-skill": "opus" - }, - "agents": { - "spec-review": "sonnet", - "changes-review": "sonnet" - }, "reviewerAgents": { "specReview": true, "changesReview": true @@ -199,14 +159,10 @@ All settings are stored in `~/.pilot/config.json`: "specWorkflow": { "branchIsolation": true, "askQuestionsDuringPlanning": true, - "planApproval": true - }, - "securityScanner": { - "credentialScanner": true + "planApproval": true, + "modelSwitch": true } } ``` -`extendedContextOverrides` is keyed by the skill's filesystem name (e.g. `spec-plan`); the launcher also accepts the resolved alias (e.g. `spec-bugfix-plan` → `spec-plan`) on lookup miss for forward-compat. Omit the key to inherit the global `extendedContext` default. Agents intentionally cannot opt into 1M — sub-agents do not support extended context. - -You can edit this file directly — the Settings UI is a convenience wrapper. Changes require a Claude Code restart. +You can edit `~/.pilot/config.json` directly — the Settings UI is a convenience wrapper. Changes require a Claude Code restart. diff --git a/docs/docusaurus/docs/features/context-optimization.md b/docs/docusaurus/docs/features/context-optimization.md index 8ea0702d..ac789d64 100644 --- a/docs/docusaurus/docs/features/context-optimization.md +++ b/docs/docusaurus/docs/features/context-optimization.md @@ -14,21 +14,12 @@ With 1M context windows (API subscribers on Team and Enterprise get this on all | Strategy | Savings | How | |----------|---------|-----| -| **context-mode sandbox** | Up to 98% | Routes large-output commands to a sandboxed executor — only your printed summary enters context. An FTS5 knowledge base indexes content for on-demand search. Blocks curl/wget/WebFetch entirely. | | **RTK proxy** | 60–90% | Rewrites dev tool output (`git status`, `npm test`, etc.) to remove noise before it enters the context window | +| **Semble code search** | ~98% | Returns only the matched chunks instead of dumping whole files — Semble's own benchmark shows ~98% fewer tokens than `grep + read` at 94% recall | | **Conditional rule loading** | Variable | Coding standards load only for matching file types — Python rules don't load when editing TypeScript | | **Progressive skill disclosure** | ~90% | Skill frontmatter (~100 tokens) loads always; full SKILL.md loads only on activation; linked files load on demand | | **Scoped MCP tools** | Variable | MCP tool schemas are lazy-loaded via `ToolSearch` — only fetched when needed, not preloaded | - -### context-mode in detail - -The biggest single source of context savings. When a command would dump 50KB+ of output into your context window, context-mode intercepts it and runs it in a sandbox. The tool hierarchy: - -1. **`ctx_batch_execute`** — Run multiple commands + search in one call. Replaces 30+ individual tool calls. -2. **`ctx_search`** — Query indexed content. Pass all questions as an array in one call. -3. **`ctx_execute` / `ctx_execute_file`** — Run code in sandbox (JS, Python, shell). Only stdout enters context. - -PreToolUse hooks automatically guide Claude toward these tools when it attempts commands that would produce large output. Session continuity hooks (PostToolUse, PreCompact, SessionStart) track 13 event categories across compactions. +| **Routing hooks** | Variable | PreToolUse hooks block `curl`/`wget`/built-in `WebFetch` and redirect to the dedicated web-fetch MCP, so large pages don't dump into context | ## Status line display diff --git a/docs/docusaurus/docs/features/hooks.md b/docs/docusaurus/docs/features/hooks.md index f704deb8..cb71d51d 100644 --- a/docs/docusaurus/docs/features/hooks.md +++ b/docs/docusaurus/docs/features/hooks.md @@ -1,12 +1,12 @@ --- sidebar_position: 2 title: Hooks Pipeline -description: 18 quality hooks across 7 Claude Code lifecycle events — auto-format, lint, type-check, credential scanning, and TDD enforcement that fire automatically at every stage of work. +description: 15 quality hooks across 7 Claude Code lifecycle events — auto-format, lint, type-check, and TDD enforcement that fire automatically at every stage of work. --- # Hooks Pipeline -18 hook registrations across 7 lifecycle events — quality and security enforcement on autopilot. +15 hook registrations across 7 lifecycle events — quality enforcement on autopilot. Blocking hooks reject actions or force fixes. Non-blocking hooks warn without interrupting. Async hooks run in the background. Two additional command-scoped Stop hooks run during `/spec` phases. @@ -28,7 +28,6 @@ Blocking hooks reject actions or force fixes. Non-blocking hooks warn without in | Hook | Type | Description | |------|------|-------------| | `spec_mode_guard.py` | Blocking | Blocks `/spec` in plan mode, warns when not in bypassPermissions mode | -| `credential_scanner.py` | Blocking | Scans the prompt text for 24 secret patterns (AWS, GitHub, Stripe, OpenAI, Anthropic, JWT, etc.); blocks delivery to Claude on match. Bypass with `[allow-secret]` in the next prompt. See [Security Scanner](./security.md) | | Session initializer | Async | Registers the session with the Console worker daemon | ## PreToolUse @@ -39,7 +38,6 @@ Blocking hooks reject actions or force fixes. Non-blocking hooks warn without in |------|------|-------------| | `tool_redirect.py` | Blocking | Redirects to MCP alternatives, blocks unsupported web fetch paths, and enforces `/spec`-compatible tool usage | | `tool_token_saver.py` | Blocking | Rewrites Bash commands via RTK for token savings (60-90% reduction) | -| `credential_scanner.py` | Blocking | On `Read` — denies `.env*` files unconditionally and any file whose contents match a secret pattern. On `Bash` — scans the command text, `$VAR` env values, `cat`/`head`/`tail` targets, and the `git commit` staged diff. See [Security Scanner](./security.md) | ## PostToolUse @@ -48,7 +46,6 @@ Blocking hooks reject actions or force fixes. Non-blocking hooks warn without in | Hook | Type | Description | |------|------|-------------| | `file_checker.py` | Blocking | Quality checks: Python (ruff), TypeScript (ESLint), Go (go vet + golangci-lint). Also warns when implementation files are edited without a failing test (TDD) | -| `credential_scanner.py` | Blocking | Scans the combined `stdout + stderr` of every Bash command (first 1 MB) for secrets and drops the tool result on match — keeps leaked secrets out of the transcript. See [Security Scanner](./security.md) | | `context_monitor.py` | Non-blocking | Tracks context usage 0-100% with warnings as compaction approaches | | Memory observer | Async | Captures decisions, discoveries, and bugfixes to persistent memory | diff --git a/docs/docusaurus/docs/features/mcp-servers.md b/docs/docusaurus/docs/features/mcp-servers.md index b0dccba9..4d09ceb7 100644 --- a/docs/docusaurus/docs/features/mcp-servers.md +++ b/docs/docusaurus/docs/features/mcp-servers.md @@ -1,39 +1,14 @@ --- sidebar_position: 1 title: MCP Servers -description: Pre-configured MCP servers — context7 for library docs, mem-search for persistent memory, web-search, grep-mcp, web-fetch, CodeGraph, and Semble in every session. +description: Pre-configured MCP servers — context7 for library docs, mem-search for persistent memory, web-search, grep-mcp, web-fetch, CodeGraph, and Semble in every session, plus chrome-devtools-mcp. --- # MCP Servers External context always available to every session. -Seven MCP servers are pre-configured in `.mcp.json` and lazy-loaded via `ToolSearch` to keep context lean. Pilot also installs the `context-mode` and `chrome-devtools-mcp` Claude plugins alongside them. Add your own MCP entries in `.mcp.json`, then run `/setup-rules` to generate documentation. - -## context-mode plugin - -**Context window protection — sandbox execution and FTS5 knowledge base** - -Keeps large outputs out of your context window. Commands that produce more than ~20 lines of output are routed to a sandboxed executor — only your printed summary enters context. An FTS5 knowledge base indexes content for later search. This ships via the Claude plugin system, not as an entry inside `.mcp.json`. Integrated via [context-mode](https://github.com/mksglu/context-mode). - -``` -ctx_batch_execute(commands: [...], queries: ["find errors"]) -ctx_execute(language: "javascript", code: "const r = await fetch(...)") -ctx_execute_file(path: "data.json", language: "javascript", code: "...") -ctx_search(queries: ["auth flow", "login endpoint"]) -``` - -**Key capabilities:** - -| Tool | Use case | -|------|----------| -| `ctx_batch_execute` | Run multiple commands + search in one call — replaces 30+ individual tool calls | -| `ctx_execute` | Run code in sandbox (JS, Python, shell) — only stdout enters context | -| `ctx_execute_file` | Process a file in sandbox — file content never enters context | -| `ctx_search` | Query the FTS5 knowledge base with multiple queries in one call | -| `ctx_index` | Store content in the knowledge base for later search | - -**Routing hooks** automatically intercept tools that produce large output (Bash, Read, Grep, WebFetch) and suggest context-mode alternatives. curl/wget and WebFetch are blocked entirely — use dedicated web-fetch and web-search MCP servers instead. +Seven MCP servers are pre-configured in `.mcp.json` and lazy-loaded via `ToolSearch` to keep context lean. Pilot also installs the `chrome-devtools-mcp` Claude plugin alongside them. Add your own MCP entries in `.mcp.json`, then run `/setup-rules` to generate documentation. ## chrome-devtools-mcp plugin @@ -160,6 +135,8 @@ codegraph_context(task="refactor authentication flow") :::info Tool selection Rules specify the preferred order — Semble first for intent-based codebase questions, CodeGraph for structural queries (call tracing, impact analysis), context7 for library API lookups, grep-mcp for production code examples, web-search for current information. The `tool_redirect.py` hook blocks the built-in WebSearch/WebFetch and the Explore agent, redirecting to these alternatives. + +curl/wget and WebFetch are blocked entirely — use the dedicated web-fetch and web-search MCP servers instead. ::: ## Semble diff --git a/docs/docusaurus/docs/features/model-routing.md b/docs/docusaurus/docs/features/model-routing.md index 2ca7313c..54bca051 100644 --- a/docs/docusaurus/docs/features/model-routing.md +++ b/docs/docusaurus/docs/features/model-routing.md @@ -1,46 +1,55 @@ --- sidebar_position: 5 title: Model Routing -description: Opus where reasoning matters, Sonnet where speed and cost matter — automatic per-skill model routing keeps quality high while controlling token spend. +description: Plan with Opus, implement with Sonnet — without juggling config files. --- # Model Routing -Opus where reasoning matters, Sonnet where speed and cost matter. +There's one switch: Claude Code's `/model`. Whatever you set there is what every Pilot workflow uses. No per-skill table, no Pilot-side override. -Pilot automatically routes each phase to the right model. Rather than always using the most powerful (and most expensive) model, it applies reasoning where reasoning has the highest impact — and uses fast, cost-effective execution where a clear spec makes quality predictable. +The interesting question is *when* to switch. Opus reasons better; Sonnet is faster and cheaper. The cost-saving move is to plan on Opus, then drop to Sonnet for the mechanical work that follows. -## Routing Table +## The Default Flow With `/spec` -| Phase | Model | Rationale | -|-------|-------|-----------| -| **Planning** | Opus | Exploring your codebase, designing architecture, and writing the spec requires deep reasoning. A good plan is the foundation — invest here. | -| **Spec Review** | Sonnet | The spec-review sub-agent validates completeness and challenges assumptions on every feature spec. Optional Codex adversarial review provides an independent second opinion. *(enabled by default — disable in Console Settings → Reviewers)* | -| **Implementation** | Sonnet | With a solid plan, writing code is straightforward. Sonnet is fast, cost-effective, and produces high-quality code when guided by a clear spec and strong hooks. | -| **Changes Review** | Sonnet | The unified changes-review agent handles deep code review (compliance + quality + goal). The orchestrator runs mechanical checks and applies fixes efficiently. Optional Codex adversarial review for additional coverage. *(enabled by default — disable in Console Settings → Reviewers)* | +The Model Switching toggle (on by default) builds the swap into the spec workflow: -## The Insight +1. `/model opus[1m]` — Pilot refuses to start `/spec` on Sonnet. +2. `/spec ` — Pilot drafts the plan and asks for approval. +3. Approve. Pilot prints a short handoff message and stops. +4. Switch models — two paths below. -- Implementation is the easy part when the plan is good and verification is thorough -- Pilot invests reasoning power (Opus) where it has the highest impact: planning -- Sonnet handles implementation and verification — guided by a solid plan and structured review agents -- The result: better output at lower cost than running Opus everywhere +You only see the pause once per spec run. Implementation and verification then run on whatever you picked. -:::tip Fully configurable -Configure via the Pilot Shell Console Settings tab (`localhost:41777/#/settings`, or your custom port). Choose between Sonnet 4.6 and Opus 4.7 for the main session, each command, and each sub-agent independently. Context window size (200K or 1M) is configurable via the Extended Context global toggle plus a per-row 1M checkbox on every main and skill row — mix freely (e.g. Opus 1M for planning, Sonnet 200K for implementation/verification). API subscribers (Team, Enterprise) get 1M at no additional cost with all models. Max plan users on Sonnet rows must keep 1M off (Sonnet 1M is not included in Max); Opus rows can opt into 1M without API billing. -::: +If your Claude plan already defaults to Opus, step 1 isn't strictly required — `/spec` will start on default Opus too. The explicit `/model opus[1m]` is for the 1M context window, which planning benefits from on larger codebases. Same for the Sonnet switch later: `sonnet` works, `sonnet[1m]` gives you the bigger context. You type whichever variant fits the session. -## Pinning a Legacy or Specific Model Version +## Path A — Switch in Place -The model dropdown in Console Settings includes a **Custom…** option that lets you enter an explicit Anthropic model ID instead of a Claude Code alias. This is useful when: +```text +/model sonnet[1m] +continue +``` -- You want to pin a specific historical version (e.g. `claude-opus-4-6`, `claude-opus-4-5`, `claude-sonnet-4-5-20250929`) for reproducibility. -- A newer release trips content filters on code that previous releases handled, and you need a reliable fallback while the issue is reported. -- You are standardizing across a team and want every machine on the exact same model ID. +Same session, planning context comes with you. Any prompt resumes (`continue`, `go`, anything). -Accepted values: +Claude Code will ask to confirm the model switch — the planning context gets re-sent to Sonnet on the next turn, which costs Sonnet input tokens once. Small for short plans, noticeable for long ones. -- Any alias supported by Claude Code — currently `sonnet` and `opus`. -- Any explicit Anthropic model ID matching `claude-` (e.g. `claude-opus-4-6`, `claude-haiku-4-5`). +Pick this when planning was short, or when you want Sonnet to be able to refer back to the discussion. -The Extended Context (`1M`) global toggle and per-row checkboxes only apply to the `sonnet` and `opus` aliases — explicit model IDs are passed through to Claude Code exactly as entered. For a Custom row, encode the context window in the ID itself (e.g. `claude-opus-4-7[1m]`); the per-row 1M checkbox is disabled for Custom rows because the ID is authoritative. +## Path B — Clean Start + +```text +/clear +/model sonnet[1m] +/spec docs/plans/2026-05-21-your-plan.md +``` + +Fresh session, no context carry. Sonnet sees only the plan file. The dispatcher notices it's already approved and goes straight into implementation. + +Pick this when planning was long, when you want lower first-turn cost, or when you're picking the plan back up later. + +Both paths run the same `spec-implement` on Sonnet — they differ only in what's in context when it starts. + +## Skip the Pause + +Stay on one model end-to-end by turning off **Model Switching** in Console Settings → Automation. `/spec` then runs plan → implement → verify continuously. Also the right setting for headless / CI. diff --git a/docs/docusaurus/docs/features/open-source-tools.md b/docs/docusaurus/docs/features/open-source-tools.md index ce2ff75b..f3659c83 100644 --- a/docs/docusaurus/docs/features/open-source-tools.md +++ b/docs/docusaurus/docs/features/open-source-tools.md @@ -50,7 +50,6 @@ Pilot Shell installs the following open-source tools during setup. Each tool is | [Semble](https://github.com/MinishLab/semble) | Hybrid semantic+lexical code search (BM25 + Model2Vec embeddings); also runs as an MCP server | MIT | | [RTK](https://github.com/rtk-ai/rtk) | Token-optimized CLI proxy (60-90% savings) | MIT | | [CodeGraph](https://github.com/colbymchenry/codegraph) | Code knowledge graph and structural analysis | MIT | -| [context-mode](https://github.com/mksglu/context-mode) | Sandbox execution + FTS5 knowledge base — keeps large outputs out of context | ELv2 | ## Plugin Runtime Dependencies @@ -60,8 +59,8 @@ Pilot Shell installs the following open-source tools during setup. Each tool is |------|---------|---------| | [Transformers.js](https://github.com/xenova/transformers.js) | Local ML model inference for embeddings | Apache-2.0 | | [sharp](https://github.com/lovell/sharp) | High-performance image processing | Apache-2.0 | -| [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) | SQLite bindings for context-mode FTS5 and session DB | MIT | -| [Turndown](https://github.com/mixmark-io/turndown) | HTML-to-markdown conversion for context-mode web fetching | MIT | +| [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) | SQLite bindings for the Pilot session DB | MIT | +| [Turndown](https://github.com/mixmark-io/turndown) | HTML-to-markdown conversion for web fetching | MIT | ## Testing Tools diff --git a/docs/docusaurus/docs/getting-started/permission-modes.md b/docs/docusaurus/docs/features/permission-modes.md similarity index 99% rename from docs/docusaurus/docs/getting-started/permission-modes.md rename to docs/docusaurus/docs/features/permission-modes.md index bac58dfd..2c17a114 100644 --- a/docs/docusaurus/docs/getting-started/permission-modes.md +++ b/docs/docusaurus/docs/features/permission-modes.md @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 10 title: Permission Modes description: How Pilot Shell configures Claude Code permission modes — from default autonomy to manual approval — controlling when Claude asks before reading or writing. --- diff --git a/docs/docusaurus/docs/features/rules.md b/docs/docusaurus/docs/features/rules.md index a47604bc..9f93c384 100644 --- a/docs/docusaurus/docs/features/rules.md +++ b/docs/docusaurus/docs/features/rules.md @@ -8,7 +8,7 @@ description: Production-tested rules and standards loaded into every Claude Code Production-tested best practices loaded into every session. -Rules load automatically at session start — they're enforced standards, not suggestions. Pilot ships 11 built-in rules plus 5 coding standards. Coding standards load conditionally by file type to keep context lean. Your project-level rules in `.claude/rules/` take precedence over Pilot's built-ins. +Rules load automatically at session start — they're enforced standards, not suggestions. Pilot ships 10 built-in rules plus 5 coding standards. Coding standards load conditionally by file type to keep context lean. Your project-level rules in `.claude/rules/` take precedence over Pilot's built-ins. ## Built-in Rule Categories @@ -24,11 +24,10 @@ Rules load automatically at session start — they're enforced standards, not su - `code-review-reception.md` — How to receive and act on code review feedback - `documentation-sync.md` — Update affected docs (README, API docs, CLAUDE.md, AGENTS.md) in the same change as the code -### Tooling & Context (4 rules) +### Tooling & Context (3 rules) - `cli-tools.md` — Pilot CLI, Semble hybrid code search, RTK token optimization - `browser-automation.md` — Browser automation for E2E UI testing (Chrome → Chrome DevTools MCP → playwright-cli → agent-browser) -- `context-mode.md` — Routing rules for large-output analysis, sandbox execution, and compaction resilience - `mcp-servers.md` — MCP server reference and tool selection guidance ## Coding Standards — Activated by File Type diff --git a/docs/docusaurus/docs/features/security.md b/docs/docusaurus/docs/features/security.md deleted file mode 100644 index aa9e4847..00000000 --- a/docs/docusaurus/docs/features/security.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -sidebar_position: 3 -title: Security Scanner -description: Built-in credential scanner — catches secrets in prompts, file reads, Bash commands, command output, and staged commits before they reach Claude's context or git history. 24 patterns ported from gitleaks and TruffleHog. ---- - -# Security Scanner - -Built-in credential scanner that catches secrets before they leak — into Claude's context **or** into git history. - -The scanner ships as a single hook (`credential_scanner.py`) registered on four events. It runs entirely on your machine, fail-closed by default. Nothing is uploaded. - -## What gets scanned - -| Event | What is scanned | What happens on a match | -|-------|-----------------|-------------------------| -| `UserPromptSubmit` | The prompt text you typed | Blocks delivery to Claude; exit 2 with a stderr message | -| `PreToolUse(Read)` | The file's basename **and** content (binary-safe, BOM-aware) — symlinks resolved before the name check | Denies the read | -| `PreToolUse(Bash)` | Command text, `$VAR` / `${VAR}` env values, `cat` / `head` / `tail` file targets, `git commit` staged diff + staged blobs, chained `git add … && git commit` files | Denies the Bash call | -| `PostToolUse(Bash)` | Combined `stdout + stderr` (first 1 MB) | Drops the tool result so Claude sees the block reason instead of the secret-containing output | - -## What gets detected - -**24 secret patterns** ported from [gitleaks](https://github.com/gitleaks/gitleaks) and [TruffleHog](https://github.com/trufflesecurity/trufflehog), grouped by category: - -| Category | Rules | -|----------|-------| -| Cloud | `aws-access-key`, `gcp-api-key`, `private-key` (PEM/SSH) | -| Source control | `github-pat`, `github-fine-grained`, `gitlab-pat` | -| Package registry | `npm-token` | -| Communication | `slack-token`, `slack-webhook`, `discord-webhook`, `telegram-bot-token`, `twilio-sid` | -| Email | `sendgrid-key`, `mailgun-key`, `mailchimp-key` | -| Payment | `stripe-secret-key`, `stripe-restricted-key` | -| AI | `openai-key`, `openai-project-key`, `anthropic-key` | -| Auth | `jwt` | -| Generic | `generic-secret`, `env-assignment`, `connection-string` | - -Generic patterns apply a Shannon-entropy filter (3.0–3.5 bits/char) so obvious test values like `API_KEY=test12345` don't trip the scanner. - -## `.env` files are name-blocked unconditionally - -Any file whose basename is `.env` or starts with `.env.` (e.g. `.env.local`, `.env.production`) is denied at `PreToolUse(Read)` **regardless of content**. Symlinks are resolved before the name check — `safe.txt → /tmp/.env` is blocked too. - -The agent doesn't need to read raw secrets to understand the schema. If it needs to know which keys exist, it should ask you to list them. - -## Allow tags (one-shot bypass) - -Add a tag to your **next user prompt** to bypass the scan for the current turn: - -| Tag | Effect | -|-----|--------| -| `[allow-secret]` | Allow secret findings to pass through | -| `[allow-all]` | Bypass all scanner checks | - -**One-shot semantics.** The tag is honoured for the *first* tool call after the prompt. Subsequent tool calls in the same turn are re-blocked unless you re-tag in a new prompt. Tags in assistant messages or inside the Bash command string are NOT honoured (prompt-injection defense). - -The block message always quotes the exact tag to use and a sample retry phrasing. - -## Toggle - -The scanner is **ON by default**. Toggle it from the Console: - -``` -Console (localhost:41777) → Settings → Security → Credential Scanner -``` - -The setting persists to `~/.pilot/config.json` (`securityScanner.credentialScanner`). The launcher exports `PILOT_CREDENTIAL_SCANNER_ENABLED` based on this value; restart Pilot after toggling. - -:::warning Fail-closed by default -Disabling the scanner skips all four scan entry points. Only turn it off if you have an explicit reason and accept that secrets may enter the transcript or a commit. -::: - -## Why two attack surfaces - -Credential leaks via AI agents come in two flavours, and the scanner closes both with a single hook: - -- **Context leak.** A secret read into the session ends up in transcripts, summaries, mem-search indexes, and every tool call the agent makes afterwards. Scrubbing context after the fact is unreliable. -- **Commit leak.** A secret committed to git, even briefly, must be treated as compromised. Mirrors are everywhere; rotation is the only fix. - -The four entry points (prompt, file read, Bash command, Bash output) cover the realistic paths a secret takes to enter context. The `git commit` staged-diff scan closes the commit-time path. - -## What's not covered (yet) - -- **PII detection** (emails, SSN, phones, credit cards, IPs) — not in the pattern set. -- **`Grep` / `Glob` output** — covered indirectly via the Read scan on the underlying file content. -- **`Edit` / `Write` / `MultiEdit` pre-flight scanning** — once Claude has the secret in context, blocking the write doesn't unleak it. -- **Subagent and MCP tool outputs** — out of scope for v1. - -## See also - -- [Hooks Pipeline](./hooks.md) — where the scanner registers -- [Pilot Console](./console.md) — Settings → Security toggle diff --git a/docs/docusaurus/docs/getting-started/installation.md b/docs/docusaurus/docs/getting-started/installation.md index 89a1a35b..dcac9b82 100644 --- a/docs/docusaurus/docs/getting-started/installation.md +++ b/docs/docusaurus/docs/getting-started/installation.md @@ -25,7 +25,7 @@ Run from any directory — it installs globally to `~/.pilot/` and `~/.claude/`. | 1 | Prerequisites | Checks/installs Homebrew, Node.js, Python 3.12+, uv, git, jq | | 2 | Claude files | Sets up `~/.claude/` plugin — rules, commands, hooks, MCP servers | | 3 | Config files | Creates `.nvmrc` and project config | -| 4 | Dependencies | Installs Semble, RTK, CodeGraph, context-mode (better-sqlite3), Chrome DevTools MCP, playwright-cli, agent-browser, language servers | +| 4 | Dependencies | Installs Semble, RTK, CodeGraph, Chrome DevTools MCP, playwright-cli, agent-browser, language servers | | 5 | Shell integration | Auto-configures bash, fish, and zsh with the `pilot` alias. Add `# pilot-shell:managed-elsewhere` to a config file to opt out (for framework-managed shells) | | 6 | VS Code extensions | Installs recommended extensions for your language stack | | 7 | Finalize | Success message with next steps | @@ -72,3 +72,26 @@ curl -fsSL https://raw.githubusercontent.com/maxritter/pilot-shell/main/uninstal ``` Removes binary, plugin files, managed commands/rules, settings, and shell aliases. Your project's custom `.claude/` files are preserved. + +## Reset & Refresh + +Claude Code's session logs and Pilot's caches grow over time and can degrade performance. A periodic reset every few weeks restores a clean baseline. + +```bash +# 1. Inside Claude Code, log out +/logout + +# 2. Back up your current config (just in case) +mv ~/.claude.json ~/.claude.json.bak +mv ~/.claude ~/.claude.bak +mv ~/.pilot ~/.pilot.bak + +# 3. Reinstall Pilot Shell from the official installer +curl -fsSL https://raw.githubusercontent.com/maxritter/pilot-shell/main/install.sh | bash + +# 4. Start Pilot, sign in to Claude, and re-activate your license +pilot +pilot activate +``` + +Once Pilot Shell is running smoothly again, you can delete the `.bak` copies. Forgot your license key? Recover it in the [Polar members area](https://polar.sh/max-ritter/portal). diff --git a/docs/docusaurus/sidebars.ts b/docs/docusaurus/sidebars.ts index cc028265..32b80bb3 100644 --- a/docs/docusaurus/sidebars.ts +++ b/docs/docusaurus/sidebars.ts @@ -10,7 +10,6 @@ const sidebars: SidebarsConfig = { items: [ "getting-started/prerequisites", "getting-started/installation", - "getting-started/permission-modes", ], }, { @@ -41,7 +40,7 @@ const sidebars: SidebarsConfig = { "features/context-optimization", "features/remote-control", "features/hooks", - "features/security", + "features/permission-modes", "features/extensions", "features/customization", "features/cli", diff --git a/docs/site/src/components/ConsoleSection.tsx b/docs/site/src/components/ConsoleSection.tsx index 742e7d62..9f957199 100644 --- a/docs/site/src/components/ConsoleSection.tsx +++ b/docs/site/src/components/ConsoleSection.tsx @@ -55,14 +55,14 @@ const consoleSlides: ConsoleSlide[] = [ { label: "Usage", name: "usage", - alt: "Usage view — daily costs, token charts, and model routing", - desc: "Daily token costs, model routing breakdown, and usage trends over time.", + alt: "Usage view — daily costs, cost-by-model breakdown, and usage trends", + desc: "Daily token costs, cost-by-model breakdown, and usage trends over time.", }, { label: "Settings", name: "settings", - alt: "Settings view — model selection per command, spec workflow toggles", - desc: "Choose models per command and sub-agent. Spec workflow toggles, reviewer configuration, and pricing info.", + alt: "Settings view — spec workflow and console port", + desc: "Spec workflow toggles (branch isolation, ask questions, plan approval, Model Switching) and reviewer configuration. Active model is set via `/model` — no model dropdowns here.", }, { label: "Help", diff --git a/docs/site/src/components/DeepDiveSection.tsx b/docs/site/src/components/DeepDiveSection.tsx index 04103728..263456f9 100644 --- a/docs/site/src/components/DeepDiveSection.tsx +++ b/docs/site/src/components/DeepDiveSection.tsx @@ -36,7 +36,6 @@ const hooksPipeline = [ description: "When the user sends a message", hooks: [ "spec_mode_guard.py blocks invalid /spec usage", - "credential_scanner.py scans the prompt for secrets before delivery", "Session registration starts in the background", ], color: "text-emerald-400", @@ -50,7 +49,6 @@ const hooksPipeline = [ "tool_redirect.py reroutes unsupported tools to approved alternatives", "Plan mode conflicts are blocked before they execute", "tool_token_saver.py rewrites Bash commands through RTK", - "credential_scanner.py denies .env reads and blocks secrets in Bash commands and git commits", ], color: "text-amber-400", bgColor: "bg-amber-400/10", @@ -61,7 +59,6 @@ const hooksPipeline = [ description: "After edits, reads, searches, and task tools", hooks: [ "file_checker.py runs lint, type, and TDD checks on edits", - "credential_scanner.py scrubs Bash output that contains secrets", "context_monitor.py tracks usage before compaction", "Memory observations are captured asynchronously", ], @@ -130,7 +127,7 @@ const rulesCategories = [ rules: [ "Pilot CLI, Semble code search, and RTK token optimization", "Browser automation: Chrome, Chrome DevTools MCP, playwright-cli, agent-browser", - "MCP server selection plus context-mode routing", + "MCP server selection and tool-routing rules", ], }, { @@ -295,8 +292,9 @@ const DeepDiveSection = () => {

These hooks keep your context lean.{" "} - context-mode routes - large outputs to a sandbox — up to 98% savings per command.{" "} + Semble returns only + the matched code chunks — ~98% fewer tokens than{" "} + grep + read.{" "} RTK compresses remaining tool output by 60–90%. Rules load only for matching file types. Skills use progressive disclosure. When compaction @@ -310,7 +308,7 @@ const DeepDiveSection = () => { - {/* Smart Model Routing */} + {/* Model Switching */}

{

- Smart Model Routing + Model Switching

- The right model for each phase — reasoning power where it - matters most + Opus for planning, Sonnet for implementation — the cost-saving + swap made ergonomic.

@@ -334,38 +332,44 @@ const DeepDiveSection = () => {
- OPUS + /model opus + + + before /spec - Planning

- Exploring your codebase, designing architecture, and writing the - spec. Deep reasoning on the plan prevents expensive rework - downstream. + Planning is where deep reasoning pays off most. The + spec-mode-guard hook hard-blocks /spec on non-Opus + models so the foundation of every feature gets the best + reasoning hop.

- SONNET + /model sonnet - Implementation & Verification + before implementation

- With a solid plan, code and verification are straightforward. - The unified review agent handles deep code analysis while the - orchestrator runs mechanical checks efficiently. + When the plan is approved, Pilot pauses so you can pick the + model for the rest of the workflow. Run /model …{" "} + and send any prompt — implementation and verification resume + on the new model and run continuously from there.

- Implementation is the easy part when the plan is good and - verification is thorough. All model assignments are configurable - per-component via the Pilot Shell Console settings. + `/model` is the single switch — no separate per-phase dropdowns to + manage. The opt-out Model Switching automation + toggle pauses between planning and implementation; turn it off in + Console Settings → Automation to run the whole workflow on a + single model.

diff --git a/docs/site/src/components/FAQSection.tsx b/docs/site/src/components/FAQSection.tsx index e36ce83f..5a70d75b 100644 --- a/docs/site/src/components/FAQSection.tsx +++ b/docs/site/src/components/FAQSection.tsx @@ -22,7 +22,7 @@ const faqItems = [ question: "Does Pilot Shell work with other AI coding tools?", answer: - "Pilot Shell is built for Claude Code. Every hook, rule, command, and workflow is engineered specifically for Claude\u2019s tool-use protocol, prompt format, and session lifecycle. Pilot Shell defaults to Claude Sonnet 4.6 and Claude Opus 4.7 (and any explicit Anthropic model ID such as claude-opus-4-6 via the Console’s Custom… option) \u2014 these are the models that produce the best results, and every rule and prompt is optimized for their behavior. Additionally, the optional Codex plugin adds OpenAI-powered adversarial review during /spec \u2014 an independent second opinion on your plans and code changes. Codex reviewers are disabled by default and can be enabled in Console Settings.", + "Pilot Shell is built for Claude Code. Every hook, rule, command, and workflow is engineered specifically for Claude\u2019s tool-use protocol, prompt format, and session lifecycle. Pick your model with Claude Code\u2019s `/model` slash command \u2014 recommended flow is `/model opus[1m]` for planning (the spec-mode-guard hook enforces it), then `/model sonnet[1m]` for implementation and verification. Every rule and prompt is optimized for Claude\u2019s Sonnet 4.6 and Opus 4.7 behavior. Additionally, the optional Codex plugin adds OpenAI-powered adversarial review during /spec \u2014 an independent second opinion on your plans and code changes. Codex reviewers are disabled by default and can be enabled in Console Settings.", }, { question: "Does Pilot Shell work with existing projects?", @@ -59,6 +59,11 @@ const faqItems = [ answer: "No code, files, prompts, project data, or personal information ever leaves your machine through Pilot Shell. All development tools \u2014 vector search, persistent memory, session state, and quality hooks \u2014 run entirely locally. Pilot Shell makes exactly three external calls, all for licensing only: (1) License validation \u2014 once every 24 hours, sends your license key and organization ID to api.polar.sh. (2) License activation \u2014 one-time, sends license key and a machine fingerprint to api.polar.sh. (3) Trial start \u2014 one-time, sends a hashed hardware fingerprint to pilot-shell.com to generate a 7-day trial key. That\u2019s the complete list. No OS info, no version strings, no analytics, no telemetry, no heartbeats. The validation result is cached locally, and Pilot Shell works fully offline for up to 7 days. If you enable the optional Codex plugin, adversarial reviews are sent to OpenAI\u2019s API \u2014 this is opt-in and disabled by default.", }, + { + question: "Pilot feels slower after a few weeks — what should I do?", + answer: + "Claude Code’s session logs and Pilot’s caches grow over time and can degrade performance. A periodic reset every few weeks restores a clean baseline: (1) Run /logout inside Claude Code. (2) Back up ~/.claude.json, ~/.claude/, and ~/.pilot/ (rename them to .bak copies). (3) Reinstall Pilot Shell with the official installer from pilot-shell.com. (4) Run pilot, sign in to Claude again, and re-activate your license with `pilot activate `. Once Pilot is running smoothly again, delete the .bak copies. Forgot your license key? Recover it in the Polar members area at polar.sh/max-ritter/portal.", + }, { question: "Can I use Pilot Shell inside a Dev Container?", answer: diff --git a/docs/site/src/components/WhatsInside.tsx b/docs/site/src/components/WhatsInside.tsx index c30449ed..427f9e2b 100644 --- a/docs/site/src/components/WhatsInside.tsx +++ b/docs/site/src/components/WhatsInside.tsx @@ -38,10 +38,10 @@ const insideItems: InsideItem[] = [ }, { icon: Terminal, - title: "Hooks, Quality & Security", + title: "Hooks & Quality", description: "Deterministic checks on every edit", summary: - "18 hook registrations across 7 lifecycle events. Auto-lint, format, and type-check every file edit. A built-in credential scanner catches 24 secret patterns in prompts, file reads, Bash commands, output, and git commits. The TDD enforcer warns when implementation lands without a failing test in place first.", + "Auto-lint, format, and type-check on every file edit across Python, TypeScript, and Go. The TDD enforcer flags implementations that land without a failing test in place first — quality gates run before code reaches your branch.", href: "/docs/features/hooks", }, { @@ -65,7 +65,7 @@ const insideItems: InsideItem[] = [ title: "Cost Optimization", description: "Right model, right task, visible spend", summary: - "Smart model routing \u2014 Opus for planning and verification, Sonnet for implementation. CLI proxy saves 60\u201390% on tool-output tokens. Console tracks daily cost and trends over time.", + "Model Switching drops to a cheaper tier for implementation and verification once the plan is approved. A CLI proxy compresses tool output by 60\u201390%. The Console tracks daily cost and surfaces trends over time.", href: "/docs/features/model-routing", }, { diff --git a/install.sh b/install.sh index a99d5c48..0eb3d3bb 100644 --- a/install.sh +++ b/install.sh @@ -125,25 +125,27 @@ check_uv() { } install_uv() { - # Pinned via installer/upstreams.yaml (id: uv-installer). Drift checker - # enforces this stays in sync with the manifest. local UV_INSTALL_URL="https://astral.sh/uv/install.sh" local UV_INSTALL_SHA256="3a020f8d69019caca567c9038999d130b0ea85866483caf2042c386cb685aef4" local tmp_uv tmp_uv="$(mktemp -t pilot-uv-install.XXXXXX.sh)" || tmp_uv=/tmp/pilot-uv-install.sh - # Single cleanup path: trap on EXIT so the temp script is removed on every - # return, including sh-failure paths that lacked explicit rm. - # shellcheck disable=SC2064 trap "rm -f \"$tmp_uv\"" EXIT chmod 600 "$tmp_uv" 2>/dev/null || true echo " [..] Installing uv (pinned)..." if command -v curl >/dev/null 2>&1; then - curl -fsSL "$UV_INSTALL_URL" -o "$tmp_uv" || { echo " [!!] curl failed"; exit 1; } + curl -fsSL "$UV_INSTALL_URL" -o "$tmp_uv" || { + echo " [!!] curl failed" + exit 1 + } elif command -v wget >/dev/null 2>&1; then - wget -qO "$tmp_uv" "$UV_INSTALL_URL" || { echo " [!!] wget failed"; exit 1; } + wget -qO "$tmp_uv" "$UV_INSTALL_URL" || { + echo " [!!] wget failed" + exit 1 + } else - echo " [!!] Need curl or wget"; exit 1 + echo " [!!] Need curl or wget" + exit 1 fi local actual_sha @@ -421,10 +423,6 @@ run_installer() { system_arg="--local-system" fi - # Versions pinned via installer/upstreams.yaml (ids: rich, certifi, pyyaml). - # `--no-project` skips the editable project install — every runtime dep the - # installer module imports must be supplied via `--with`. PyYAML loads at - # manifest import (`installer/manifest.py`); omitting it breaks bootstrap. uv run --python 3.12 --no-project \ --with rich==14.2.0 --with certifi==2026.4.22 --with PyYAML==6.0.3 \ python -m installer install $system_arg $version_arg $local_arg "$@" diff --git a/installer/steps/claude_files.py b/installer/steps/claude_files.py index 794c2dcc..f653d63b 100644 --- a/installer/steps/claude_files.py +++ b/installer/steps/claude_files.py @@ -263,6 +263,7 @@ def _cleanup_old_directories( manifest_path = home_claude_dir / PILOT_MANIFEST_FILE if not manifest_path.exists(): self._seed_manifest_from_existing(home_claude_dir, manifest_path) + self._cleanup_deprecated_pilot_skills_in_home(home_claude_dir) cleanup_managed_files(home_claude_dir / "commands", manifest_path, "commands/") cleanup_managed_files(home_claude_dir / "skills", manifest_path, "skills/") cleanup_managed_files(home_claude_dir / "rules", manifest_path, "rules/") @@ -295,6 +296,14 @@ def _seed_manifest_from_existing(self, home_claude_dir: Path, manifest_path: Pat The old installer nuked these directories entirely, so all existing files are Pilot-managed. Seed the manifest with them so cleanup_managed_files can remove stale ones while future user-added files remain safe. + + Limited to ``commands`` and ``rules`` — the legacy installer never let + users add files there, so every existing entry is Pilot's. ``skills/`` + and ``agents/`` are SHARED with user-authored content; treating + pre-existing entries as Pilot-owned would clobber user skills on the + first cleanup pass. Deprecated Pilot skills/agents from older versions + are removed via ``_cleanup_deprecated_pilot_skills_in_home`` (explicit + name list) instead. """ files: set[str] = set() for subdir in ("commands", "rules"): @@ -308,6 +317,41 @@ def _seed_manifest_from_existing(self, home_claude_dir: Path, manifest_path: Pat if files: save_manifest(manifest_path, files) + # Skill / agent directories Pilot historically shipped that are no longer + # part of the current release. On legacy upgrades these survive in + # ~/.claude/skills/ and ~/.claude/agents/ because the manifest can't + # distinguish them from user-authored files. Remove them by exact name + # only — never touch a name that's not on this list. + _DEPRECATED_PILOT_SKILL_NAMES: tuple[str, ...] = ( + "notify", + "skill-build", + ) + _DEPRECATED_PILOT_AGENT_FILENAMES: tuple[str, ...] = () + + def _cleanup_deprecated_pilot_skills_in_home(self, home_claude_dir: Path) -> None: + """Remove known-deprecated Pilot skill directories and agent files from + ``~/.claude/skills/`` and ``~/.claude/agents/``. + + Exact-name match only. Never deletes a name not on the explicit + deprecation list — user files are safe. + """ + skills_dir = home_claude_dir / "skills" + if skills_dir.exists(): + for name in self._DEPRECATED_PILOT_SKILL_NAMES: + target = skills_dir / name + if target.exists() and target.is_dir(): + _clear_directory_safe(target) + + agents_dir = home_claude_dir / "agents" + if agents_dir.exists(): + for filename in self._DEPRECATED_PILOT_AGENT_FILENAMES: + target = agents_dir / filename + if target.exists() and target.is_file(): + try: + target.unlink() + except OSError: + pass + def _install_categories( self, categories: dict[str, list[FileInfo]], @@ -933,9 +977,7 @@ def _merge_mcp_servers_into_claude_json(self, ui: Any) -> None: claude_json_path = Path.home() / ".claude.json" try: - claude_json: dict[str, Any] = ( - json.loads(claude_json_path.read_text()) if claude_json_path.exists() else {} - ) + claude_json: dict[str, Any] = json.loads(claude_json_path.read_text()) if claude_json_path.exists() else {} except (json.JSONDecodeError, OSError, IOError): claude_json = {} diff --git a/installer/steps/config_migration.py b/installer/steps/config_migration.py index 42c38cd5..38b8ae28 100644 --- a/installer/steps/config_migration.py +++ b/installer/steps/config_migration.py @@ -11,7 +11,7 @@ from pathlib import Path from typing import Any -CURRENT_CONFIG_VERSION = 11 +CURRENT_CONFIG_VERSION = 12 _STALE_AGENT_KEYS = frozenset( { @@ -62,6 +62,19 @@ def migrate_model_config( if version >= CURRENT_CONFIG_VERSION: return False + # v12 safety: before applying any migration that prunes user-visible model + # keys, snapshot the pre-migration JSON to `.bak.v11` exactly once + # (the file holds the genuine v11 state for the entire machine lifetime, + # never overwritten on subsequent runs). + if version < 12 and config_path.exists(): + bak_path = config_path.with_suffix(".json.bak.v11") + if not bak_path.exists(): + try: + _write_atomic(bak_path, raw) + except OSError: + # Backup is best-effort — never fail the migration on disk errors. + pass + modified = False if version < 1: @@ -97,6 +110,9 @@ def migrate_model_config( if version < 11: modified = _migration_v11(raw) or modified + if version < 12: + modified = _migration_v12(raw) or modified + if raw.get("_configVersion") != CURRENT_CONFIG_VERSION: raw["_configVersion"] = CURRENT_CONFIG_VERSION modified = True @@ -485,6 +501,45 @@ def _migration_v11(raw: dict[str, Any]) -> bool: return True +def _migration_v12(raw: dict[str, Any]) -> bool: + """v11 → v12: Strip dead model keys; seed specWorkflow.modelSwitch=true. + + After this migration, model selection is controlled entirely via Claude + Code's `/model` slash command — `~/.pilot/config.json` no longer stores + main / per-skill / per-agent model preferences, the 1M extended-context + toggle, or per-row overrides. The launcher's settings injector stops + rewriting `model:` lines in skill / agent frontmatter; the source files + are authoritative. + + `specWorkflow.modelSwitch` is the new opt-out toggle: when true (default) + the spec-plan skill ends its turn with a handoff message after approval + so the user can `/clear` + `/model <…>` before implementation; when false + the spec workflow continues plan → implement → verify in one session on + whichever model is active. + + The caller writes `~/.pilot/config.json.bak.v11` (single-file safety + copy, written exactly once per machine) before this migration runs, so + advanced users can recover their pre-v12 preferences if needed. + """ + modified = False + + for dead_key in ("model", "skills", "agents", "extendedContext", "extendedContextOverrides"): + if dead_key in raw: + del raw[dead_key] + modified = True + + spec_workflow = raw.get("specWorkflow") + if not isinstance(spec_workflow, dict): + spec_workflow = {} + raw["specWorkflow"] = spec_workflow + modified = True + if "modelSwitch" not in spec_workflow: + spec_workflow["modelSwitch"] = True + modified = True + + return modified + + def _write_atomic(path: Path, data: dict[str, Any]) -> None: """Write JSON atomically using temp file + os.rename.""" path.parent.mkdir(parents=True, exist_ok=True) diff --git a/installer/steps/dependencies.py b/installer/steps/dependencies.py index 53921b47..634cc7b5 100644 --- a/installer/steps/dependencies.py +++ b/installer/steps/dependencies.py @@ -52,6 +52,32 @@ def _get_last_error() -> str: return getattr(_thread_local, "last_retry_stderr", "") +# Outcome states for install_X functions. The sidechannel lets each install +# function tell the dispatcher whether it actually did work, without changing +# the bool return type that tests mock. +_OUTCOME_INSTALLED = "installed" # was missing, now installed +_OUTCOME_UPDATED = "updated" # was present, install/upgrade ran +_OUTCOME_UNCHANGED = "unchanged" # was present, nothing done (no message) +_OUTCOME_REMOVED = "removed" # was present, removed (for cleanup steps) + + +def _record_outcome(state: str) -> None: + """Record the outcome of the current install/cleanup call. + + Install functions call this before `return True` to signal what actually + happened. The dispatcher reads via `_take_outcome()` after the call. If + nothing is recorded (or the function returns False), the dispatcher falls + back to the legacy "{name} installed" message. + """ + _thread_local.install_outcome = state + + +def _take_outcome() -> str: + state = getattr(_thread_local, "install_outcome", "") + _thread_local.install_outcome = "" + return state + + def _run_bash_with_retry(command: str, cwd: Path | None = None, timeout: int = 120, stream: bool = False) -> bool: """Run a bash command with retry logic for transient failures. @@ -126,16 +152,21 @@ def install_claude_code() -> bool: but proceeds. """ if command_exists("claude"): + _record_outcome(_OUTCOME_UNCHANGED) return True - return _curl_pipe_from_manifest( + if _curl_pipe_from_manifest( "claude-code-installer", CurlPipeRunOptions(timeout=300), - ) + ): + _record_outcome(_OUTCOME_INSTALLED) + return True + return False def install_nodejs() -> bool: """Install Node.js via NVM if not present.""" if command_exists("node"): + _record_outcome(_OUTCOME_UNCHANGED) return True nvm_dir = Path.home() / ".nvm" @@ -156,27 +187,34 @@ def install_nodejs() -> bool: if node_bin not in os.environ.get("PATH", ""): os.environ["PATH"] = f"{node_bin}:{os.environ.get('PATH', '')}" + _record_outcome(_OUTCOME_INSTALLED) return True def install_uv() -> bool: """Install uv package manager if not present (manifest-pinned curl).""" if command_exists("uv"): + _record_outcome(_OUTCOME_UNCHANGED) return True - return _curl_pipe_from_manifest( + if _curl_pipe_from_manifest( "uv-installer", CurlPipeRunOptions(interpreter="sh", timeout=180), - ) + ): + _record_outcome(_OUTCOME_INSTALLED) + return True + return False def install_python_tools() -> bool: """Install Python development tools.""" tools = ["ruff", "basedpyright"] - + installed_any = False for tool in tools: if not command_exists(tool): if not _run_bash_with_retry(f"uv tool install {tool}"): return False + installed_any = True + _record_outcome(_OUTCOME_INSTALLED if installed_any else _OUTCOME_UNCHANGED) return True @@ -319,6 +357,7 @@ def install_semble() -> bool: (parallel to ruff/basedpyright/hypothesis). No manifest pin — uv resolves the latest release at install time. """ + was_present = command_exists("semble") if not _run_bash_with_retry( "uv tool install --upgrade semble", timeout=UV_TOOL_INSTALL_TIMEOUT, @@ -326,6 +365,7 @@ def install_semble() -> bool: return False _symlink_to_pilot_bin("semble") + _record_outcome(_OUTCOME_UPDATED if was_present else _OUTCOME_INSTALLED) return True @@ -338,6 +378,7 @@ def install_rtk() -> bool: """ if command_exists("rtk"): _symlink_to_pilot_bin("rtk") + _record_outcome(_OUTCOME_UNCHANGED) return True if not _curl_pipe_from_manifest( "rtk-installer", @@ -345,6 +386,7 @@ def install_rtk() -> bool: ): return False _symlink_to_pilot_bin("rtk") + _record_outcome(_OUTCOME_INSTALLED) return True @@ -405,6 +447,7 @@ def _has_git_commits(directory: Path) -> bool: def install_codegraph() -> bool: """Install or update CodeGraph for code knowledge graph and structural analysis.""" + was_present = command_exists("codegraph") if not _run_bash_with_retry( _npm_install_cmd(manifest_get("codegraph"), force=True), timeout=GLOBAL_NPM_INSTALL_TIMEOUT, @@ -412,6 +455,7 @@ def install_codegraph() -> bool: return False _symlink_to_pilot_bin("codegraph") + _record_outcome(_OUTCOME_UPDATED if was_present else _OUTCOME_INSTALLED) return True @@ -435,13 +479,18 @@ def install_better_sqlite3() -> bool: Manifest entry has scripts_policy: allow (native build via node-gyp); --ignore-scripts is intentionally omitted. """ - return _run_bash_with_retry( + if not _run_bash_with_retry( _npm_install_cmd( manifest_get("better-sqlite3"), extra_flags=("--no-audit", "--no-fund"), ), timeout=GLOBAL_NPM_INSTALL_TIMEOUT, - ) + ): + return False + # No reliable presence probe for a globally-installed npm native module + # without an extra `npm ls -g` call; treat each run as an upgrade attempt. + _record_outcome(_OUTCOME_UPDATED) + return True def _is_codegraph_indexed(project_dir: Path) -> bool: @@ -536,21 +585,29 @@ def codegraph_needs_work(project_dir: Path) -> bool: def install_typescript_lsp() -> bool: """Install TypeScript language server and compiler globally (manifest-pinned).""" if command_exists("vtsls"): + _record_outcome(_OUTCOME_UNCHANGED) return True - return _run_bash_with_retry( + if _run_bash_with_retry( _npm_install_cmd(manifest_get("vtsls"), manifest_get("typescript")), timeout=GLOBAL_NPM_INSTALL_TIMEOUT, - ) + ): + _record_outcome(_OUTCOME_INSTALLED) + return True + return False def install_prettier() -> bool: """Install prettier code formatter globally (manifest-pinned).""" if command_exists("prettier"): + _record_outcome(_OUTCOME_UNCHANGED) return True - return _run_bash_with_retry( + if _run_bash_with_retry( _npm_install_cmd(manifest_get("prettier")), timeout=GLOBAL_NPM_INSTALL_TIMEOUT, - ) + ): + _record_outcome(_OUTCOME_INSTALLED) + return True + return False def _install_go_via_apt() -> bool: @@ -587,6 +644,7 @@ def _is_golangci_lint_installed() -> bool: def install_golangci_lint() -> bool: """Install golangci-lint for comprehensive Go code linting.""" if _is_golangci_lint_installed(): + _record_outcome(_OUTCOME_UNCHANGED) return True if not command_exists("go"): if not _install_go_via_apt(): @@ -604,14 +662,17 @@ def install_golangci_lint() -> bool: gopath = gopath_result.stdout.strip() if gopath_result.returncode != 0 or not gopath: return False - return _curl_pipe_from_manifest( + if _curl_pipe_from_manifest( "golangci-lint-installer", CurlPipeRunOptions( interpreter="sh", script_args=["-s", "--", "-b", f"{gopath}/bin"], timeout=120, ), - ) + ): + _record_outcome(_OUTCOME_INSTALLED) + return True + return False def _refresh_marketplace(marketplace: str) -> bool: @@ -627,13 +688,41 @@ def _refresh_marketplace(marketplace: str) -> bool: ) +def _ensure_plugin_enabled(plugin_id: str) -> bool: + """Force-enable a Claude plugin idempotently. + + `claude plugins enable` exits non-zero with "already enabled" when the + plugin is on — we treat that as success, since the desired post-condition + (plugin enabled) holds either way. + """ + try: + result = subprocess.run( + ["claude", "plugins", "enable", plugin_id], + capture_output=True, + text=True, + timeout=30, + ) + except (subprocess.TimeoutExpired, OSError): + return False + if result.returncode == 0: + return True + stderr = result.stderr if isinstance(result.stderr, str) else "" + stdout = result.stdout if isinstance(result.stdout, str) else "" + return "already enabled" in (stderr + stdout).lower() + + def _install_or_update_plugin( plugin_id: str, marketplace: str, ) -> bool: """Install or update a Claude Code plugin via the marketplace. - Refreshes the marketplace first, then installs or updates the plugin. + Refreshes the marketplace first, then installs or updates the plugin, + and finally force-enables it. The Claude CLI tracks installed state + (~/.claude/plugins/installed_plugins.json) and enabled state + (~/.claude/settings.json → enabledPlugins) independently — `update` + never auto-enables, and a Claude Code reset can wipe enabledPlugins + while leaving installed_plugins intact, so we always force-enable. """ if not command_exists("claude"): return False @@ -648,16 +737,28 @@ def _install_or_update_plugin( ) if result.returncode == 0 and result.stdout.strip(): plugins = json.loads(result.stdout) - already_installed = any(p.get("id") == plugin_id for p in plugins) - except (subprocess.TimeoutExpired, json.JSONDecodeError, OSError): + # Defensive: the historical shape is a bare list of {id,version} + # dicts, but a future Claude CLI may wrap the list (e.g. + # {"plugins": [...]}). Anything else falls through to + # fresh-install rather than crashing the installer. + if isinstance(plugins, list): + already_installed = any( + isinstance(p, dict) and p.get("id") == plugin_id for p in plugins + ) + except (subprocess.TimeoutExpired, json.JSONDecodeError, OSError, AttributeError, TypeError): pass if already_installed: _refresh_marketplace(marketplace) - return _run_bash_with_retry( + if not _run_bash_with_retry( f"claude plugins update {plugin_id}", timeout=120, - ) + ): + return False + if not _ensure_plugin_enabled(plugin_id): + return False + _record_outcome(_OUTCOME_UPDATED) + return True if not _run_bash_with_retry( f"claude plugins marketplace add {marketplace}", @@ -665,18 +766,173 @@ def _install_or_update_plugin( ): return False - return _run_bash_with_retry( + if not _run_bash_with_retry( f"claude plugins install {plugin_id}", timeout=120, - ) + ): + return False + if not _ensure_plugin_enabled(plugin_id): + return False + _record_outcome(_OUTCOME_INSTALLED) + return True -def install_context_mode_plugin() -> bool: - """Install or update the context-mode plugin via the Claude CLI plugin system.""" - return _install_or_update_plugin( - plugin_id="context-mode@context-mode", - marketplace="mksglu/context-mode", - ) + +_LEGACY_CONTEXT_MODE_PLUGIN_ID = "context-mode@context-mode" +_LEGACY_CONTEXT_MODE_MARKETPLACE = "context-mode" +_LEGACY_CONTEXT_MODE_HOOK_FILENAME = "context-mode-cache-heal.mjs" + + +def remove_legacy_context_mode() -> bool: + """Remove the legacy context-mode plugin, marketplace, and orphan SessionStart hook. + + Pilot previously installed mksglu/context-mode as an MCP plugin. This cleanup + runs on every install/upgrade and is idempotent — it pre-checks via JSON list + output before invoking removal commands so re-runs stay silent. It also deletes + the auto-deployed `~/.claude/hooks/context-mode-cache-heal.mjs` script and any + SessionStart hook entry in `~/.claude/settings.json` that references it + (neither is removed by `claude plugins uninstall`). + + Records outcome `removed` only when something was actually deleted, so + fresh / already-clean installs stay silent. + """ + if not command_exists("claude"): + _record_outcome(_OUTCOME_UNCHANGED) + return True + + removed_anything = False + removed_anything |= _legacy_context_mode_uninstall_plugin() + removed_anything |= _legacy_context_mode_remove_marketplace() + removed_anything |= _legacy_context_mode_remove_orphan_hook() + _record_outcome(_OUTCOME_REMOVED if removed_anything else _OUTCOME_UNCHANGED) + return True + + +def _legacy_context_mode_uninstall_plugin() -> bool: + """Uninstall the context-mode plugin if installed. Idempotent. Returns True if removed.""" + try: + result = subprocess.run( + ["claude", "plugins", "list", "--json"], + capture_output=True, + text=True, + timeout=30, + ) + if result.returncode != 0 or not result.stdout.strip(): + return False + plugins = json.loads(result.stdout) + has_plugin = any( + isinstance(p, dict) and p.get("id") == _LEGACY_CONTEXT_MODE_PLUGIN_ID for p in plugins + ) + except (subprocess.TimeoutExpired, subprocess.SubprocessError, json.JSONDecodeError, OSError): + return False + if not has_plugin: + return False + try: + subprocess.run( + ["claude", "plugins", "uninstall", _LEGACY_CONTEXT_MODE_PLUGIN_ID, "-y"], + capture_output=True, + text=True, + timeout=60, + ) + return True + except (subprocess.TimeoutExpired, subprocess.SubprocessError, OSError): + return False + + +def _legacy_context_mode_remove_marketplace() -> bool: + """Remove the context-mode marketplace if configured. Idempotent. Returns True if removed.""" + try: + result = subprocess.run( + ["claude", "plugins", "marketplace", "list", "--json"], + capture_output=True, + text=True, + timeout=30, + ) + if result.returncode != 0 or not result.stdout.strip(): + return False + markets = json.loads(result.stdout) + has_market = any( + isinstance(m, dict) and m.get("name") == _LEGACY_CONTEXT_MODE_MARKETPLACE for m in markets + ) + except (subprocess.TimeoutExpired, subprocess.SubprocessError, json.JSONDecodeError, OSError): + return False + if not has_market: + return False + try: + subprocess.run( + ["claude", "plugins", "marketplace", "remove", _LEGACY_CONTEXT_MODE_MARKETPLACE], + capture_output=True, + text=True, + timeout=30, + ) + return True + except (subprocess.TimeoutExpired, subprocess.SubprocessError, OSError): + return False + + +def _legacy_context_mode_remove_orphan_hook() -> bool: + """Delete cache-heal hook + matching SessionStart entry in settings.json. Returns True if anything was removed.""" + hooks_dir = Path.home() / ".claude" / "hooks" + orphan = hooks_dir / _LEGACY_CONTEXT_MODE_HOOK_FILENAME + removed_anything = False + if orphan.exists(): + try: + orphan.unlink(missing_ok=True) + removed_anything = True + except OSError: + pass + + settings_path = Path.home() / ".claude" / "settings.json" + if not settings_path.exists(): + return removed_anything + try: + data = json.loads(settings_path.read_text()) + except (json.JSONDecodeError, OSError): + return removed_anything + if not isinstance(data, dict): + return removed_anything + hooks_section = data.get("hooks") + if not isinstance(hooks_section, dict): + return removed_anything + session_start = hooks_section.get("SessionStart") + if not isinstance(session_start, list): + return removed_anything + + cleaned: list[Any] = [] + changed = False + for entry in session_start: + if not isinstance(entry, dict): + cleaned.append(entry) + continue + sub_hooks = entry.get("hooks") + if not isinstance(sub_hooks, list): + cleaned.append(entry) + continue + filtered = [ + h + for h in sub_hooks + if not ( + isinstance(h, dict) + and _LEGACY_CONTEXT_MODE_HOOK_FILENAME in str(h.get("command", "")) + ) + ] + if len(filtered) == len(sub_hooks): + cleaned.append(entry) + continue + changed = True + if filtered: + new_entry = dict(entry) + new_entry["hooks"] = filtered + cleaned.append(new_entry) + + if not changed: + return removed_anything + hooks_section["SessionStart"] = cleaned + try: + settings_path.write_text(json.dumps(data, indent=2) + "\n") + return True + except OSError: + return removed_anything def install_codex_plugin() -> bool: @@ -768,12 +1024,23 @@ def install_lsp_plugins() -> bool: pre_installed = _list_installed_plugin_ids() pilot_owned: set[str] = set(previously_owned) all_ok = True + any_fresh = False + any_update = False for plugin_id in _LSP_PLUGIN_IDS: was_present = plugin_id in pre_installed was_pilot_owned = plugin_id in previously_owned + # `_install_or_update_plugin` records its own outcome, but the LSP batch + # is a single dispatcher step — drain that sidechannel per-plugin so the + # batched outcome reflects the whole set. + _take_outcome() ok = _install_or_update_plugin(plugin_id, _LSP_MARKETPLACE) + per_plugin = _take_outcome() if ok: + if per_plugin == _OUTCOME_INSTALLED: + any_fresh = True + elif per_plugin == _OUTCOME_UPDATED: + any_update = True # Pilot owns this ID iff we installed it fresh OR we already owned # it from a prior install. We do NOT claim ownership of a plugin # the user installed manually before Pilot ever ran AND that Pilot @@ -787,11 +1054,19 @@ def install_lsp_plugins() -> bool: # — including the empty-set case where no plugins are Pilot-owned. _write_pilot_lsp_manifest(sorted(pilot_owned)) + if all_ok: + if any_fresh: + _record_outcome(_OUTCOME_INSTALLED) + elif any_update: + _record_outcome(_OUTCOME_UPDATED) + else: + _record_outcome(_OUTCOME_UNCHANGED) return all_ok def install_chrome_devtools_plugin() -> bool: """Install or update the Chrome DevTools MCP plugin via the Claude CLI plugin system.""" + # Outcome is recorded inside _install_or_update_plugin; pass it through. return _install_or_update_plugin( plugin_id="chrome-devtools-mcp@chrome-devtools-plugins", marketplace="ChromeDevTools/chrome-devtools-mcp", @@ -805,9 +1080,12 @@ def install_pbt_tools() -> bool: Both packages are best-effort: failure does not block installation. """ ok = True + installed_any = False if not command_exists("hypothesis"): - if not _run_bash_with_retry("uv tool install hypothesis", timeout=UV_TOOL_INSTALL_TIMEOUT): + if _run_bash_with_retry("uv tool install hypothesis", timeout=UV_TOOL_INSTALL_TIMEOUT): + installed_any = True + else: ok = False if not command_exists("fast-check"): @@ -819,13 +1097,17 @@ def install_pbt_tools() -> bool: text=True, timeout=15, ) - if result.returncode != 0 or "fast-check" not in result.stdout: - if not _run_bash_with_retry(fast_check_cmd, timeout=GLOBAL_NPM_INSTALL_TIMEOUT): - ok = False + need_install = result.returncode != 0 or "fast-check" not in result.stdout except Exception: - if not _run_bash_with_retry(fast_check_cmd, timeout=GLOBAL_NPM_INSTALL_TIMEOUT): + need_install = True + if need_install: + if _run_bash_with_retry(fast_check_cmd, timeout=GLOBAL_NPM_INSTALL_TIMEOUT): + installed_any = True + else: ok = False + if ok: + _record_outcome(_OUTCOME_INSTALLED if installed_any else _OUTCOME_UNCHANGED) return ok @@ -858,20 +1140,27 @@ def install_agent_browser() -> bool: return False if had_browser: + _record_outcome(_OUTCOME_UPDATED) return True if is_linux_arm64(): if not command_exists("apt-get"): return False - return _run_bash_with_retry( + if not _run_bash_with_retry( "sudo -n apt-get update -qq && sudo -n apt-get install -y -qq chromium", timeout=180, - ) + ): + return False + _record_outcome(_OUTCOME_INSTALLED) + return True import platform install_cmd = "agent-browser install --with-deps" if platform.system() == "Linux" else "agent-browser install" - return _run_bash_with_retry(install_cmd, timeout=300) + if not _run_bash_with_retry(install_cmd, timeout=300): + return False + _record_outcome(_OUTCOME_INSTALLED) + return True def _get_playwright_cache_dirs() -> list[Path]: @@ -909,13 +1198,15 @@ def install_playwright_cli() -> bool: Always runs npm install to keep up to date. Skips browser download only if Chromium is already present in the Playwright cache. """ + had_cli_ready = _is_playwright_cli_ready() if not _run_bash_with_retry( _npm_install_cmd(manifest_get("playwright-cli")), timeout=GLOBAL_NPM_INSTALL_TIMEOUT, ): return False - if _is_playwright_cli_ready(): + if had_cli_ready: + _record_outcome(_OUTCOME_UPDATED) return True try: @@ -925,7 +1216,10 @@ def install_playwright_cli() -> bool: text=True, timeout=600, ) - return result.returncode == 0 + if result.returncode != 0: + return False + _record_outcome(_OUTCOME_INSTALLED) + return True except Exception: return False @@ -947,6 +1241,7 @@ class _InstallResult: name: str key: str success: bool + outcome: str = "" error: str = "" @@ -956,12 +1251,15 @@ def _run_install_silent(task: _InstallTask) -> _InstallResult: Thread-safe: uses thread-local error tracking. """ _clear_last_error() + _take_outcome() # clear any stale outcome from a previous run on this thread try: success = task.fn(*task.args) if task.args else task.fn() + outcome = _take_outcome() if success else "" return _InstallResult( name=task.name, key=task.key, success=success, + outcome=outcome, error=_get_last_error() if not success else "", ) except _SudoReauthNeeded: @@ -1015,7 +1313,7 @@ def _run_parallel_installs( result = results[task.key] if result.success: if ui: - ui.success(f"{result.name} installed") + _report_install_outcome(ui, result.name, result.outcome) installed.append(result.key) else: if ui: @@ -1029,6 +1327,25 @@ def _run_parallel_installs( return installed +def _report_install_outcome(ui: Any, name: str, outcome: str) -> None: + """Print the success message based on what the install function recorded. + + - `unchanged` → silent (no message; the tool was already present and we did nothing) + - `removed` → "{name} removed" (for cleanup steps like the legacy plugin) + - `updated` → "{name} updated" + - `installed` (or empty/unknown) → "{name} installed" (legacy default) + """ + if outcome == _OUTCOME_UNCHANGED: + return + if outcome == _OUTCOME_REMOVED: + ui.success(f"{name} removed") + return + if outcome == _OUTCOME_UPDATED: + ui.success(f"{name} updated") + return + ui.success(f"{name} installed") + + def _install_with_spinner(ui: Any, name: str, install_fn: Any, *args: Any) -> bool: """Run an installation function with a spinner. @@ -1037,6 +1354,7 @@ def _install_with_spinner(ui: Any, name: str, install_fn: Any, *args: Any) -> bo install is retried once. """ _clear_last_error() + _take_outcome() # clear any stale outcome from a prior call on this thread if ui: try: with ui.spinner(f"Installing {name}..."): @@ -1055,7 +1373,7 @@ def _install_with_spinner(ui: Any, name: str, install_fn: Any, *args: Any) -> bo _thread_local.last_retry_stderr = "sudo credentials expired — re-run the installer" result = False if result: - ui.success(f"{name} installed") + _report_install_outcome(ui, name, _take_outcome()) else: error = _get_last_error() if error: @@ -1102,16 +1420,23 @@ def _install_plugin_dependencies(_project_dir: Path, ui: Any = None) -> bool: return False if command_exists("bun"): - return _run_bash_with_retry("bun install", cwd=plugin_dir) + if not _run_bash_with_retry("bun install", cwd=plugin_dir): + return False + _record_outcome(_OUTCOME_UPDATED) + return True if command_exists("npm"): - return _run_bash_with_retry("npm install", cwd=plugin_dir) + if not _run_bash_with_retry("npm install", cwd=plugin_dir): + return False + _record_outcome(_OUTCOME_UPDATED) + return True return False def _setup_pilot_memory(ui: Any) -> bool: """Setup pilot-memory (no-op, kept for compatibility).""" + _record_outcome(_OUTCOME_UNCHANGED) return True @@ -1165,6 +1490,7 @@ def _precache_npx_mcp_servers(_ui: Any) -> bool: mcp_config_path = get_claude_config_dir() / "pilot" / ".mcp.json" if not mcp_config_path.exists(): + _record_outcome(_OUTCOME_UNCHANGED) return True try: @@ -1183,6 +1509,7 @@ def _precache_npx_mcp_servers(_ui: Any) -> bool: uncached = [p for p in npx_packages if not _is_npx_package_cached(p)] if not uncached: + _record_outcome(_OUTCOME_UNCHANGED) return True procs: list[tuple[str, subprocess.Popen[Any]]] = [] @@ -1199,6 +1526,7 @@ def _precache_npx_mcp_servers(_ui: Any) -> bool: continue if not procs: + _record_outcome(_OUTCOME_UNCHANGED) return True max_wait = NPX_CACHE_WAIT_TIMEOUT @@ -1209,6 +1537,7 @@ def _precache_npx_mcp_servers(_ui: Any) -> bool: _kill_proc(proc) _fix_npx_peer_dependencies() + _record_outcome(_OUTCOME_INSTALLED) return True @@ -1282,6 +1611,12 @@ def run(self, ctx: InstallContext) -> None: if _install_with_spinner(ui, "uv", install_uv): installed.append("uv") + # Legacy cleanup — must run after Claude Code is installed and before + # the parallel plugin installs so a single-threaded `claude` invocation + # handles the uninstall cleanly. + if _install_with_spinner(ui, "Removing legacy context-mode plugin", remove_legacy_context_mode): + installed.append("legacy_context_mode_removed") + # --- Phase 2: Independent tools (parallel) --- parallel_tasks = [ _InstallTask("Python tools", "python_tools", install_python_tools), @@ -1294,7 +1629,6 @@ def run(self, ctx: InstallContext) -> None: _InstallTask("RTK (token optimizer)", "rtk", install_rtk), _InstallTask("CodeGraph (code intelligence)", "codegraph", install_codegraph), _InstallTask("better-sqlite3 (CodeGraph native backend)", "better_sqlite3", install_better_sqlite3), - _InstallTask("context-mode plugin", "context_mode_plugin", install_context_mode_plugin), _InstallTask("Codex plugin", "codex_plugin", install_codex_plugin), _InstallTask("Chrome DevTools MCP plugin", "chrome_devtools_plugin", install_chrome_devtools_plugin), _InstallTask("LSP plugins (vtsls, basedpyright, gopls)", "lsp_plugins", install_lsp_plugins), diff --git a/installer/tests/unit/steps/test_claude_files.py b/installer/tests/unit/steps/test_claude_files.py index bcd830ca..b8bc1b26 100644 --- a/installer/tests/unit/steps/test_claude_files.py +++ b/installer/tests/unit/steps/test_claude_files.py @@ -370,6 +370,47 @@ def test_legacy_upgrade_seeds_manifest_and_cleans_old_files(self): assert not (old_global_cmds / "old-cmd.md").exists() assert manifest_path.exists() + def test_deprecated_pilot_skills_cleaned_from_home(self): + """Regression for Sweep-Manifest: skills Pilot historically shipped but + no longer ships (e.g., `notify`, `skill-build`) are removed from + ~/.claude/skills/ by the explicit deprecated-name cleanup. User + skills with non-deprecated names are preserved untouched.""" + from installer.steps.claude_files import ClaudeFilesStep + + step = ClaudeFilesStep() + with tempfile.TemporaryDirectory() as tmpdir: + home_dir = Path(tmpdir) / "home" + home_claude = home_dir / ".claude" + + skills_dir = home_claude / "skills" + skills_dir.mkdir(parents=True) + # Deprecated Pilot skills — must be removed. + (skills_dir / "notify").mkdir() + (skills_dir / "notify" / "SKILL.md").write_text("legacy notify") + (skills_dir / "skill-build").mkdir() + (skills_dir / "skill-build" / "SKILL.md").write_text("legacy skill-build") + # User skill — must survive. + (skills_dir / "my-custom-skill").mkdir() + (skills_dir / "my-custom-skill" / "SKILL.md").write_text("user custom") + + step._cleanup_deprecated_pilot_skills_in_home(home_claude) # type: ignore[attr-defined] + + assert not (skills_dir / "notify").exists() + assert not (skills_dir / "skill-build").exists() + assert (skills_dir / "my-custom-skill" / "SKILL.md").read_text() == "user custom" + + def test_deprecated_cleanup_idempotent_when_dirs_missing(self): + """No-op when ~/.claude/skills/ does not exist (fresh install path).""" + from installer.steps.claude_files import ClaudeFilesStep + + step = ClaudeFilesStep() + with tempfile.TemporaryDirectory() as tmpdir: + home_dir = Path(tmpdir) / "home" + home_claude = home_dir / ".claude" + home_claude.mkdir(parents=True) + # Should not raise; nothing to clean. + step._cleanup_deprecated_pilot_skills_in_home(home_claude) # type: ignore[attr-defined] + def test_skips_clearing_when_source_equals_destination(self): """Directories are NOT cleared when source == destination (same dir).""" from installer.context import InstallContext @@ -1580,7 +1621,7 @@ def test_leaves_unrelated_text_unchanged(self): def test_handles_multiple_occurrences(self): from installer.steps.claude_files import patch_plugin_root - content = '${CLAUDE_PLUGIN_ROOT}/a ${CLAUDE_PLUGIN_ROOT}/b' + content = "${CLAUDE_PLUGIN_ROOT}/a ${CLAUDE_PLUGIN_ROOT}/b" result = patch_plugin_root(content) assert "${CLAUDE_PLUGIN_ROOT}" not in result assert result.count("/a") == 1 @@ -1706,9 +1747,7 @@ def test_get_dest_path_agents_goes_to_claude_agents_dir(self, tmp_path): step = ClaudeFilesStep() claude_dir = tmp_path / ".claude" - with patch( - "installer.steps.claude_files.get_claude_config_dir", return_value=claude_dir - ): + with patch("installer.steps.claude_files.get_claude_config_dir", return_value=claude_dir): ctx = MagicMock() dest = step._get_dest_path("agents", "pilot/agents/spec-review.md", ctx) assert dest == claude_dir / "agents" / "spec-review.md" @@ -1725,9 +1764,7 @@ def test_remove_legacy_plugin_marker_deletes_file(self, tmp_path): marker.write_text('{"name": "pilot"}') step = ClaudeFilesStep() - with patch( - "installer.steps.claude_files.get_claude_config_dir", return_value=claude_dir - ): + with patch("installer.steps.claude_files.get_claude_config_dir", return_value=claude_dir): step._remove_legacy_plugin_marker() assert not marker.exists() @@ -1739,9 +1776,7 @@ def test_remove_legacy_plugin_marker_silent_if_missing(self, tmp_path): claude_dir = tmp_path / ".claude" step = ClaudeFilesStep() - with patch( - "installer.steps.claude_files.get_claude_config_dir", return_value=claude_dir - ): + with patch("installer.steps.claude_files.get_claude_config_dir", return_value=claude_dir): # Should not raise even if marker doesn't exist. step._remove_legacy_plugin_marker() @@ -1767,11 +1802,7 @@ def test_upgrade_idempotency_two_runs_no_double_fire(self, tmp_path): hooks_dir = plugin_dir / "hooks" hooks_dir.mkdir() hooks_dir_content = { - "hooks": { - "Stop": [ - {"matcher": "", "hooks": [{"type": "command", "command": "py /a/stop.py"}]} - ] - } + "hooks": {"Stop": [{"matcher": "", "hooks": [{"type": "command", "command": "py /a/stop.py"}]}]} } (hooks_dir / "hooks.json").write_text(json.dumps(hooks_dir_content) + "\n") # Pre-existing user settings.json @@ -1973,9 +2004,7 @@ def test_installs_pilot_servers_into_claude_json(self, tmp_path): claude_dir = tmp_path / ".claude" plugin_dir = claude_dir / "pilot" plugin_dir.mkdir(parents=True) - (plugin_dir / ".mcp.json").write_text( - json.dumps({"mcpServers": {"context7": {"command": "npx"}}}, indent=2) - ) + (plugin_dir / ".mcp.json").write_text(json.dumps({"mcpServers": {"context7": {"command": "npx"}}}, indent=2)) home = tmp_path # Pre-existing ~/.claude.json with non-MCP keys (home / ".claude.json").write_text(json.dumps({"oauthAccount": "x"}, indent=2)) @@ -2013,9 +2042,7 @@ def test_preserves_user_modified_pilot_server(self, tmp_path): json.dumps({"mcpServers": {"context7": {"command": "node-custom"}}}, indent=2) ) # baseline (from prior install) records what Pilot installed - (claude_dir / ".pilot-mcp-baseline.json").write_text( - json.dumps({"context7": {"command": "npx-old"}}, indent=2) - ) + (claude_dir / ".pilot-mcp-baseline.json").write_text(json.dumps({"context7": {"command": "npx-old"}}, indent=2)) step = ClaudeFilesStep() ui = MagicMock() @@ -2105,11 +2132,7 @@ def test_preserves_user_added_hook_on_re_install(self, tmp_path): # Incoming hooks.json from the new install hooks_json = { - "hooks": { - "Stop": [ - {"matcher": "", "hooks": [{"type": "command", "command": "py NEW_PILOT_STOP"}]} - ] - } + "hooks": {"Stop": [{"matcher": "", "hooks": [{"type": "command", "command": "py NEW_PILOT_STOP"}]}]} } (hooks_dir / "hooks.json").write_text(json.dumps(hooks_json, indent=2) + "\n") @@ -2117,11 +2140,7 @@ def test_preserves_user_added_hook_on_re_install(self, tmp_path): claude_dir.mkdir(parents=True, exist_ok=True) (claude_dir / ".pilot-hooks-baseline.json").write_text( json.dumps( - { - "Stop": [ - {"matcher": "", "hooks": [{"type": "command", "command": "py OLD_PILOT_STOP"}]} - ] - }, + {"Stop": [{"matcher": "", "hooks": [{"type": "command", "command": "py OLD_PILOT_STOP"}]}]}, indent=2, ) + "\n" diff --git a/installer/tests/unit/steps/test_config_migration.py b/installer/tests/unit/steps/test_config_migration.py index 62077daa..3b8ec12b 100644 --- a/installer/tests/unit/steps/test_config_migration.py +++ b/installer/tests/unit/steps/test_config_migration.py @@ -10,107 +10,56 @@ class TestMigrationV1: """Migration v0 → v1: Update model routing from v7.0 to v7.1.""" - def test_spec_verify_opus_migrated_through_to_opus(self, tmp_path: Path) -> None: - """spec-verify: v1 migrates opus→sonnet, then v8 migrates sonnet→opus.""" - from installer.steps.config_migration import migrate_model_config + def test_v1_unit_spec_verify_opus_to_sonnet(self) -> None: + """v1 migrates commands.spec-verify from opus to sonnet (in-memory raw dict).""" + from installer.steps.config_migration import _migration_v1 - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "commands": {"spec-verify": "opus", "spec-plan": "opus"}, - } - ) - ) + raw: dict = {"commands": {"spec-verify": "opus", "spec-plan": "opus"}} + _migration_v1(raw) + assert raw["commands"]["spec-verify"] == "sonnet" + assert raw["commands"]["spec-plan"] == "opus" - result = migrate_model_config(config_path) + def test_v1_unit_spec_verify_sonnet_stays_sonnet(self) -> None: + """v1 leaves spec-verify=sonnet alone (v8 later handles the sonnet→opus default).""" + from installer.steps.config_migration import _migration_v1 - assert result is True - migrated = json.loads(config_path.read_text()) - # v8 renames commands→skills and defaults spec-verify to opus - assert migrated["skills"]["spec-verify"] == "opus" - assert migrated["skills"]["spec-plan"] == "opus" - assert "commands" not in migrated + raw: dict = {"commands": {"spec-verify": "sonnet"}} + _migration_v1(raw) + assert raw["commands"]["spec-verify"] == "sonnet" - def test_spec_verify_sonnet_migrated_to_opus(self, tmp_path: Path) -> None: - """spec-verify set to sonnet is migrated to opus by v8.""" - from installer.steps.config_migration import migrate_model_config + def test_v1_unit_stale_agent_keys_removed(self) -> None: + """Old agent keys from v7.0 are removed and plan-reviewer/spec-reviewer added.""" + from installer.steps.config_migration import _migration_v1 - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "commands": {"spec-verify": "sonnet"}, - } - ) - ) - - migrate_model_config(config_path) - - migrated = json.loads(config_path.read_text()) - # v8 defaults sonnet→opus for spec-verify - assert migrated["skills"]["spec-verify"] == "opus" - - def test_stale_agent_keys_removed(self, tmp_path: Path) -> None: - """Old agent keys from v7.0 are removed.""" - from installer.steps.config_migration import migrate_model_config - - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "agents": { - "plan-challenger": "sonnet", - "plan-verifier": "sonnet", - "spec-reviewer-compliance": "sonnet", - "spec-reviewer-quality": "opus", - "spec-reviewer-goal": "sonnet", - "plan-reviewer": "sonnet", - "spec-reviewer": "sonnet", - }, - } - ) - ) - - migrate_model_config(config_path) - - migrated = json.loads(config_path.read_text()) - agents = migrated["agents"] + raw: dict = { + "agents": { + "plan-challenger": "sonnet", + "plan-verifier": "sonnet", + "spec-reviewer-compliance": "sonnet", + "spec-reviewer-quality": "opus", + "spec-reviewer-goal": "sonnet", + }, + } + _migration_v1(raw) + agents = raw["agents"] assert "plan-challenger" not in agents assert "plan-verifier" not in agents assert "spec-reviewer-compliance" not in agents assert "spec-reviewer-quality" not in agents assert "spec-reviewer-goal" not in agents - # v7 renames plan-reviewer → spec-review, spec-reviewer → changes-review - assert agents["spec-review"] == "sonnet" - assert agents["changes-review"] == "sonnet" - - def test_new_agent_keys_added_if_missing(self, tmp_path: Path) -> None: - """New agent keys are added when they don't exist yet.""" - from installer.steps.config_migration import migrate_model_config - - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "agents": { - "plan-challenger": "sonnet", - "plan-verifier": "sonnet", - }, - } - ) - ) + assert agents["plan-reviewer"] == "sonnet" + assert agents["spec-reviewer"] == "sonnet" - migrate_model_config(config_path) + def test_v1_unit_new_agent_keys_added_if_missing(self) -> None: + """New plan-reviewer/spec-reviewer agent keys are added when they don't exist.""" + from installer.steps.config_migration import _migration_v1 - migrated = json.loads(config_path.read_text()) - # v1 adds plan-reviewer/spec-reviewer, then v7 renames them - assert migrated["agents"]["spec-review"] == "sonnet" - assert migrated["agents"]["changes-review"] == "sonnet" + raw: dict = { + "agents": {"plan-challenger": "sonnet", "plan-verifier": "sonnet"}, + } + _migration_v1(raw) + assert raw["agents"]["plan-reviewer"] == "sonnet" + assert raw["agents"]["spec-reviewer"] == "sonnet" def test_config_version_set_after_migration(self, tmp_path: Path) -> None: """_configVersion is set to current after migration.""" @@ -131,72 +80,33 @@ def test_config_version_set_after_migration(self, tmp_path: Path) -> None: class TestMigrationV2: """Migration v1 → v2: Switch sync and learn commands from sonnet to opus.""" - def test_sync_and_learn_migrated_to_opus(self, tmp_path: Path) -> None: + def test_v2_unit_sync_and_learn_migrated_to_opus(self) -> None: """Both sync and learn skills are migrated from sonnet to opus.""" - from installer.steps.config_migration import migrate_model_config + from installer.steps.config_migration import _migration_v2 - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "commands": {"sync": "sonnet", "learn": "sonnet"}, - "_configVersion": 1, - } - ) - ) - - result = migrate_model_config(config_path) + raw: dict = {"commands": {"sync": "sonnet", "learn": "sonnet"}} + _migration_v2(raw) + assert raw["commands"]["sync"] == "opus" + assert raw["commands"]["learn"] == "opus" - assert result is True - migrated = json.loads(config_path.read_text()) - # v8 renames commands→skills - assert migrated["skills"]["sync"] == "opus" - assert migrated["skills"]["learn"] == "opus" - - def test_already_opus_not_changed(self, tmp_path: Path) -> None: + def test_v2_unit_already_opus_not_changed(self) -> None: """Skills already set to opus are left alone.""" - from installer.steps.config_migration import migrate_model_config + from installer.steps.config_migration import _migration_v2 - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "commands": {"sync": "opus", "learn": "opus"}, - "_configVersion": 1, - } - ) - ) - - result = migrate_model_config(config_path) - - assert result is True - migrated = json.loads(config_path.read_text()) - assert migrated["skills"]["sync"] == "opus" - assert migrated["skills"]["learn"] == "opus" + raw: dict = {"commands": {"sync": "opus", "learn": "opus"}} + result = _migration_v2(raw) + assert result is False + assert raw["commands"]["sync"] == "opus" + assert raw["commands"]["learn"] == "opus" - def test_partial_migration(self, tmp_path: Path) -> None: + def test_v2_unit_partial_migration(self) -> None: """Only sonnet values are migrated; opus values are untouched.""" - from installer.steps.config_migration import migrate_model_config - - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "commands": {"sync": "opus", "learn": "sonnet"}, - "_configVersion": 1, - } - ) - ) - - result = migrate_model_config(config_path) + from installer.steps.config_migration import _migration_v2 - assert result is True - migrated = json.loads(config_path.read_text()) - assert migrated["skills"]["sync"] == "opus" - assert migrated["skills"]["learn"] == "opus" + raw: dict = {"commands": {"sync": "opus", "learn": "sonnet"}} + _migration_v2(raw) + assert raw["commands"]["sync"] == "opus" + assert raw["commands"]["learn"] == "opus" class TestMigrationIdempotency: @@ -234,9 +144,7 @@ def test_skips_when_no_config_file(self, tmp_path: Path) -> None: assert result is False - def test_creates_subscription_aware_config_on_fresh_install( - self, tmp_path: Path - ) -> None: + def test_creates_subscription_aware_config_on_fresh_install(self, tmp_path: Path) -> None: """create_if_missing=True (used by installer) triggers fresh-install defaults. Regression: previously the installer skipped migrations entirely when no @@ -297,7 +205,8 @@ class TestMigrationPreservesExistingData: """Migrations preserve non-model keys in config.json.""" def test_preserves_non_model_keys(self, tmp_path: Path) -> None: - """Keys like auto_update are untouched.""" + """Non-model keys like auto_update survive the full migration chain through v12, + while v12-pruned keys (model, agents, commands/skills, extendedContext) are removed.""" from installer.steps.config_migration import migrate_model_config config_path = tmp_path / "config.json" @@ -316,9 +225,12 @@ def test_preserves_non_model_keys(self, tmp_path: Path) -> None: migrate_model_config(config_path) migrated = json.loads(config_path.read_text()) - assert migrated["extendedContext"] is True assert migrated["auto_update"] is True - assert migrated["model"] == "opus" + # v12 pruned the legacy model-routing keys + assert "model" not in migrated + assert "extendedContext" not in migrated + assert "skills" not in migrated + assert "agents" not in migrated def test_handles_missing_commands_key(self, tmp_path: Path) -> None: """Config without commands key doesn't crash.""" @@ -638,9 +550,9 @@ def test_preserves_other_spec_workflow_toggles(self, tmp_path: Path) -> None: class TestMigrationV5: """Migration v4 → v5: Enable extended context (1M) by default.""" - def test_enables_extended_context_when_false(self, tmp_path: Path) -> None: - """extendedContext: false gets set to true.""" - from installer.steps.config_migration import migrate_model_config + def test_full_chain_from_v4_lands_at_current_version_with_v12_post_state(self, tmp_path: Path) -> None: + """End-to-end chain from v4 through v12: legacy model/extendedContext keys are pruned.""" + from installer.steps.config_migration import CURRENT_CONFIG_VERSION, migrate_model_config config_path = tmp_path / "config.json" config_path.write_text( @@ -657,48 +569,10 @@ def test_enables_extended_context_when_false(self, tmp_path: Path) -> None: assert result is True migrated = json.loads(config_path.read_text()) - assert migrated["extendedContext"] is True - - def test_noop_when_already_true(self, tmp_path: Path) -> None: - """extendedContext: true stays true.""" - from installer.steps.config_migration import migrate_model_config - - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "extendedContext": True, - "_configVersion": 4, - } - ) - ) - - result = migrate_model_config(config_path) - - assert result is True - migrated = json.loads(config_path.read_text()) - assert migrated["extendedContext"] is True - - def test_sets_true_when_absent(self, tmp_path: Path) -> None: - """Missing extendedContext key gets set to true.""" - from installer.steps.config_migration import migrate_model_config - - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "_configVersion": 4, - } - ) - ) - - result = migrate_model_config(config_path) - - assert result is True - migrated = json.loads(config_path.read_text()) - assert migrated["extendedContext"] is True + assert migrated["_configVersion"] == CURRENT_CONFIG_VERSION + # v12 prunes the legacy model + extendedContext keys + assert "model" not in migrated + assert "extendedContext" not in migrated def test_v5_unit_returns_false_when_already_true(self) -> None: """Unit function returns False when no change needed.""" @@ -1035,118 +909,65 @@ def test_returns_none_when_no_subscription_type(self) -> None: class TestMigrationV8: """Migration v7 → v8: Rename commands→skills and default all to opus.""" - def test_commands_renamed_to_skills(self, tmp_path: Path) -> None: - """The 'commands' config key is renamed to 'skills'.""" - from installer.steps.config_migration import migrate_model_config - - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "commands": {"spec": "opus", "spec-plan": "opus"}, - "_configVersion": 7, - } - ) - ) + def test_v8_unit_commands_renamed_to_skills(self) -> None: + """The 'commands' config key is renamed to 'skills' (direct call to _migration_v8).""" + from installer.steps.config_migration import _migration_v8 - result = migrate_model_config(config_path) + raw: dict = {"model": "opus", "commands": {"spec": "opus", "spec-plan": "opus"}} + result = _migration_v8(raw) assert result is True - migrated = json.loads(config_path.read_text()) - assert "skills" in migrated - assert "commands" not in migrated - assert migrated["skills"]["spec"] == "opus" + assert "skills" in raw + assert "commands" not in raw + assert raw["skills"]["spec"] == "opus" - def test_sonnet_defaults_migrated_to_opus(self, tmp_path: Path) -> None: + def test_v8_unit_sonnet_defaults_migrated_to_opus(self) -> None: """spec, spec-implement, and spec-verify are migrated from sonnet to opus.""" - from installer.steps.config_migration import migrate_model_config + from installer.steps.config_migration import _migration_v8 - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "commands": { - "spec": "sonnet", - "spec-plan": "opus", - "spec-implement": "sonnet", - "spec-verify": "sonnet", - }, - "_configVersion": 7, - } - ) - ) - - migrate_model_config(config_path) + raw: dict = { + "model": "opus", + "commands": { + "spec": "sonnet", + "spec-plan": "opus", + "spec-implement": "sonnet", + "spec-verify": "sonnet", + }, + } + _migration_v8(raw) - migrated = json.loads(config_path.read_text()) - assert migrated["skills"]["spec"] == "opus" - assert migrated["skills"]["spec-plan"] == "opus" - assert migrated["skills"]["spec-implement"] == "opus" - assert migrated["skills"]["spec-verify"] == "opus" + assert raw["skills"]["spec"] == "opus" + assert raw["skills"]["spec-plan"] == "opus" + assert raw["skills"]["spec-implement"] == "opus" + assert raw["skills"]["spec-verify"] == "opus" - def test_user_opus_choices_preserved(self, tmp_path: Path) -> None: + def test_v8_unit_user_opus_choices_preserved(self) -> None: """Skills already set to opus are not changed.""" - from installer.steps.config_migration import migrate_model_config - - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "commands": {"spec": "opus", "spec-implement": "opus"}, - "_configVersion": 7, - } - ) - ) + from installer.steps.config_migration import _migration_v8 - migrate_model_config(config_path) - - migrated = json.loads(config_path.read_text()) - assert migrated["skills"]["spec"] == "opus" - assert migrated["skills"]["spec-implement"] == "opus" + raw: dict = {"model": "opus", "commands": {"spec": "opus", "spec-implement": "opus"}} + _migration_v8(raw) - def test_extended_context_ensured(self, tmp_path: Path) -> None: - """extendedContext is set to true.""" - from installer.steps.config_migration import migrate_model_config + assert raw["skills"]["spec"] == "opus" + assert raw["skills"]["spec-implement"] == "opus" - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "extendedContext": False, - "_configVersion": 7, - } - ) - ) + def test_v8_unit_extended_context_ensured(self) -> None: + """extendedContext is set to true by v8 (before v12 prunes it).""" + from installer.steps.config_migration import _migration_v8 - migrate_model_config(config_path) + raw: dict = {"model": "opus", "extendedContext": False} + _migration_v8(raw) - migrated = json.loads(config_path.read_text()) - assert migrated["extendedContext"] is True + assert raw["extendedContext"] is True - def test_skills_key_not_overwritten_by_commands(self, tmp_path: Path) -> None: + def test_v8_unit_skills_key_not_overwritten_by_commands(self) -> None: """If both 'skills' and 'commands' exist, 'skills' is kept.""" - from installer.steps.config_migration import migrate_model_config - - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "model": "opus", - "skills": {"spec": "opus"}, - "commands": {"spec": "sonnet"}, - "_configVersion": 7, - } - ) - ) + from installer.steps.config_migration import _migration_v8 - migrate_model_config(config_path) + raw: dict = {"model": "opus", "skills": {"spec": "opus"}, "commands": {"spec": "sonnet"}} + _migration_v8(raw) - migrated = json.loads(config_path.read_text()) - assert migrated["skills"]["spec"] == "opus" + assert raw["skills"]["spec"] == "opus" class TestMigrationV9: @@ -1285,8 +1106,9 @@ def test_handles_missing_skill_keys_in_existing_dict(self) -> None: # Other skills unchanged assert raw["skills"]["spec"] == "opus" - def test_full_migration_for_pro_user(self, tmp_path: Path) -> None: - """Full migrate_model_config from v8 sets sonnet for pro user.""" + def test_full_migration_for_pro_user_runs_through_to_v12(self, tmp_path: Path) -> None: + """Full migrate_model_config from v8 runs v9 (sonnet for pro) then v12 (prune model keys). + The v9 effect is captured in the .bak.v11 backup; the on-disk config has the keys pruned.""" from installer.steps.config_migration import CURRENT_CONFIG_VERSION, migrate_model_config config_path = tmp_path / "config.json" @@ -1310,15 +1132,19 @@ def test_full_migration_for_pro_user(self, tmp_path: Path) -> None: assert result is True migrated = json.loads(config_path.read_text()) - assert migrated["skills"]["spec-implement"] == "sonnet" - assert migrated["skills"]["spec-verify"] == "sonnet" - # Other skills unchanged - assert migrated["skills"]["spec"] == "opus" - assert migrated["skills"]["spec-plan"] == "opus" assert migrated["_configVersion"] == CURRENT_CONFIG_VERSION - - def test_full_migration_for_max_user_preserves_opus(self, tmp_path: Path) -> None: - """Full migrate_model_config from v8 preserves opus for max user.""" + # v12 pruned the legacy model + skills keys + assert "model" not in migrated + assert "skills" not in migrated + # The pre-v12 backup captured the v8 input verbatim + bak_path = config_path.with_suffix(".json.bak.v11") + assert bak_path.exists() + backup = json.loads(bak_path.read_text()) + assert backup["skills"]["spec-implement"] == "opus" # v9 hasn't run on the backup + + def test_full_migration_for_max_user_runs_through_to_v12(self, tmp_path: Path) -> None: + """Full migrate_model_config from v8 for max user runs the chain through v12. + v9 leaves opus intact, v12 then prunes the keys; backup captures the v9 post-state.""" from installer.steps.config_migration import CURRENT_CONFIG_VERSION, migrate_model_config config_path = tmp_path / "config.json" @@ -1340,11 +1166,16 @@ def test_full_migration_for_max_user_preserves_opus(self, tmp_path: Path) -> Non with patch("installer.steps.config_migration._get_subscription_type", return_value="max"): result = migrate_model_config(config_path) - assert result is True # Version bump still counts as modified + assert result is True migrated = json.loads(config_path.read_text()) - assert migrated["skills"]["spec-implement"] == "opus" - assert migrated["skills"]["spec-verify"] == "opus" assert migrated["_configVersion"] == CURRENT_CONFIG_VERSION + # v12 pruned the keys outright + assert "model" not in migrated + assert "skills" not in migrated + # Backup preserves the v8 input + bak_path = config_path.with_suffix(".json.bak.v11") + backup = json.loads(bak_path.read_text()) + assert backup["skills"]["spec-implement"] == "opus" def test_no_spec_bugfix_verify_key_added(self) -> None: """Migration does not add spec-bugfix-verify key (alias handles it).""" @@ -1363,10 +1194,10 @@ def test_no_spec_bugfix_verify_key_added(self) -> None: class TestMigrationV10: """Migration v9 → v10: Issue #139 — strip alias [1m] from disk; preserve explicit-id [1m].""" - def test_current_version_is_10(self) -> None: + def test_current_version_is_at_least_10(self) -> None: from installer.steps.config_migration import CURRENT_CONFIG_VERSION - assert CURRENT_CONFIG_VERSION == 11 + assert CURRENT_CONFIG_VERSION >= 10 def test_strips_alias_1m_from_main_model(self) -> None: from installer.steps.config_migration import _migration_v10 @@ -1431,8 +1262,9 @@ def test_noop_when_no_1m_anywhere(self) -> None: assert modified is False - def test_full_migration_strips_legacy_1m_and_bumps_version(self, tmp_path: Path) -> None: - """End-to-end: a v9 config with legacy alias [1m] reaches v10 with stripped values.""" + def test_full_migration_strips_legacy_1m_runs_through_to_v12(self, tmp_path: Path) -> None: + """End-to-end: a v9 config with legacy alias [1m] runs through v10 (strip [1m]) + and v12 (prune dead model keys) — final state has no model/skills keys.""" from installer.steps.config_migration import CURRENT_CONFIG_VERSION, migrate_model_config config_path = tmp_path / "config.json" @@ -1450,10 +1282,17 @@ def test_full_migration_strips_legacy_1m_and_bumps_version(self, tmp_path: Path) assert result is True migrated = json.loads(config_path.read_text()) - assert migrated["model"] == "opus" - assert migrated["skills"]["spec-plan"] == "sonnet" assert migrated["_configVersion"] == CURRENT_CONFIG_VERSION - assert CURRENT_CONFIG_VERSION == 11 + # v12 pruned the dead keys outright + assert "model" not in migrated + assert "skills" not in migrated + assert migrated["specWorkflow"]["modelSwitch"] is True + # v12 also wrote a backup with the pre-migration state + bak_path = config_path.with_suffix(".json.bak.v11") + assert bak_path.exists() + backup = json.loads(bak_path.read_text()) + assert backup["model"] == "opus[1m]" + assert backup["skills"]["spec-plan"] == "sonnet[1m]" def test_v10_idempotent(self, tmp_path: Path) -> None: """Re-running migrate on a fully-migrated config is a no-op. @@ -1468,9 +1307,7 @@ def test_v10_idempotent(self, tmp_path: Path) -> None: config_path = tmp_path / "config.json" config_path.write_text( - json.dumps( - {"_configVersion": CURRENT_CONFIG_VERSION, "model": "opus", "skills": {"spec-plan": "sonnet"}} - ) + json.dumps({"_configVersion": CURRENT_CONFIG_VERSION, "model": "opus", "skills": {"spec-plan": "sonnet"}}) ) result = migrate_model_config(config_path) @@ -1480,10 +1317,10 @@ def test_v10_idempotent(self, tmp_path: Path) -> None: class TestMigrationV11: """Migration v10 → v11: Rename specWorkflow.worktreeSupport → branchIsolation.""" - def test_current_version_is_11(self) -> None: + def test_current_version_is_at_least_11(self) -> None: from installer.steps.config_migration import CURRENT_CONFIG_VERSION - assert CURRENT_CONFIG_VERSION == 11 + assert CURRENT_CONFIG_VERSION >= 11 def test_v11_migrates_worktree_support_true(self) -> None: from installer.steps.config_migration import _migration_v11 @@ -1523,22 +1360,14 @@ def test_v11_no_op_when_no_worktree_support_key(self) -> None: assert modified is False assert "branchIsolation" not in raw["specWorkflow"] - def test_v11_already_applied_skipped(self, tmp_path: Path) -> None: - """End-to-end: a config already at v11 with branchIsolation is unchanged.""" - from installer.steps.config_migration import migrate_model_config - - config_path = tmp_path / "config.json" - config_path.write_text( - json.dumps( - { - "_configVersion": 11, - "specWorkflow": {"branchIsolation": True}, - } - ) - ) + def test_v11_unchanged_when_already_v11_and_no_legacy_keys(self) -> None: + """A config at v11 with no legacy worktreeSupport gets no changes from _migration_v11.""" + from installer.steps.config_migration import _migration_v11 - result = migrate_model_config(config_path) + raw: dict = {"specWorkflow": {"branchIsolation": True}} + result = _migration_v11(raw) assert result is False + assert raw["specWorkflow"]["branchIsolation"] is True def test_v11_preserves_other_spec_workflow_keys(self) -> None: from installer.steps.config_migration import _migration_v11 @@ -1589,7 +1418,7 @@ def test_v11_non_bool_worktree_support_defaults_to_false(self) -> None: def test_full_migration_renames_worktree_support_and_bumps_version(self, tmp_path: Path) -> None: """End-to-end: a v10 config with worktreeSupport reaches v11 with branchIsolation.""" - from installer.steps.config_migration import CURRENT_CONFIG_VERSION, migrate_model_config + from installer.steps.config_migration import migrate_model_config config_path = tmp_path / "config.json" config_path.write_text( @@ -1609,8 +1438,130 @@ def test_full_migration_renames_worktree_support_and_bumps_version(self, tmp_pat assert result is True migrated = json.loads(config_path.read_text()) - assert migrated["_configVersion"] == CURRENT_CONFIG_VERSION assert migrated["specWorkflow"]["branchIsolation"] is True assert "worktreeSupport" not in migrated["specWorkflow"] assert migrated["specWorkflow"]["askQuestionsDuringPlanning"] is True assert migrated["specWorkflow"]["planApproval"] is True + + +class TestMigrationV12: + """Migration v11 → v12: Strip dead model keys, seed specWorkflow.modelSwitch, write .bak.v11 once.""" + + def test_current_version_is_12(self) -> None: + from installer.steps.config_migration import CURRENT_CONFIG_VERSION + + assert CURRENT_CONFIG_VERSION == 12 + + def test_v12_strips_dead_model_keys_and_seeds_model_switch(self, tmp_path: Path) -> None: + from installer.steps.config_migration import migrate_model_config + + config_path = tmp_path / "config.json" + config_path.write_text( + json.dumps( + { + "_configVersion": 11, + "model": "opus", + "skills": {"spec-plan": "opus", "spec-implement": "sonnet"}, + "agents": {"spec-review": "sonnet"}, + "extendedContext": True, + "extendedContextOverrides": {"main": True}, + "specWorkflow": { + "branchIsolation": True, + "askQuestionsDuringPlanning": True, + "planApproval": True, + }, + "reviewerAgents": {"specReview": True, "changesReview": True}, + } + ) + ) + + result = migrate_model_config(config_path) + + assert result is True + migrated = json.loads(config_path.read_text()) + assert migrated["_configVersion"] == 12 + for dead in ("model", "skills", "agents", "extendedContext", "extendedContextOverrides"): + assert dead not in migrated, f"{dead} should have been pruned" + assert migrated["specWorkflow"]["modelSwitch"] is True + assert migrated["specWorkflow"]["branchIsolation"] is True + assert migrated["reviewerAgents"]["specReview"] is True + + def test_v12_writes_bak_v11_with_pre_migration_content(self, tmp_path: Path) -> None: + from installer.steps.config_migration import migrate_model_config + + config_path = tmp_path / "config.json" + pre_migration_payload = { + "_configVersion": 11, + "model": "opus", + "skills": {"spec-plan": "opus"}, + } + config_path.write_text(json.dumps(pre_migration_payload)) + + migrate_model_config(config_path) + + bak_path = config_path.with_suffix(".json.bak.v11") + assert bak_path.exists() + backup = json.loads(bak_path.read_text()) + assert backup == pre_migration_payload + + def test_v12_bak_not_overwritten_on_second_run(self, tmp_path: Path) -> None: + """Idempotency: backup holds genuine v11 snapshot even after re-runs.""" + from installer.steps.config_migration import migrate_model_config + + config_path = tmp_path / "config.json" + original = {"_configVersion": 11, "model": "opus", "skills": {"spec-plan": "opus"}} + config_path.write_text(json.dumps(original)) + + migrate_model_config(config_path) + first_backup = (config_path.with_suffix(".json.bak.v11")).read_text() + + # Re-run; config is already v12, but explicitly invoke again + migrate_model_config(config_path) + second_backup = (config_path.with_suffix(".json.bak.v11")).read_text() + + assert first_backup == second_backup + assert json.loads(first_backup) == original + + def test_v12_idempotent_when_already_v12(self, tmp_path: Path) -> None: + from installer.steps.config_migration import migrate_model_config + + config_path = tmp_path / "config.json" + config_path.write_text( + json.dumps( + { + "_configVersion": 12, + "specWorkflow": {"modelSwitch": True, "branchIsolation": True}, + } + ) + ) + + result = migrate_model_config(config_path) + assert result is False + + def test_v12_seeds_model_switch_when_specworkflow_missing(self, tmp_path: Path) -> None: + from installer.steps.config_migration import migrate_model_config + + config_path = tmp_path / "config.json" + config_path.write_text(json.dumps({"_configVersion": 11})) + + migrate_model_config(config_path) + migrated = json.loads(config_path.read_text()) + assert migrated["specWorkflow"]["modelSwitch"] is True + + def test_v12_preserves_user_model_switch_false(self, tmp_path: Path) -> None: + """If user already set modelSwitch=false explicitly, do not overwrite to true.""" + from installer.steps.config_migration import migrate_model_config + + config_path = tmp_path / "config.json" + config_path.write_text( + json.dumps( + { + "_configVersion": 11, + "specWorkflow": {"modelSwitch": False, "branchIsolation": True}, + } + ) + ) + + migrate_model_config(config_path) + migrated = json.loads(config_path.read_text()) + assert migrated["specWorkflow"]["modelSwitch"] is False diff --git a/installer/tests/unit/steps/test_dependencies.py b/installer/tests/unit/steps/test_dependencies.py index 99ad9f30..4c6ba770 100644 --- a/installer/tests/unit/steps/test_dependencies.py +++ b/installer/tests/unit/steps/test_dependencies.py @@ -46,7 +46,7 @@ def test_dependencies_check_returns_false(self): @patch("installer.steps.dependencies.install_typescript_lsp", return_value=True) @patch("installer.steps.dependencies._precache_npx_mcp_servers", return_value=True) @patch("installer.steps.dependencies.install_chrome_devtools_plugin", return_value=True) - @patch("installer.steps.dependencies.install_context_mode_plugin", return_value=True) + @patch("installer.steps.dependencies.remove_legacy_context_mode", return_value=True) @patch("installer.steps.dependencies._install_plugin_dependencies") @patch("installer.steps.dependencies._setup_pilot_memory") @patch("installer.steps.dependencies.install_python_tools") @@ -61,7 +61,7 @@ def test_dependencies_run_installs_core( mock_python_tools, mock_setup_pilot_memory, mock_plugin_deps, - _mock_ctx_mode_plugin, + _mock_remove_legacy_ctx_mode, _mock_chrome_devtools_plugin, _mock_precache, _mock_ts_lsp, @@ -1558,102 +1558,139 @@ def test_install_pbt_tools_returns_false_on_install_failure(self, _mock_cmd, _mo assert result is False -class TestInstallContextModePlugin: - """Tests for install_context_mode_plugin() — Claude CLI plugin system.""" +class TestRemoveLegacyContextMode: + """Tests for remove_legacy_context_mode() — cleanup of the deprecated plugin.""" - def test_install_context_mode_plugin_exists(self): - """install_context_mode_plugin function exists and is callable.""" - from installer.steps.dependencies import install_context_mode_plugin + def test_remove_legacy_context_mode_exists(self): + from installer.steps.dependencies import remove_legacy_context_mode - assert callable(install_context_mode_plugin) + assert callable(remove_legacy_context_mode) @patch("installer.steps.dependencies.command_exists", return_value=False) - def test_returns_false_when_claude_not_installed(self, _mock_cmd): - """Returns False immediately when claude CLI is not available.""" - from installer.steps.dependencies import install_context_mode_plugin + def test_returns_true_when_claude_not_installed(self, _mock_cmd): + """No-op when claude CLI is unavailable — cleanup cannot run, but the step succeeds.""" + from installer.steps.dependencies import remove_legacy_context_mode - result = install_context_mode_plugin() - assert result is False + assert remove_legacy_context_mode() is True - @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) + @patch("installer.steps.dependencies._legacy_context_mode_remove_orphan_hook") @patch("installer.steps.dependencies.subprocess.run") @patch("installer.steps.dependencies.command_exists", return_value=True) - def test_updates_when_already_installed(self, _mock_cmd, mock_sub, mock_bash): - """Runs 'claude plugins update' when plugin is already installed.""" - from installer.steps.dependencies import install_context_mode_plugin - - mock_sub.return_value = MagicMock( - returncode=0, - stdout=json.dumps([{"id": "context-mode@context-mode", "version": "1.0.75"}]), - ) + def test_uninstalls_plugin_and_removes_marketplace_when_present( + self, _mock_cmd, mock_sub, _mock_orphan + ): + """Plugin uninstall + marketplace remove are both invoked when both are present.""" + from installer.steps.dependencies import remove_legacy_context_mode + + plugin_list = json.dumps([{"id": "context-mode@context-mode", "version": "1.0.146"}]) + market_list = json.dumps([{"name": "context-mode", "source": "github"}]) + mock_sub.side_effect = [ + MagicMock(returncode=0, stdout=plugin_list, stderr=""), + MagicMock(returncode=0, stdout="", stderr=""), + MagicMock(returncode=0, stdout=market_list, stderr=""), + MagicMock(returncode=0, stdout="", stderr=""), + ] - result = install_context_mode_plugin() + assert remove_legacy_context_mode() is True + called_args = [c[0][0] for c in mock_sub.call_args_list] + assert ["claude", "plugins", "list", "--json"] in called_args + assert ["claude", "plugins", "uninstall", "context-mode@context-mode", "-y"] in called_args + assert ["claude", "plugins", "marketplace", "list", "--json"] in called_args + assert ["claude", "plugins", "marketplace", "remove", "context-mode"] in called_args - assert result is True - # marketplace refresh + plugin update = 2 calls - assert mock_bash.call_count == 2 - calls = [c[0][0] for c in mock_bash.call_args_list] - assert any("marketplace update context-mode" in c for c in calls) - assert any("plugins update context-mode@context-mode" in c for c in calls) - - @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) + @patch("installer.steps.dependencies._legacy_context_mode_remove_orphan_hook") @patch("installer.steps.dependencies.subprocess.run") @patch("installer.steps.dependencies.command_exists", return_value=True) - def test_fresh_install_adds_marketplace_then_installs(self, _mock_cmd, mock_sub, mock_bash): - """Adds marketplace and installs plugin when not already installed.""" - from installer.steps.dependencies import install_context_mode_plugin + def test_skips_uninstall_when_plugin_not_installed(self, _mock_cmd, mock_sub, _mock_orphan): + """Pre-check via `plugin list --json` skips the uninstall command when nothing matches.""" + from installer.steps.dependencies import remove_legacy_context_mode - mock_sub.return_value = MagicMock(returncode=0, stdout="[]") + mock_sub.side_effect = [ + MagicMock(returncode=0, stdout="[]", stderr=""), + MagicMock(returncode=0, stdout="[]", stderr=""), + ] - result = install_context_mode_plugin() + assert remove_legacy_context_mode() is True + called_args = [c[0][0] for c in mock_sub.call_args_list] + assert not any(args[:3] == ["claude", "plugins", "uninstall"] for args in called_args) + assert not any(args[:4] == ["claude", "plugins", "marketplace", "remove"] for args in called_args) - assert result is True - assert mock_bash.call_count == 2 - assert "marketplace add" in mock_bash.call_args_list[0][0][0] - assert "plugins install" in mock_bash.call_args_list[1][0][0] - - @patch("installer.steps.dependencies._run_bash_with_retry") + @patch("installer.steps.dependencies._legacy_context_mode_remove_orphan_hook") @patch("installer.steps.dependencies.subprocess.run") @patch("installer.steps.dependencies.command_exists", return_value=True) - def test_fresh_install_fails_if_marketplace_add_fails(self, _mock_cmd, mock_sub, mock_bash): - """Returns False when marketplace add fails.""" - from installer.steps.dependencies import install_context_mode_plugin + def test_handles_plugin_list_timeout(self, _mock_cmd, mock_sub, _mock_orphan): + """A timeout on `plugin list` must not crash — return True and continue.""" + from installer.steps.dependencies import remove_legacy_context_mode - mock_sub.return_value = MagicMock(returncode=0, stdout="[]") - mock_bash.return_value = False + mock_sub.side_effect = [ + subprocess.TimeoutExpired("claude", 30), + MagicMock(returncode=0, stdout="[]", stderr=""), + ] - result = install_context_mode_plugin() + assert remove_legacy_context_mode() is True - assert result is False - mock_bash.assert_called_once() - assert "marketplace add" in mock_bash.call_args[0][0] - - @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) + @patch("installer.steps.dependencies._legacy_context_mode_remove_orphan_hook") @patch("installer.steps.dependencies.subprocess.run") @patch("installer.steps.dependencies.command_exists", return_value=True) - def test_handles_plugins_list_failure_gracefully(self, _mock_cmd, mock_sub, mock_bash): - """Falls through to fresh install when 'plugins list' fails.""" - from installer.steps.dependencies import install_context_mode_plugin + def test_handles_malformed_plugin_list_json(self, _mock_cmd, mock_sub, _mock_orphan): + """Malformed JSON from `plugin list` must not crash.""" + from installer.steps.dependencies import remove_legacy_context_mode - mock_sub.return_value = MagicMock(returncode=1, stdout="") + mock_sub.side_effect = [ + MagicMock(returncode=0, stdout="not-json", stderr=""), + MagicMock(returncode=0, stdout="[]", stderr=""), + ] - result = install_context_mode_plugin() + assert remove_legacy_context_mode() is True + + def test_removes_orphan_hook_file_and_settings_entry(self, tmp_path, monkeypatch): + """The orphan ~/.claude/hooks/context-mode-cache-heal.mjs and any matching + SessionStart hook entry in ~/.claude/settings.json are both removed.""" + from installer.steps.dependencies import _legacy_context_mode_remove_orphan_hook + + fake_home = tmp_path + monkeypatch.setattr(Path, "home", lambda: fake_home) + hooks_dir = fake_home / ".claude" / "hooks" + hooks_dir.mkdir(parents=True) + orphan = hooks_dir / "context-mode-cache-heal.mjs" + orphan.write_text("// orphan\n") + + settings_path = fake_home / ".claude" / "settings.json" + settings_path.write_text( + json.dumps( + { + "hooks": { + "SessionStart": [ + {"hooks": [{"type": "command", "command": str(orphan)}]}, + { + "matcher": "startup", + "hooks": [ + {"type": "command", "command": "echo keep"}, + {"type": "command", "command": str(orphan)}, + ], + }, + ] + } + } + ) + ) - assert result is True - assert mock_bash.call_count == 2 - assert "marketplace add" in mock_bash.call_args_list[0][0][0] + _legacy_context_mode_remove_orphan_hook() - @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) - @patch("installer.steps.dependencies.subprocess.run", side_effect=subprocess.TimeoutExpired("claude", 30)) - @patch("installer.steps.dependencies.command_exists", return_value=True) - def test_handles_plugins_list_timeout(self, _mock_cmd, _mock_sub, mock_bash): - """Falls through to fresh install when 'plugins list' times out.""" - from installer.steps.dependencies import install_context_mode_plugin + assert not orphan.exists(), "Orphan hook script must be deleted." + data = json.loads(settings_path.read_text()) + entries = data["hooks"]["SessionStart"] + # First entry only referenced the orphan and is dropped; second is kept with one hook. + assert len(entries) == 1 + assert entries[0]["matcher"] == "startup" + assert entries[0]["hooks"] == [{"type": "command", "command": "echo keep"}] - result = install_context_mode_plugin() + def test_orphan_hook_cleanup_no_op_when_nothing_present(self, tmp_path, monkeypatch): + """No crash when the hook file and settings.json are absent.""" + from installer.steps.dependencies import _legacy_context_mode_remove_orphan_hook - assert result is True - assert "marketplace add" in mock_bash.call_args_list[0][0][0] + monkeypatch.setattr(Path, "home", lambda: tmp_path) + _legacy_context_mode_remove_orphan_hook() class TestInstallChromeDevToolsPlugin: @@ -1677,7 +1714,7 @@ def test_returns_false_when_claude_not_installed(self, _mock_cmd): @patch("installer.steps.dependencies.subprocess.run") @patch("installer.steps.dependencies.command_exists", return_value=True) def test_updates_when_already_installed(self, _mock_cmd, mock_sub, mock_bash): - """Runs 'claude plugins update' when plugin is already installed.""" + """Runs 'claude plugins update' then enable when plugin is already installed.""" from installer.steps.dependencies import install_chrome_devtools_plugin mock_sub.return_value = MagicMock( @@ -1692,12 +1729,16 @@ def test_updates_when_already_installed(self, _mock_cmd, mock_sub, mock_bash): calls = [c[0][0] for c in mock_bash.call_args_list] assert any("marketplace update chrome-devtools-mcp" in c for c in calls) assert any("plugins update chrome-devtools-mcp@chrome-devtools-plugins" in c for c in calls) + sub_calls = [c[0][0] for c in mock_sub.call_args_list] + assert any( + ["claude", "plugins", "enable", "chrome-devtools-mcp@chrome-devtools-plugins"] == args for args in sub_calls + ) @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) @patch("installer.steps.dependencies.subprocess.run") @patch("installer.steps.dependencies.command_exists", return_value=True) def test_fresh_install_adds_marketplace_then_installs(self, _mock_cmd, mock_sub, mock_bash): - """Adds marketplace and installs plugin when not already installed.""" + """Adds marketplace, installs plugin, then enables it when not already installed.""" from installer.steps.dependencies import install_chrome_devtools_plugin mock_sub.return_value = MagicMock(returncode=0, stdout="[]") @@ -1708,6 +1749,10 @@ def test_fresh_install_adds_marketplace_then_installs(self, _mock_cmd, mock_sub, assert mock_bash.call_count == 2 assert "marketplace add" in mock_bash.call_args_list[0][0][0] assert "plugins install" in mock_bash.call_args_list[1][0][0] + sub_calls = [c[0][0] for c in mock_sub.call_args_list] + assert any( + ["claude", "plugins", "enable", "chrome-devtools-mcp@chrome-devtools-plugins"] == args for args in sub_calls + ) @patch("installer.steps.dependencies._run_bash_with_retry") @patch("installer.steps.dependencies.subprocess.run") @@ -1725,6 +1770,50 @@ def test_fresh_install_fails_if_marketplace_add_fails(self, _mock_cmd, mock_sub, mock_bash.assert_called_once() assert "marketplace add" in mock_bash.call_args[0][0] + @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) + @patch("installer.steps.dependencies.subprocess.run") + @patch("installer.steps.dependencies.command_exists", return_value=True) + def test_dict_shaped_plugins_list_does_not_crash(self, _mock_cmd, mock_sub, mock_bash): + """Regression for C18: a future Claude CLI returning a dict (e.g. + `{"plugins": [...]}`) instead of a bare list must NOT crash the + installer with an uncaught AttributeError. The plugin should fall + through to fresh-install (or no-op cleanly), not abort the run.""" + from installer.steps.dependencies import install_chrome_devtools_plugin + + # Dict shape — iterating yields keys (strings); 'plugins'.get('id') + # would raise AttributeError under the buggy parser. + mock_sub.return_value = MagicMock( + returncode=0, + stdout=json.dumps({"plugins": [ + {"id": "chrome-devtools-mcp@chrome-devtools-plugins", "version": "1.0.0"} + ]}), + ) + + # Must not raise. Result may vary — what matters is no crash. + result = install_chrome_devtools_plugin() + # And the fresh-install path runs (marketplace add → install) since + # the dict shape isn't iterable as a list of plugin dicts. + assert result is True + calls = [c[0][0] for c in mock_bash.call_args_list] + assert any("marketplace add" in c for c in calls) + assert any("plugins install" in c for c in calls) + + @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) + @patch("installer.steps.dependencies.subprocess.run") + @patch("installer.steps.dependencies.command_exists", return_value=True) + def test_garbage_plugins_list_payload_does_not_crash(self, _mock_cmd, mock_sub, mock_bash): + """Sanity for the broadened except: a non-JSON-but-stringy payload, a + list of strings, or any other unexpected shape must be tolerated.""" + from installer.steps.dependencies import install_chrome_devtools_plugin + + # List of strings — `p.get(...)` would raise AttributeError. + mock_sub.return_value = MagicMock( + returncode=0, + stdout=json.dumps(["chrome-devtools-mcp@chrome-devtools-plugins"]), + ) + result = install_chrome_devtools_plugin() + assert result is True + class TestRunBashWithRetrySudoFallback: """Test sudo -n to sudo fallback in _run_bash_with_retry.""" @@ -1929,7 +2018,7 @@ def test_run_resets_sudo_state_on_exception( @patch("installer.steps.dependencies.needs_sudo", return_value=True) @patch("installer.steps.dependencies._precache_npx_mcp_servers", return_value=True) @patch("installer.steps.dependencies.install_chrome_devtools_plugin", return_value=True) - @patch("installer.steps.dependencies.install_context_mode_plugin", return_value=True) + @patch("installer.steps.dependencies.remove_legacy_context_mode", return_value=True) @patch("installer.steps.dependencies.initialize_codegraph", return_value=True) @patch("installer.steps.dependencies.codegraph_needs_work", return_value=False) @patch("installer.steps.dependencies.install_codegraph", return_value=True) @@ -2361,15 +2450,16 @@ def test_one_failure_returns_false_but_others_still_attempted(self, _mock_cmd, m mock_sub.return_value = MagicMock(returncode=0, stdout="[]") # _run_bash_with_retry: marketplace-add for vtsls fails; rest succeed. - # Each plugin requires 2 _run_bash_with_retry calls: marketplace add + install. - # Pattern: [add(vtsls)=F, add(basedpyright)=T, install(basedpyright)=T, add(gopls)=T, install(gopls)=T] + # Each successful plugin requires 2 bash calls (add + install). Enable + # goes through subprocess.run directly (see _ensure_plugin_enabled). + # Pattern: [add(vtsls)=F, add(bp)=T, install(bp)=T, add(gopls)=T, install(gopls)=T] bash_results = [False, True, True, True, True] with patch("installer.steps.dependencies._run_bash_with_retry", side_effect=bash_results) as mock_bash: with patch("installer.steps.dependencies.Path.home", return_value=tmp_path): result = install_lsp_plugins() assert result is False # at least one failed - # All three plugins attempted: vtsls makes 1 bash call (failed marketplace add), + # vtsls makes 1 bash call (failed marketplace add), # basedpyright + gopls make 2 each (add + install) = 5 total bash calls. assert mock_bash.call_count == 5 bash_commands = [c[0][0] for c in mock_bash.call_args_list] diff --git a/installer/tests/unit/steps/test_prerequisites.py b/installer/tests/unit/steps/test_prerequisites.py index faf67b92..96670bba 100644 --- a/installer/tests/unit/steps/test_prerequisites.py +++ b/installer/tests/unit/steps/test_prerequisites.py @@ -570,9 +570,7 @@ def test_brew_formulas_match_manifest(self): from installer.manifest import load from installer.steps.prerequisites import _brew_formulas - manifest_formulas = [ - e.brew_formula for e in load().entries if e.source_type == "brew" - ] + manifest_formulas = [e.brew_formula for e in load().entries if e.source_type == "brew"] assert _brew_formulas() == manifest_formulas def test_no_upgrade_set_matches_manifest(self): @@ -580,10 +578,7 @@ def test_no_upgrade_set_matches_manifest(self): from installer.manifest import load from installer.steps.prerequisites import _brew_no_upgrade_formulas - expected = { - e.brew_formula for e in load().entries - if e.source_type == "brew" and not e.auto_upgrade - } + expected = {e.brew_formula for e in load().entries if e.source_type == "brew" and not e.auto_upgrade} assert _brew_no_upgrade_formulas() == expected # Plan locks these specific formulas to manifest-pinned versions: assert {"python@3.12", "node@22", "nvm", "git", "gh"} <= expected @@ -639,9 +634,7 @@ def test_install_homebrew_routes_through_manifest_pinned_helper(self, _mock_brew """_install_homebrew uses the manifest-pinned curl helper with NONINTERACTIVE+stdin_devnull.""" from installer.steps.prerequisites import _install_homebrew - with patch( - "installer.steps.dependencies._curl_pipe_from_manifest", return_value=True - ) as mock_helper: + with patch("installer.steps.dependencies._curl_pipe_from_manifest", return_value=True) as mock_helper: ok = _install_homebrew() assert ok is True @@ -658,9 +651,7 @@ def test_install_homebrew_returns_false_when_helper_fails(self, _mock_brew_avail """_install_homebrew returns False when the manifest-pinned curl install fails.""" from installer.steps.prerequisites import _install_homebrew - with patch( - "installer.steps.dependencies._curl_pipe_from_manifest", return_value=False - ): + with patch("installer.steps.dependencies._curl_pipe_from_manifest", return_value=False): assert _install_homebrew() is False diff --git a/installer/tests/unit/test_drift_check.py b/installer/tests/unit/test_drift_check.py index 910f1ab9..1465ff53 100644 --- a/installer/tests/unit/test_drift_check.py +++ b/installer/tests/unit/test_drift_check.py @@ -28,33 +28,25 @@ class TestDriftDetection: def test_at_latest_in_dependencies_fails(self, drift_module, tmp_path: Path) -> None: py = tmp_path / "dependencies.py" - py.write_text( - 'def install_x():\n' - ' return _run_bash_with_retry("npm install -g something@latest")\n' - ) + py.write_text('def install_x():\n return _run_bash_with_retry("npm install -g something@latest")\n') findings = drift_module.scan_file(py) assert any("@latest" in f.message for f in findings) def test_master_install_sh_fails(self, drift_module, tmp_path: Path) -> None: py = tmp_path / "dependencies.py" - py.write_text( - 'cmd = "curl -fsSL https://example.com/master/install.sh | bash"\n' - ) + py.write_text('cmd = "curl -fsSL https://example.com/master/install.sh | bash"\n') findings = drift_module.scan_file(py) assert any("install.sh" in f.message for f in findings) def test_head_install_sh_fails(self, drift_module, tmp_path: Path) -> None: py = tmp_path / "prerequisites.py" - py.write_text('curl https://x/HEAD/install.sh | bash\n') + py.write_text("curl https://x/HEAD/install.sh | bash\n") findings = drift_module.scan_file(py) assert any("install.sh" in f.message for f in findings) def test_unversioned_uv_run_with_in_install_sh_fails(self, drift_module, tmp_path: Path) -> None: sh = tmp_path / "install.sh" - sh.write_text( - "#!/bin/bash\n" - 'uv run --python 3.12 --no-project --with rich --with certifi python -c "..."\n' - ) + sh.write_text('#!/bin/bash\nuv run --python 3.12 --no-project --with rich --with certifi python -c "..."\n') findings = drift_module.scan_file(sh) # Two unversioned --with calls. assert any("--with" in f.message for f in findings) @@ -83,9 +75,7 @@ def test_versioned_npx_in_mcp_json_passes_when_in_manifest(self, drift_module, t def test_npx_pinned_but_unmonitored_fails(self, drift_module, tmp_path: Path) -> None: """Pinned npx package missing from manifest is rejected by the cross-ref check.""" mcp = tmp_path / ".mcp.json" - mcp.write_text( - '{"mcpServers": {"x": {"command": "npx", "args": ["-y", "totally-not-monitored@1.2.3"]}}}' - ) + mcp.write_text('{"mcpServers": {"x": {"command": "npx", "args": ["-y", "totally-not-monitored@1.2.3"]}}}') findings = drift_module.cross_reference_mcp(mcp) assert any("not in manifest" in f.message.lower() or "unmonitored" in f.message.lower() for f in findings) @@ -110,9 +100,7 @@ def test_noqa_with_justification_skips(self, drift_module, tmp_path: Path) -> No def test_noqa_without_justification_rejected(self, drift_module, tmp_path: Path) -> None: py = tmp_path / "dependencies.py" - py.write_text( - 'cmd = "curl https://x/master/install.sh | bash" # noqa: drift-check\n' - ) + py.write_text('cmd = "curl https://x/master/install.sh | bash" # noqa: drift-check\n') findings = drift_module.scan_file(py) # Bare noqa is treated as a finding (justification required). assert findings @@ -147,9 +135,7 @@ def test_invalid_utf8_emits_finding_not_crash(self, drift_module, tmp_path: Path assert len(findings) == 1 assert "utf-8" in findings[0].message.lower() - def test_bare_noqa_with_forbidden_pattern_yields_one_finding( - self, drift_module, tmp_path: Path - ) -> None: + def test_bare_noqa_with_forbidden_pattern_yields_one_finding(self, drift_module, tmp_path: Path) -> None: """Bare-noqa lines must NOT also report the matched forbidden pattern. Regression guard for changes-review must_fix #2 (false-positive double-report @@ -158,9 +144,7 @@ def test_bare_noqa_with_forbidden_pattern_yields_one_finding( bare-noqa finding. """ py = tmp_path / "dependencies.py" - py.write_text( - 'cmd = "curl https://x/master/install.sh | bash" # noqa: drift-check\n' - ) + py.write_text('cmd = "curl https://x/master/install.sh | bash" # noqa: drift-check\n') findings = drift_module.scan_file(py) assert len(findings) == 1 assert "bare" in findings[0].message.lower() diff --git a/installer/tests/unit/test_install_sh.py b/installer/tests/unit/test_install_sh.py index 81b0ed1f..b94d7647 100644 --- a/installer/tests/unit/test_install_sh.py +++ b/installer/tests/unit/test_install_sh.py @@ -32,7 +32,7 @@ def test_install_sh_downloads_installer_files(): assert "git/trees" in content, "Must use git trees API endpoint as fallback" assert "installer/" in content, "Must filter for installer directory" - assert ".py" in content, "Must filter for Python files" + assert "(py|" in content, "Must filter for Python files (extension group)" def test_install_sh_grep_pattern_includes_yaml_manifests(): diff --git a/launcher/banner.py b/launcher/banner.py index 607bbca3..d41205a2 100644 Binary files a/launcher/banner.py and b/launcher/banner.py differ diff --git a/launcher/build.py b/launcher/build.py index b4873d34..59e14d7f 100644 Binary files a/launcher/build.py and b/launcher/build.py differ diff --git a/launcher/cli.py b/launcher/cli.py index b678e526..ea00606d 100644 Binary files a/launcher/cli.py and b/launcher/cli.py differ diff --git a/launcher/model_config.py b/launcher/model_config.py index 8cc2fa47..d93a83d2 100644 Binary files a/launcher/model_config.py and b/launcher/model_config.py differ diff --git a/launcher/notice.py b/launcher/notice.py new file mode 100644 index 00000000..6610b368 Binary files /dev/null and b/launcher/notice.py differ diff --git a/launcher/settings_injector.py b/launcher/settings_injector.py index 9175a17f..9b0f34f4 100644 Binary files a/launcher/settings_injector.py and b/launcher/settings_injector.py differ diff --git a/launcher/statusline/formatter.py b/launcher/statusline/formatter.py index 64f3930a..667cbe82 100644 Binary files a/launcher/statusline/formatter.py and b/launcher/statusline/formatter.py differ diff --git a/launcher/tests/unit/statusline/test_formatter.py b/launcher/tests/unit/statusline/test_formatter.py index 3f614ccf..6eaf314e 100644 Binary files a/launcher/tests/unit/statusline/test_formatter.py and b/launcher/tests/unit/statusline/test_formatter.py differ diff --git a/launcher/tests/unit/test_ansi_safety.py b/launcher/tests/unit/test_ansi_safety.py index 7ebbc3cc..8fcb738d 100644 Binary files a/launcher/tests/unit/test_ansi_safety.py and b/launcher/tests/unit/test_ansi_safety.py differ diff --git a/launcher/tests/unit/test_customize.py b/launcher/tests/unit/test_customize.py index 49f660d8..7ef64647 100644 Binary files a/launcher/tests/unit/test_customize.py and b/launcher/tests/unit/test_customize.py differ diff --git a/launcher/tests/unit/test_model_config.py b/launcher/tests/unit/test_model_config.py index eb3454df..296160c0 100644 Binary files a/launcher/tests/unit/test_model_config.py and b/launcher/tests/unit/test_model_config.py differ diff --git a/launcher/tests/unit/test_notice.py b/launcher/tests/unit/test_notice.py new file mode 100644 index 00000000..d5d9d057 Binary files /dev/null and b/launcher/tests/unit/test_notice.py differ diff --git a/launcher/tests/unit/test_settings_injector.py b/launcher/tests/unit/test_settings_injector.py index 540d8bc5..80f9ced5 100644 Binary files a/launcher/tests/unit/test_settings_injector.py and b/launcher/tests/unit/test_settings_injector.py differ diff --git a/launcher/wrapper.py b/launcher/wrapper.py index 5267d358..a29c59df 100644 Binary files a/launcher/wrapper.py and b/launcher/wrapper.py differ diff --git a/pilot/claude.json b/pilot/claude.json index fb17d322..30ffe9b1 100644 --- a/pilot/claude.json +++ b/pilot/claude.json @@ -1,6 +1,8 @@ { "showExpandedTodos": true, "autoUpdates": true, + "autoConnectIde": true, + "autoInstallIdeExtension": true, "lspRecommendationDisabled": true, "autoCompactEnabled": true, "showSpinnerTree": true diff --git a/pilot/hooks/_checkers/tdd.py b/pilot/hooks/_checkers/tdd.py index 29b69f79..0af535de 100755 --- a/pilot/hooks/_checkers/tdd.py +++ b/pilot/hooks/_checkers/tdd.py @@ -243,11 +243,7 @@ def has_test_importing_module(impl_path: str) -> bool: src = test_file.read_text(encoding="utf-8", errors="ignore") except OSError: continue - if ( - py_from.search(src) - or py_from_package_import.search(src) - or py_import.search(src) - ): + if py_from.search(src) or py_from_package_import.search(src) or py_import.search(src): return True return False @@ -274,10 +270,7 @@ def has_test_importing_module_ts(impl_path: str) -> bool: kebab = _pascal_to_kebab(base_name) names = [base_name] if kebab == base_name else [base_name, kebab] - patterns = [ - re.compile(rf"""(?:from|import)\s+['"][^'"]*\b{re.escape(n)}\b[^'"]*['"]""") - for n in names - ] + patterns = [re.compile(rf"""(?:from|import)\s+['"][^'"]*\b{re.escape(n)}\b[^'"]*['"]""") for n in names] for test_dir in test_dirs: for ext_glob in ("**/*.test.ts", "**/*.test.tsx", "**/*.spec.ts", "**/*.spec.tsx"): diff --git a/pilot/hooks/_lib/allow_tags.py b/pilot/hooks/_lib/allow_tags.py deleted file mode 100644 index 0394e773..00000000 --- a/pilot/hooks/_lib/allow_tags.py +++ /dev/null @@ -1,143 +0,0 @@ -"""Allow-tag parsing — port of sensitive-canary's user-prompt tag bypass. - -Tags `[allow-secret]` / `[allow-all]` are honoured ONLY from user-role transcript -messages. Tags in assistant messages or in command-string content are ignored -(prompt-injection defense). - -Authoritative reference for transcript tail logic: -sensitive-canary/src/pre-tool-use-hook.ts:75-96. The flag -`tool_result_after_last_text` tracks SUBSEQUENT TOP-LEVEL JSONL RECORDS, not -content blocks within the same record. -""" - -from __future__ import annotations - -import json -import re -from pathlib import Path - -from .secret_scanner import Finding - -MAX_TRANSCRIPT_TAIL_BYTES = 65_536 # 64 KB - -_ALLOW_TAG_RE = re.compile(r"\[allow-([a-z]+)\]", re.IGNORECASE) - - -def parse_allow_tags(text: str) -> set[str]: - """Extract `[allow-]` tags from text. Names are lowercased.""" - if not text: - return set() - return {m.group(1).lower() for m in _ALLOW_TAG_RE.finditer(text)} - - -def _has_text_block(content: object) -> bool: - if isinstance(content, str): - return True - if isinstance(content, list): - return any(isinstance(b, dict) and b.get("type") == "text" for b in content) - return False - - -def _extract_text(content: object) -> str: - """Concatenate text blocks (or return string content as-is).""" - if isinstance(content, str): - return content - if isinstance(content, list): - parts: list[str] = [] - for b in content: - if isinstance(b, dict) and b.get("type") == "text": - t = b.get("text") - if isinstance(t, str): - parts.append(t) - return "\n".join(parts) - return "" - - -def load_from_transcript(transcript_path: str, *, for_post_tool_use: bool = False) -> set[str]: - """Read tail of transcript JSONL and resolve effective allow tags. - - Args: - transcript_path: filesystem path to Claude Code's session transcript JSONL. - for_post_tool_use: when True, treat the LAST tool_result-only user record - as the call that triggered THIS PostToolUse hook (so the tag is NOT - yet consumed by it). Earlier tool_result records still consume the tag. - - Returns set of allow-tag names (lowercased), e.g. {"secret"} or {"all"}. - Returns empty set on missing/unreadable file or when the most recent tag has - been consumed by a subsequent tool call. - """ - try: - path = Path(transcript_path) - size = path.stat().st_size - except OSError: - return set() - - try: - if size <= MAX_TRANSCRIPT_TAIL_BYTES: - raw = path.read_text(errors="replace") - else: - with path.open("rb") as f: - f.seek(size - MAX_TRANSCRIPT_TAIL_BYTES) - raw = f.read().decode("utf-8", errors="replace") - except OSError: - return set() - - last_user_text: str | None = None - tool_result_records_after_text = 0 - for line in raw.split("\n"): - line = line.strip() - if not line: - continue - try: - parsed = json.loads(line) - except json.JSONDecodeError: - continue - msg = parsed.get("message") if isinstance(parsed, dict) else None - if not isinstance(msg, dict): - continue - if msg.get("role") != "user": - continue - content = msg.get("content") - if content is None: - continue - if _has_text_block(content): - last_user_text = _extract_text(content) - tool_result_records_after_text = 0 - else: - tool_result_records_after_text += 1 - - if last_user_text is None: - return set() - - if for_post_tool_use: - # The LAST tool_result record represents the call that triggered THIS - # PostToolUse hook — the tag is NOT yet consumed by it. But any earlier - # tool_result already used it up. - if tool_result_records_after_text > 1: - return set() - else: - if tool_result_records_after_text > 0: - return set() - - return parse_allow_tags(last_user_text) - - -def apply_allow_tags(findings: list[Finding], tags: set[str]) -> list[Finding]: - """Drop findings per tags + dedupe by secret_value. - - All findings in this port are secret-category (PII rules excluded). - `[allow-all]` and `[allow-secret]` both drop everything. - """ - deduped: list[Finding] = [] - seen: set[str] = set() - for f in findings: - if f.secret_value in seen: - continue - seen.add(f.secret_value) - deduped.append(f) - - if not tags: - return deduped - if "all" in tags or "secret" in tags: - return [] - return deduped diff --git a/pilot/hooks/_lib/secret_scanner.py b/pilot/hooks/_lib/secret_scanner.py deleted file mode 100644 index d332f6dd..00000000 --- a/pilot/hooks/_lib/secret_scanner.py +++ /dev/null @@ -1,223 +0,0 @@ -"""Secret detection — port of sensitive-canary's 24 secret rules. - -Pure module. Zero I/O. Importable from any hook script. -PII rules (sensitive-canary's PII_RULES + Luhn validator) are intentionally NOT -ported — out of scope per the credential-leak-prevention plan. - -Source: sensitive-canary/src/lib/rules.ts:58-231 (gitleaks + TruffleHog). -""" - -from __future__ import annotations - -import math -import re -from dataclasses import dataclass - - -@dataclass(frozen=True) -class Finding: - rule_id: str - description: str - match_redacted: str - secret_value: str - - -@dataclass(frozen=True) -class Rule: - id: str - description: str - regex: re.Pattern[str] - secret_group: int = 0 - entropy_threshold: float | None = None - - -def entropy(s: str) -> float: - """Shannon entropy in bits per character (0–8).""" - if not s: - return 0.0 - freq: dict[str, int] = {} - for ch in s: - freq[ch] = freq.get(ch, 0) + 1 - n = len(s) - h = 0.0 - for count in freq.values(): - p = count / n - h -= p * math.log2(p) - return h - - -def redact(s: str) -> str: - """First 4 + **** + last 4; full-mask strings ≤ 8 chars.""" - if len(s) <= 8: - return "****" - return f"{s[:4]}****{s[-4:]}" - - -# ── Secret rules (24) ───────────────────────────────────────────────────────── -RULES: list[Rule] = [ - # Cloud - Rule( - id="aws-access-key", - description="AWS Access Key ID", - regex=re.compile(r"\b(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}\b"), - ), - Rule( - id="gcp-api-key", - description="Google Cloud API Key", - regex=re.compile(r"AIza[0-9A-Za-z_\-]{35}"), - ), - Rule( - id="private-key", - description="PEM Private Key", - regex=re.compile(r"-----BEGIN (RSA |EC |DSA |PGP |OPENSSH )?PRIVATE KEY"), - ), - # Source control - Rule( - id="github-pat", - description="GitHub Personal Access Token", - regex=re.compile(r"gh[pousr]_[A-Za-z0-9]{36,255}"), - ), - Rule( - id="github-fine-grained", - description="GitHub Fine-Grained Token", - regex=re.compile(r"github_pat_[A-Za-z0-9_]{82}"), - ), - Rule( - id="gitlab-pat", - description="GitLab Personal Access Token", - regex=re.compile(r"glpat-[A-Za-z0-9_=\-]{20,22}"), - ), - # Package registries - Rule( - id="npm-token", - description="npm Access Token", - regex=re.compile(r"npm_[A-Za-z0-9]{36}"), - ), - # Communication - Rule( - id="slack-token", - description="Slack Token", - regex=re.compile(r"xox[baprs]-[0-9a-zA-Z\-]{10,72}"), - ), - Rule( - id="slack-webhook", - description="Slack Webhook URL", - regex=re.compile( - r"https://hooks\.slack\.com/services/T[A-Za-z0-9_]{8,10}/B[A-Za-z0-9_]{8,12}/[A-Za-z0-9_]{23,24}" - ), - ), - Rule( - id="discord-webhook", - description="Discord Webhook URL", - regex=re.compile(r"https://discord(?:app)?\.com/api/webhooks/[0-9]{17,20}/[A-Za-z0-9_\-]{68}"), - ), - Rule( - id="telegram-bot-token", - description="Telegram Bot Token", - regex=re.compile(r"[0-9]{8,10}:AA[0-9A-Za-z_\-]{33}"), - ), - Rule( - id="twilio-sid", - description="Twilio Account SID", - regex=re.compile(r"AC[0-9a-f]{32}"), - ), - # Email services - Rule( - id="sendgrid-key", - description="SendGrid API Key", - regex=re.compile(r"SG\.[A-Za-z0-9_\-]{20,24}\.[A-Za-z0-9_\-]{39,50}"), - ), - Rule( - id="mailgun-key", - description="Mailgun API Key", - regex=re.compile(r"key-[0-9a-zA-Z]{32}"), - ), - Rule( - id="mailchimp-key", - description="Mailchimp API Key", - regex=re.compile(r"[0-9a-f]{32}-us[0-9]{1,2}"), - ), - # Payment - Rule( - id="stripe-secret-key", - description="Stripe Secret Key", - regex=re.compile(r"sk_(live|test)_[0-9a-zA-Z]{24}"), - ), - Rule( - id="stripe-restricted-key", - description="Stripe Restricted Key", - regex=re.compile(r"rk_(live|test)_[0-9a-zA-Z]{24}"), - ), - # AI services - Rule( - id="openai-key", - description="OpenAI API Key (legacy)", - regex=re.compile(r"sk-(?!proj-|ant-)[A-Za-z0-9]{48}"), - ), - Rule( - id="openai-project-key", - description="OpenAI Project API Key", - regex=re.compile(r"sk-proj-[A-Za-z0-9_\-]{40,}"), - entropy_threshold=3.5, - ), - Rule( - id="anthropic-key", - description="Anthropic API Key", - regex=re.compile(r"sk-ant-[A-Za-z0-9_\-]{95}"), - ), - # Auth - Rule( - id="jwt", - description="JSON Web Token (JWT)", - regex=re.compile(r"eyJ[A-Za-z0-9_\-]{10,}\.eyJ[A-Za-z0-9_\-]{10,}\.[A-Za-z0-9_\-]{10,}"), - ), - # Generic / env-based - Rule( - id="generic-secret", - description="Generic API Key / Secret", - regex=re.compile( - r"(api[_\-]?key|secret[_\-]?key|access[_\-]?token|api[_\-]?secret)\s*[:=]\s*['\"]?([A-Za-z0-9\-_.]{20,})", - re.IGNORECASE, - ), - secret_group=2, - entropy_threshold=3.5, - ), - Rule( - id="env-assignment", - description=".env style secret assignment", - regex=re.compile(r"\b[A-Z_]*(SECRET|PASSWORD|PASSWD|TOKEN|API_KEY|PRIVATE_KEY)[A-Z_0-9]*\s*=\s*(\S{8,})"), - secret_group=2, - entropy_threshold=3.0, - ), - Rule( - id="connection-string", - description="Database Connection String with credentials", - regex=re.compile(r"(mongodb|mysql|postgres|postgresql|redis)://[^:\s]+:[^@\s]+@"), - ), -] - - -def scan(text: str) -> list[Finding]: - """Scan text for secrets across all rules. Findings are NOT deduped.""" - findings: list[Finding] = [] - if not text: - return findings - for rule in RULES: - for match in rule.regex.finditer(text): - try: - secret_value = match.group(rule.secret_group) - except IndexError: - continue - if not secret_value: - continue - if rule.entropy_threshold is not None and entropy(secret_value) < rule.entropy_threshold: - continue - findings.append( - Finding( - rule_id=rule.id, - description=rule.description, - match_redacted=redact(secret_value), - secret_value=secret_value, - ) - ) - return findings diff --git a/pilot/hooks/_lib/util.py b/pilot/hooks/_lib/util.py index 43c067f7..c62b1790 100644 --- a/pilot/hooks/_lib/util.py +++ b/pilot/hooks/_lib/util.py @@ -64,32 +64,15 @@ def _get_compaction_threshold_pct() -> float: # --------------------------------------------------------------------------- -# Orchestrator-aware window resolution +# Active-plan helpers # -# Background: when /spec-implement (or any /spec orchestrator phase) runs on a -# model with a smaller context window than the main session, the statusline -# cache only reflects the main-session window. Without scaling, the context -# monitor warns too late (or never) relative to the orchestrator's real -# auto-compact point. These helpers detect the active orchestrator's window -# from active_plan.json + ~/.pilot/config.json so the monitor can scale. -# -# Mirrors launcher/model_config.py:DEFAULT_MODEL_CONFIG / apply_extended_context -# and launcher/settings_injector.py:_SKILL_ALIASES — keep in lockstep. +# Per-skill model overrides have been removed (config schema v12) — the active +# model is whatever Claude Code's `/model` set for the session. The context +# monitor therefore relies on the live statusline `context_window_size` alone +# and no longer needs orchestrator-aware window scaling. The helpers below +# remain because spec_stop_guard and notify code still consume active_plan.json. # --------------------------------------------------------------------------- -_DEFAULT_MAIN_MODEL = "opus" -_DEFAULT_EXTENDED_CONTEXT = True - -_ALIAS_TO_EXPLICIT_ID: dict[str, str] = { - "opus": "claude-opus-4-7", - "sonnet": "claude-sonnet-4-6", -} - -_BUGFIX_TO_FEATURE_ALIAS: dict[str, str] = { - "spec-bugfix-plan": "spec-plan", - "spec-bugfix-verify": "spec-verify", -} - _APPROVED_RE: re.Pattern[str] = re.compile(r"^Approved:\s*(\w+)\s*$", re.MULTILINE) _TYPE_RE: re.Pattern[str] = re.compile(r"^Type:\s*(\w+)\s*$", re.MULTILINE) @@ -129,7 +112,7 @@ def _read_plan_approved_and_type(plan_path: str) -> tuple[bool, str]: def _infer_active_skill(status: str, approved: bool, plan_type: str) -> str | None: """Map (status, approved, type) → orchestrator skill name, or None. - Returns None for VERIFIED, unknown, or missing — no orchestrator scaling. + Returns None for VERIFIED, unknown, or missing. """ s = status.upper() if isinstance(status, str) else "" if s == "PENDING": @@ -153,75 +136,6 @@ def _read_pilot_config() -> dict | None: return data if isinstance(data, dict) else None -def _resolve_skill_model(config: dict, skill_name: str) -> str: - """Mirror of launcher/model_config.py:apply_extended_context for the hook process. - - 1. Lookup skills. (bugfix variants alias to feature), fall back to - global "model", fall back to default ("opus"). - 2. Per-skill extendedContextOverrides → global extendedContext → default True. - 3. Alias + extended → append "[1m]"; alias + not extended → pin to explicit ID. - 4. Explicit "claude-*" IDs pass through verbatim. - """ - resolved_skill = _BUGFIX_TO_FEATURE_ALIAS.get(skill_name, skill_name) - skills_raw = config.get("skills") - skills: dict = skills_raw if isinstance(skills_raw, dict) else {} - main_model_raw = config.get("model") - main_model = main_model_raw if isinstance(main_model_raw, str) else _DEFAULT_MAIN_MODEL - base_raw = skills.get(resolved_skill) - base = base_raw if isinstance(base_raw, str) else main_model - - overrides_raw = config.get("extendedContextOverrides") - overrides: dict = overrides_raw if isinstance(overrides_raw, dict) else {} - if isinstance(overrides.get(skill_name), bool): - extended = overrides[skill_name] - elif isinstance(overrides.get(resolved_skill), bool): - extended = overrides[resolved_skill] - elif isinstance(config.get("extendedContext"), bool): - extended = config["extendedContext"] - else: - extended = _DEFAULT_EXTENDED_CONTEXT - - if base.startswith("claude-"): - return base - stripped = base.replace("[1m]", "") - if extended and stripped in _ALIAS_TO_EXPLICIT_ID: - return f"{stripped}[1m]" - return _ALIAS_TO_EXPLICIT_ID.get(stripped, stripped) - - -def _window_for_resolved_model(model_str: str) -> int: - """Map resolved frontmatter string to context window size (1M or 200K).""" - return 1_000_000 if model_str.endswith("[1m]") else 200_000 - - -def _resolve_orchestrator_window() -> int | None: - """Return the active orchestrator's context window, or None when no scaling applies. - - None on every failure path so callers fall back to the main-session window. - Returns an int only when (a) a /spec plan is registered, (b) the plan is - PENDING or COMPLETE (not VERIFIED), and (c) the user's config resolves the - inferred skill to a known model with a known window. - """ - plan = _read_active_plan() - if plan is None: - return None - plan_path = plan.get("plan_path") - status = plan.get("status") - if not isinstance(plan_path, str) or not isinstance(status, str): - return None - - approved, plan_type = _read_plan_approved_and_type(plan_path) - skill_name = _infer_active_skill(status, approved, plan_type) - if skill_name is None: - return None - - config = _read_pilot_config() - if config is None: - return None - - return _window_for_resolved_model(_resolve_skill_model(config, skill_name)) - - def _sessions_base() -> Path: """Get base sessions directory.""" return Path.home() / ".pilot" / "sessions" diff --git a/pilot/hooks/context_monitor.py b/pilot/hooks/context_monitor.py index 950b0748..46577b51 100755 --- a/pilot/hooks/context_monitor.py +++ b/pilot/hooks/context_monitor.py @@ -11,10 +11,8 @@ sys.path.insert(0, str(Path(__file__).parent)) from _lib.util import ( - _compaction_threshold_pct_for, _get_compaction_threshold_pct, _get_max_context_tokens, - _resolve_orchestrator_window, get_session_cache_path, post_tool_use_context, ) @@ -26,15 +24,11 @@ def _to_effective(raw_pct: float) -> float: """Convert raw context % to effective % (where compaction threshold = 100%). - When a /spec orchestrator with a smaller window than the main session is - active, the raw pct from _resolve_context is already scaled to the - orchestrator's frame; use the orchestrator's compaction threshold so the - displayed effective % reflects the right "approaching compact" calibration. + Post-v12: per-skill orchestrator-window scaling is removed (per-skill model + selection no longer exists in config.json). The cached pct from + _resolve_context is in the main-session frame and the main-session + compaction threshold is the right calibration. """ - main_window = _get_max_context_tokens() - orch_window = _resolve_orchestrator_window() - if orch_window is not None and 0 < orch_window < main_window: - return min(raw_pct / _compaction_threshold_pct_for(orch_window) * 100, 100) return min(raw_pct / _get_compaction_threshold_pct() * 100, 100) @@ -139,12 +133,7 @@ def _is_throttled(session_id: str) -> bool: if time.time() - timestamp < 30: tokens = cache.get("tokens", 0) - main_window = _get_max_context_tokens() - orch_window = _resolve_orchestrator_window() - if orch_window is not None and 0 < orch_window < main_window: - active_window = orch_window - else: - active_window = main_window + active_window = _get_max_context_tokens() percentage = (tokens / active_window) * 100 if percentage < THRESHOLD_WARN: return True @@ -157,28 +146,16 @@ def _is_throttled(session_id: str) -> bool: def _resolve_context(session_id: str) -> tuple[float, int, bool] | None: """Resolve context percentage and tokens. Returns (pct, tokens, shown_80) or None. - Reads the statusline cache (always main-session frame) and scales the pct - to the active orchestrator's frame when one is detected with a smaller - window. Returned tokens stays absolute (main-frame multiplication) so - save_cache and other consumers continue to receive raw token counts. - - Asymmetric scaling: only when the orchestrator window is strictly smaller - than the main window. Larger or equal — no scaling, current behaviour. + Post-v12: per-skill orchestrator-window scaling is removed. The statusline + cache pct is in the live session's frame; we use it directly. """ statusline_pct = _read_statusline_context_pct() if statusline_pct is None: return None main_window = _get_max_context_tokens() - orch_window = _resolve_orchestrator_window() - - if orch_window is not None and 0 < orch_window < main_window: - effective_pct = min(statusline_pct * main_window / orch_window, 100.0) - else: - effective_pct = statusline_pct - shown_80_warn = get_session_flags(session_id) - return effective_pct, int(statusline_pct / 100 * main_window), shown_80_warn + return statusline_pct, int(statusline_pct / 100 * main_window), shown_80_warn def run_context_monitor() -> int: @@ -197,14 +174,10 @@ def run_context_monitor() -> int: save_cache(total_tokens, session_id) - main_window = _get_max_context_tokens() - orch_window = _resolve_orchestrator_window() - suffix = " (orchestrator window)" if orch_window is not None and 0 < orch_window < main_window else "" - if percentage >= THRESHOLD_AUTOCOMPACT: print( post_tool_use_context( - f"Context at {effective:.0f}%{suffix}. Auto-compact approaching — no context is lost. " + f"Context at {effective:.0f}%. Auto-compact approaching — no context is lost. " f"Continue all workflow steps normally. Do NOT skip steps, sub-agents, or verification." ) ) @@ -214,7 +187,7 @@ def run_context_monitor() -> int: save_cache(total_tokens, session_id, shown_80_warn=True) print( post_tool_use_context( - f"Context at {effective:.0f}%{suffix}. Auto-compact will handle context automatically. " + f"Context at {effective:.0f}%. Auto-compact will handle context automatically. " f"Continue working normally." ) ) diff --git a/pilot/hooks/credential_scanner.py b/pilot/hooks/credential_scanner.py deleted file mode 100644 index b75d1adf..00000000 --- a/pilot/hooks/credential_scanner.py +++ /dev/null @@ -1,933 +0,0 @@ -#!/usr/bin/env python3 -"""Credential leak prevention hook. - -Handles three Claude Code hook events: - - UserPromptSubmit: scan submitted prompts for secrets. - - PreToolUse(Read): name-block .env / .env.*; content-scan other files. - - PreToolUse(Bash): scan command text, env vars, file-read targets, git commit - staged diff + staged blobs, and chained `git add … && git commit` patterns - with effective-cwd tracking. - - PostToolUse(Bash): scan tool output (stdout+stderr); fail-CLOSED on >1 MB. - -Allow tags `[allow-secret]` / `[allow-all]` are honoured ONLY from user-role -transcript messages (or, for UserPromptSubmit, from the prompt text directly). - -Toggle: gated by PILOT_CREDENTIAL_SCANNER_ENABLED env var (default "true"). -""" - -from __future__ import annotations - -import json -import os -import re -import shlex -import signal -import stat -import subprocess -import sys -from contextlib import contextmanager -from pathlib import Path -from typing import Iterator - -from _lib.allow_tags import ( - apply_allow_tags, - load_from_transcript, - parse_allow_tags, -) -from _lib.secret_scanner import Finding, scan -from _lib.util import post_tool_use_block, pre_tool_use_deny - -# ── Constants ──────────────────────────────────────────────────────────────── - -MAX_SCAN_BYTES = 1_048_576 # 1 MB -MAX_BLOB_TOTAL_BYTES = 5 * MAX_SCAN_BYTES # cap across all staged blobs -GIT_TIMEOUT_SECONDS = 5 -REGEX_TIMEOUT_SECONDS = 2 - -FILE_READ_COMMANDS: frozenset[str] = frozenset({"cat", "head", "tail", "less", "more", "bat", "nl"}) - -# Match shell segment separators (mirrors tool_redirect.py:102 — &&, ||, ;, newline) -SHELL_SEGMENT_SEP_RE = re.compile(r"(?:&&|\|\||;|\n)") - -# Env var reference: $VAR or ${VAR} -ENV_VAR_RE = re.compile(r"\$\{([A-Za-z_][A-Za-z0-9_]*)\}|\$([A-Za-z_][A-Za-z0-9_]*)") - -# Git global options that take a value (consume the next token when stripping). -_GIT_GLOBAL_OPT_VALUE = frozenset({"-C", "-c", "--git-dir", "--work-tree", "--namespace", "--super-prefix"}) - -# Git global flags (no value). -_GIT_GLOBAL_OPT_FLAG = frozenset( - { - "--no-pager", - "-p", - "--paginate", - "--no-replace-objects", - "--bare", - "--no-optional-locks", - "--exec-path", - "--html-path", - "--man-path", - "--info-path", - "--literal-pathspecs", - "--glob-pathspecs", - "--noglob-pathspecs", - "--icase-pathspecs", - } -) - - -def _parse_git_invocation(segment: str) -> tuple[str | None, str | None]: - """Parse a shell segment for `git [global-opts] ...`. - - Returns (subcommand, dash_c_dir). Both are None when the segment is not a - git invocation. `--no-pager`, `-c name=val`, `-C dir`, `--git-dir`, etc. - are skipped before identifying the subcommand. Closes Codex finding #2. - """ - tokens = _tokenize_segment(segment) - if not tokens or tokens[0] != "git": - return None, None - idx = 1 - dash_c: str | None = None - while idx < len(tokens): - tk = tokens[idx] - if tk == "-C" and idx + 1 < len(tokens): - dash_c = tokens[idx + 1] - idx += 2 - continue - if tk in _GIT_GLOBAL_OPT_VALUE and idx + 1 < len(tokens): - idx += 2 - continue - if tk in _GIT_GLOBAL_OPT_FLAG: - idx += 1 - continue - # `--option=value` form (no separate value token) - if tk.startswith("--") and "=" in tk: - opt = tk.split("=", 1)[0] - if opt in _GIT_GLOBAL_OPT_VALUE or opt in _GIT_GLOBAL_OPT_FLAG: - idx += 1 - continue - # Unknown flag — be conservative, skip it (single-token). - if tk.startswith("-"): - idx += 1 - continue - # First non-flag token is the subcommand. - return tk, dash_c - return None, dash_c - - -def _segment_invokes(segment: str, subcommand: str) -> bool: - """True when the segment runs `git ` (with any global options).""" - sub, _ = _parse_git_invocation(segment) - return sub == subcommand - - -def _segment_dash_c(segment: str) -> str | None: - """Return the `-C ` value from a git invocation, if any.""" - _, dash_c = _parse_git_invocation(segment) - return dash_c - - -# ── Allow-tag aware finding pipeline ────────────────────────────────────────── - - -def _scan_and_filter(text: str, tags: set[str]) -> list[Finding]: - """Run scan, apply allow tags, dedupe. Returns final findings list.""" - return apply_allow_tags(scan(text), tags) - - -# ── BOM-aware file reading ──────────────────────────────────────────────────── - - -def _read_file_text(path: Path, max_bytes: int = MAX_SCAN_BYTES) -> str | None: - """Read up to max_bytes and decode with BOM detection. - - Returns None on I/O error or non-regular files. Use _is_regular_file() for - explicit non-regular detection in the caller — this just gracefully returns - None. - """ - try: - with path.open("rb") as f: - head = f.read(4) - rest = f.read(max_bytes - len(head)) - raw = head + rest - except OSError: - return None - - if not raw: - return "" - - if raw.startswith(b"\xff\xfe"): - try: - return raw[2:].decode("utf-16-le", errors="replace") - except UnicodeDecodeError: - return None - if raw.startswith(b"\xfe\xff"): - try: - return raw[2:].decode("utf-16-be", errors="replace") - except UnicodeDecodeError: - return None - if raw.startswith(b"\xef\xbb\xbf"): - body = raw[3:] - nul = body.find(b"\x00") - if nul != -1: - body = body[:nul] - return body.decode("utf-8", errors="replace") - - nul = raw.find(b"\x00") - if nul != -1: - raw = raw[:nul] - return raw.decode("utf-8", errors="replace") - - -def _is_regular_file(path: Path) -> bool: - try: - return stat.S_ISREG(path.lstat().st_mode) - except OSError: - return False - - -def _resolved_target(path: Path) -> Path: - """Resolve symlinks (best-effort, strict=False).""" - try: - return path.resolve(strict=False) - except OSError: - return path - - -# ── Regex-timeout safeguard (POSIX only) ────────────────────────────────────── - - -@contextmanager -def _regex_timeout(seconds: int = REGEX_TIMEOUT_SECONDS) -> Iterator[None]: - """Wrap a scan in signal.alarm guard on POSIX. No-op elsewhere.""" - if not hasattr(signal, "alarm"): - yield - return - - def _on_alarm(_signum: int, _frame: object) -> None: - raise TimeoutError("regex scan timeout") - - # `signal.signal` raises ValueError off the main thread (issue #148). - # The 24 scanner rules are bounded; losing the alarm guard is preferable - # to crashing the hook with no diagnostic. - try: - prev_handler = signal.signal(signal.SIGALRM, _on_alarm) - except ValueError: - yield - return - signal.alarm(seconds) - try: - yield - finally: - signal.alarm(0) - signal.signal(signal.SIGALRM, prev_handler) - - -# ── Block helpers ───────────────────────────────────────────────────────────── - - -def _format_finding_lines(findings: list[Finding]) -> list[str]: - return [f" [Secret] {f.description} ({f.rule_id}): {f.match_redacted}" for f in findings] - - -def _allow_hint(action_text: str = "this action") -> str: - return ( - f"To allow {action_text}, add an allow tag to the next user prompt:\n" - " [allow-secret] — allow secret findings\n" - " [allow-all] — bypass all credential-scanner checks" - ) - - -def _user_prompt_block(findings: list[Finding]) -> int: - msg_lines = [ - "🚫 Pilot credential-scanner blocked this prompt — it contains sensitive data:", - "", - *_format_finding_lines(findings), - "", - _allow_hint("this prompt"), - ] - sys.stderr.write("\n".join(msg_lines) + "\n") - return 2 - - -def _name_block_dotenv(file_path: str) -> int: - reason = ( - f"Blocked: {file_path} resolves to a .env / .env.* file. These contain secrets and " - "must not be read into the conversation.\n\n" + _allow_hint(f"reading {file_path}") - ) - print(pre_tool_use_deny(reason)) - return 2 - - -def _name_block_non_regular(file_path: str) -> int: - reason = f"Blocked: {file_path} is not a regular file (FIFO, socket, char device, etc.)." - print(pre_tool_use_deny(reason)) - return 2 - - -def _content_block(source: str, findings: list[Finding]) -> int: - reason = "\n".join( - [ - f"Blocked: {source} contains sensitive data:", - "", - *_format_finding_lines(findings), - "", - _allow_hint(f"this {source}"), - ] - ) - print(pre_tool_use_deny(reason)) - return 2 - - -def _post_tool_use_findings_block(findings: list[Finding]) -> int: - reason = "\n".join( - [ - "🚫 Bash tool output dropped — contained sensitive data:", - "", - *_format_finding_lines(findings), - "", - _allow_hint("this output to pass through"), - ] - ) - print(post_tool_use_block(reason)) - return 2 - - -def _post_tool_use_oversize_block() -> int: - reason = ( - "🚫 Bash tool output exceeds 1 MB scan budget — blocked as a precaution. " - "Use [allow-secret] in your next prompt to allow this specific output through." - ) - print(post_tool_use_block(reason)) - return 2 - - -def _bash_unresolvable_repo() -> int: - reason = ( - "Blocked: git chain has unresolvable repo path (cd to non-existent dir or invalid -C). " - "Use [allow-secret] to override." - ) - print(pre_tool_use_deny(reason)) - return 2 - - -# ── Path helpers ────────────────────────────────────────────────────────────── - - -def _is_blocked_env_basename(name: str) -> bool: - return name == ".env" or name.startswith(".env.") - - -def _scan_file_path(file_path: str, tags: set[str]) -> int: - """Scan a file for secrets, applying name-block + content-block rules. - - Returns 2 (block) or 0 (pass). - """ - if not file_path: - return 0 - p = Path(file_path) - requested_basename = p.name - target = _resolved_target(p) - target_basename = target.name - - # Name-block applies to BOTH the requested basename and the resolved target. - if _is_blocked_env_basename(requested_basename) or _is_blocked_env_basename(target_basename): - if "all" in tags or "secret" in tags: - return 0 - return _name_block_dotenv(file_path) - - # Reject non-regular files (FIFOs, sockets, etc.) BEFORE reading. - # If file does not exist, lstat fails — treat as not-a-regular-file → pass through - # (the Read tool will error on its own). - if not target.exists(): - return 0 - if not _is_regular_file(target): - return _name_block_non_regular(file_path) - - text = _read_file_text(target) - if not text: - return 0 - try: - with _regex_timeout(): - findings = _scan_and_filter(text, tags) - except TimeoutError: - return 0 # regex catastrophic-backtrack bailout - if not findings: - return 0 - return _content_block(file_path, findings) - - -# ── Bash command parsing ────────────────────────────────────────────────────── - - -def _split_segments(command: str) -> list[str]: - return [s.strip() for s in SHELL_SEGMENT_SEP_RE.split(command) if s.strip()] - - -def _extract_env_var_names(command: str) -> list[str]: - names: list[str] = [] - for m in ENV_VAR_RE.finditer(command): - name = m.group(1) or m.group(2) - if name and name not in names: - names.append(name) - return names - - -def _tokenize_segment(segment: str) -> list[str]: - """Best-effort shell tokenizer. Returns [] on parse failure (graceful).""" - try: - return shlex.split(segment, posix=True) - except ValueError: - return [] - - -def _extract_file_read_targets(segment: str) -> list[str]: - """If segment is a cat/head/etc. invocation, return positional file args.""" - tokens = _tokenize_segment(segment) - if len(tokens) < 2: - return [] - cmd = Path(tokens[0]).name - if cmd not in FILE_READ_COMMANDS: - return [] - paths: list[str] = [] - skip_next = False - for t in tokens[1:]: - if skip_next: - skip_next = False - continue - if t.startswith("-"): - continue - if t in (">", ">>", "<"): - skip_next = True - continue - paths.append(t) - return paths - - -def _git_add_tail_tokens(segment: str) -> list[str] | None: - """Tokens AFTER `git [global-opts] add` (or None if not a git-add segment). - - Honours the same global-option set as `_parse_git_invocation`, so - `git --no-pager add foo` is parsed correctly. - """ - tokens = _tokenize_segment(segment) - if not tokens or tokens[0] != "git": - return None - idx = 1 - while idx < len(tokens): - tk = tokens[idx] - if tk in _GIT_GLOBAL_OPT_VALUE and idx + 1 < len(tokens): - idx += 2 - continue - if tk in _GIT_GLOBAL_OPT_FLAG: - idx += 1 - continue - if tk.startswith("--") and "=" in tk: - opt = tk.split("=", 1)[0] - if opt in _GIT_GLOBAL_OPT_VALUE or opt in _GIT_GLOBAL_OPT_FLAG: - idx += 1 - continue - if tk.startswith("-"): - idx += 1 - continue - break - if idx >= len(tokens) or tokens[idx] != "add": - return None - return tokens[idx + 1 :] - - -def _extract_git_add_args(segment: str) -> list[str]: - """Return positional path args to `git add` (drops flag tokens).""" - tail = _git_add_tail_tokens(segment) - if tail is None: - return [] - return [t for t in tail if not t.startswith("-")] - - -def _add_segment_is_wildcard(segment: str) -> bool: - """Detect `git add` wildcard forms: -A, --all, -u, --update, ., or no positional args.""" - tail = _git_add_tail_tokens(segment) - if tail is None: - return False - explicit_paths = [t for t in tail if not t.startswith("-")] - if not explicit_paths: - return True - if any(t in ("-A", "--all", "-u", "--update", ".") for t in tail): - return True - return False - - -def _segment_git_dash_c(segment: str) -> str | None: - """Return the directory argument from `git -C ` if present.""" - return _segment_dash_c(segment) - - -def _segment_is_cd(segment: str) -> bool: - """True when the segment's first non-empty token is `cd`.""" - stripped = segment.strip() - if not stripped: - return False - return stripped == "cd" or stripped.startswith("cd ") or stripped.startswith("cd\t") - - -def _extract_cd_target(segment: str) -> str | None: - """Extract the path argument to `cd`. Handles quoted paths and embedded spaces. - - Returns None when the segment cannot be parsed (e.g. unbalanced quotes) — caller - should treat as unresolvable cwd and fail CLOSED. - """ - tokens = _tokenize_segment(segment) - if len(tokens) < 2 or tokens[0] != "cd": - return None - return tokens[1] - - -def _resolve_cwd_chain(segments: list[str], initial_cwd: Path) -> tuple[list[Path | None], Path | None]: - """Compute per-segment effective cwd by tracking `cd ` segments. - - Returns (per_segment_cwd, final_cwd). When a `cd` segment cannot be parsed - or its target does not resolve to a directory, the corresponding entry is - None and final_cwd is None — fail-CLOSED on unresolvable cwd. Closes - Claude reviewer should_fix #1 (CD_RE didn't handle paths with spaces). - """ - cwds: list[Path | None] = [] - cur: Path | None = initial_cwd - for seg in segments: - if _segment_is_cd(seg): - target = _extract_cd_target(seg) - if target is None: - cur = None - cwds.append(cur) - continue - new_cwd = (cur / target).resolve(strict=False) if cur is not None else Path(target).resolve(strict=False) - cur = new_cwd if new_cwd.is_dir() else None - cwds.append(cur) - else: - cwds.append(cur) - return cwds, cur - - -def _git_run(args: list[str], cwd: Path, max_bytes: int = MAX_SCAN_BYTES) -> bytes | None: - """Run a git command; return stdout up to max_bytes, or None on failure.""" - try: - result = subprocess.run( - args, - cwd=cwd, - capture_output=True, - timeout=GIT_TIMEOUT_SECONDS, - check=False, - ) - if result.returncode != 0: - return None - return result.stdout[:max_bytes] - except (OSError, subprocess.TimeoutExpired): - return None - - -def _scan_staged_diff(repo_cwd: Path, tags: set[str]) -> list[Finding]: - out = _git_run(["git", "diff", "--cached", "--no-color", "-U0"], repo_cwd) - if not out: - return [] - nul = out.find(b"\x00") - if nul != -1: - out = out[:nul] - text = out.decode("utf-8", errors="replace") - return _scan_and_filter(text, tags) - - -def _scan_staged_blobs(repo_cwd: Path, tags: set[str]) -> list[Finding]: - """Enumerate staged paths and read each blob via `git show :`. BOM-aware.""" - name_out = _git_run(["git", "diff", "--cached", "--name-only", "-z", "--diff-filter=ACMR"], repo_cwd) - if not name_out: - return [] - paths = [p.decode("utf-8", errors="replace") for p in name_out.split(b"\x00") if p] - findings: list[Finding] = [] - total_bytes = 0 - for rel in paths: - if total_bytes >= MAX_BLOB_TOTAL_BYTES: - break - remaining = MAX_BLOB_TOTAL_BYTES - total_bytes - budget = min(MAX_SCAN_BYTES, remaining) - blob = _git_run(["git", "show", f":{rel}"], repo_cwd, max_bytes=budget) - if blob is None: - continue - total_bytes += len(blob) - text = _decode_blob(blob) - if not text: - continue - findings.extend(_scan_and_filter(text, tags)) - return findings - - -def _decode_blob(raw: bytes) -> str: - """Decode bytes with BOM detection (mirrors _read_file_text).""" - if not raw: - return "" - if raw.startswith(b"\xff\xfe"): - return raw[2:].decode("utf-16-le", errors="replace") - if raw.startswith(b"\xfe\xff"): - return raw[2:].decode("utf-16-be", errors="replace") - if raw.startswith(b"\xef\xbb\xbf"): - body = raw[3:] - nul = body.find(b"\x00") - if nul != -1: - body = body[:nul] - return body.decode("utf-8", errors="replace") - nul = raw.find(b"\x00") - if nul != -1: - raw = raw[:nul] - return raw.decode("utf-8", errors="replace") - - -def _enumerate_working_tree_files(repo_cwd: Path) -> list[str]: - """Enumerate files that `git add -A` / `-u` / `.` would stage. - - `-A` covers modified + untracked + deleted in the working tree. `--cached` - is intentionally OMITTED — clean tracked files have no pending changes and - would otherwise exhaust the 1 MB scan budget before the secret-bearing file - is reached (Codex finding #3). - """ - out = _git_run( - ["git", "ls-files", "--modified", "--others", "--exclude-standard"], - repo_cwd, - ) - if out is None: - return [] - return [line for line in out.decode("utf-8", errors="replace").splitlines() if line] - - -# ── Event handlers ──────────────────────────────────────────────────────────── - - -def _handle_user_prompt_submit(data: dict) -> int: - prompt = data.get("prompt") or "" - if not isinstance(prompt, str) or not prompt: - return 0 - tags = parse_allow_tags(prompt) - try: - with _regex_timeout(): - findings = _scan_and_filter(prompt, tags) - except TimeoutError: - return 0 - if not findings: - return 0 - return _user_prompt_block(findings) - - -def _handle_pre_tool_use_read(data: dict) -> int: - tool_input = data.get("tool_input") or {} - file_path = tool_input.get("file_path") or "" - transcript_path = data.get("transcript_path") or "" - tags = load_from_transcript(transcript_path) if transcript_path else set() - return _scan_file_path(file_path, tags) - - -def _handle_pre_tool_use_bash(data: dict) -> int: - tool_input = data.get("tool_input") or {} - command = tool_input.get("command") or "" - if not isinstance(command, str) or not command: - return 0 - transcript_path = data.get("transcript_path") or "" - tags = load_from_transcript(transcript_path) if transcript_path else set() - initial_cwd = _initial_cwd(data) - - segments = _split_segments(command) - if not segments: - return 0 - seg_cwds, _ = _resolve_cwd_chain(segments, initial_cwd) - - # 1) Env-var scan - for var_name in _extract_env_var_names(command): - value = os.environ.get(var_name) - if not value: - continue - findings = _scan_and_filter(value, tags) - if findings: - return _content_block(f"environment variable ${var_name}", findings) - - # 2) Command-text scan (raw command text — catches inline echo AKIA…) - cmd_findings = _scan_and_filter(command, tags) - if cmd_findings: - return _content_block("bash command", cmd_findings) - - # 3) File-read commands (cat/head/tail/...) - for seg, seg_cwd in zip(segments, seg_cwds): - for raw_path in _extract_file_read_targets(seg): - path = _resolve_path_in_cwd(raw_path, seg_cwd or initial_cwd) - if path is None: - continue - ret = _scan_file_path(str(path), tags) - if ret != 0: - return ret - - # 4) Detect chains and git commit (Codex finding #2 — shlex-based detection - # so global options like --no-pager don't bypass) - has_commit = any(_segment_invokes(s, "commit") for s in segments) - has_add = any(_segment_invokes(s, "add") for s in segments) - - if has_commit: - # Determine the cwd of the commit segment - commit_cwd = _commit_segment_cwd(segments, seg_cwds, initial_cwd) - if commit_cwd is None: - return _bash_unresolvable_repo() - # Patch-text scan - diff_findings = _scan_staged_diff(commit_cwd, tags) - # Staged-blob scan (catches UTF-16 / binary blobs) - blob_findings = _scan_staged_blobs(commit_cwd, tags) - all_findings = diff_findings + blob_findings - - if has_add: - chain_findings = _scan_chain_add_files(segments, seg_cwds, initial_cwd, tags) - if chain_findings is None: - return _bash_unresolvable_repo() - all_findings.extend(chain_findings) - - all_findings = apply_allow_tags(all_findings, tags) - if all_findings: - return _content_block("staged commit", all_findings) - - return 0 - - -def _initial_cwd(data: dict) -> Path: - cwd = data.get("cwd") - if isinstance(cwd, str) and cwd: - return Path(cwd) - return Path.cwd() - - -def _resolve_path_in_cwd(raw_path: str, cwd: Path) -> Path | None: - p = Path(raw_path) - if p.is_absolute(): - return p - try: - return (cwd / raw_path).resolve(strict=False) - except OSError: - return None - - -def _commit_segment_cwd(segments: list[str], seg_cwds: list[Path | None], initial_cwd: Path) -> Path | None: - """Find the effective cwd of the first `git commit` segment.""" - for seg, cwd in zip(segments, seg_cwds): - if not _segment_invokes(seg, "commit"): - continue - # If the segment uses `git -C `, that overrides the cwd. - dash_c = _segment_git_dash_c(seg) - if dash_c: - target = Path(dash_c) - if not target.is_absolute() and cwd is not None: - target = (cwd / dash_c).resolve(strict=False) - elif target.is_absolute(): - target = target.resolve(strict=False) - else: - target = (initial_cwd / dash_c).resolve(strict=False) - return target if target.is_dir() else None - return cwd - return None - - -def _scan_chain_add_files( - segments: list[str], - seg_cwds: list[Path | None], - initial_cwd: Path, - tags: set[str], -) -> list[Finding] | None: - """Scan files referenced by `git add` segments. Returns None on cwd failure.""" - findings: list[Finding] = [] - for seg, seg_cwd in zip(segments, seg_cwds): - if not _segment_invokes(seg, "add"): - continue - dash_c = _segment_git_dash_c(seg) - if dash_c: - target = Path(dash_c) - if not target.is_absolute() and seg_cwd is not None: - target = (seg_cwd / dash_c).resolve(strict=False) - elif target.is_absolute(): - target = target.resolve(strict=False) - else: - target = (initial_cwd / dash_c).resolve(strict=False) - if not target.is_dir(): - return None - effective_cwd = target - else: - effective_cwd = seg_cwd - - if effective_cwd is None: - return None - - if _add_segment_is_wildcard(seg): - # Enumerate files the add form will stage. `-A` and `.` cover - # modified-and-new (NOT clean tracked files); we drop `--cached` - # so clean tracked files can't exhaust the budget before reaching - # the new modified secret-bearing file (Codex finding #3). - files = _enumerate_working_tree_files(effective_cwd) - findings.extend(_scan_files_under_budget(files, effective_cwd, tags)) - else: - for raw_arg in _extract_git_add_args(seg): - p_obj = Path(raw_arg) - if not p_obj.is_absolute(): - p_obj = (effective_cwd / raw_arg).resolve(strict=False) - if not p_obj.exists(): - continue - if p_obj.is_file(): - text = _read_file_text(p_obj) - if text: - findings.extend(_scan_and_filter(text, tags)) - elif p_obj.is_dir(): - # Codex finding #1: `git add ` stages every file under . - # Enumerate via git ls-files restricted to the directory pathspec. - rel_dir = _relative_path(p_obj, effective_cwd) - files_under_dir = _enumerate_pathspec_files(effective_cwd, rel_dir) - findings.extend(_scan_files_under_budget(files_under_dir, effective_cwd, tags)) - return findings - - -def _relative_path(target: Path, cwd: Path) -> str: - """Return target relative to cwd; falls back to absolute if not relative.""" - try: - return str(target.relative_to(cwd)) - except ValueError: - return str(target) - - -def _scan_files_under_budget(rel_paths: list[str], base_cwd: Path, tags: set[str]) -> list[Finding]: - """Scan a list of file paths (relative to base_cwd), within MAX_SCAN_BYTES total.""" - findings: list[Finding] = [] - total = 0 - for rel in rel_paths: - if total >= MAX_SCAN_BYTES: - break - p = (base_cwd / rel).resolve(strict=False) - if not p.is_file(): - continue - text = _read_file_text(p, max_bytes=MAX_SCAN_BYTES - total) - if not text: - continue - total += len(text.encode("utf-8", errors="replace")) - findings.extend(_scan_and_filter(text, tags)) - return findings - - -def _enumerate_pathspec_files(repo_cwd: Path, pathspec: str) -> list[str]: - """Enumerate working-tree files under a directory pathspec via git ls-files. - - Uses `--modified --others --exclude-standard` to capture both newly-added - untracked files and modified-tracked files, restricted to the pathspec. - """ - out = _git_run( - ["git", "ls-files", "--modified", "--others", "--exclude-standard", "--", pathspec], - repo_cwd, - ) - if out is None: - return [] - return [line for line in out.decode("utf-8", errors="replace").splitlines() if line] - - -def _handle_post_tool_use_bash(data: dict) -> int: - tool_response = data.get("tool_response") or {} - if not isinstance(tool_response, dict): - return 0 - stdout_b = tool_response.get("stdout") or "" - stderr_b = tool_response.get("stderr") or "" - if not isinstance(stdout_b, str): - stdout_b = "" - if not isinstance(stderr_b, str): - stderr_b = "" - - # Use UTF-8 BYTE length (not Python str/code-point length). Multi-byte chars - # would otherwise undercount, allowing a secret at byte 1,048,577 to pass - # the oversize check. Closes Claude reviewer should_fix #2. - combined_byte_len = ( - len(stdout_b.encode("utf-8", errors="replace")) - + 1 # the "\n" separator - + len(stderr_b.encode("utf-8", errors="replace")) - ) - - transcript_path = data.get("transcript_path") or "" - tags = load_from_transcript(transcript_path, for_post_tool_use=True) if transcript_path else set() - - # Scan the first MAX_SCAN_BYTES bytes of combined output. Slice by bytes, - # not by characters, so the cap matches combined_byte_len. - combined_bytes = (stdout_b + "\n" + stderr_b).encode("utf-8", errors="replace")[:MAX_SCAN_BYTES] - combined = combined_bytes.decode("utf-8", errors="replace") - try: - with _regex_timeout(): - findings = _scan_and_filter(combined, tags) - except TimeoutError: - findings = [] - - if findings: - return _post_tool_use_findings_block(findings) - - # Fail-CLOSED on oversize output (Codex finding #1 / Claude must_fix #1). - # Compare UTF-8 BYTE length, not character length, so multi-byte output - # cannot undercount and slip past the budget guard. - if combined_byte_len > MAX_SCAN_BYTES: - if "all" in tags or "secret" in tags: - return 0 - return _post_tool_use_oversize_block() - - return 0 - - -# ── Main dispatch ───────────────────────────────────────────────────────────── - - -def _enabled() -> bool: - return os.environ.get("PILOT_CREDENTIAL_SCANNER_ENABLED", "true").lower() != "false" - - -def run_credential_scanner() -> int: - """Main entry — read stdin, dispatch on event, return exit code.""" - if not _enabled(): - return 0 - - try: - raw = sys.stdin.read() - except OSError: - return 0 - if not raw: - return 0 - try: - data = json.loads(raw) - except json.JSONDecodeError: - return 0 - if not isinstance(data, dict): - return 0 - - event = data.get("hook_event_name") or "" - tool_name = data.get("tool_name") or "" - - if event == "UserPromptSubmit": - return _handle_user_prompt_submit(data) - - if event == "PreToolUse": - if tool_name == "Read": - return _handle_pre_tool_use_read(data) - if tool_name == "Bash": - return _handle_pre_tool_use_bash(data) - return 0 - - if event == "PostToolUse": - if tool_name == "Bash": - return _handle_post_tool_use_bash(data) - return 0 - - return 0 - - -def _main_with_fail_open() -> int: - """Top-level guard (issue #148): on any internal exception, surface a one-line - diagnostic to stderr and exit 0 instead of leaving the hook driver with an - opaque non-zero exit. Fail-open is safe: a broken scanner did not see the - content it was meant to scan, and all four entry points have allow-tag bypasses. - """ - try: - return run_credential_scanner() - except Exception as exc: # noqa: BLE001 — last-resort guard - print(f"credential_scanner internal error (failing open): {exc!r}", file=sys.stderr) - return 0 - - -if __name__ == "__main__": - sys.exit(_main_with_fail_open()) diff --git a/pilot/hooks/hooks.json b/pilot/hooks/hooks.json index 04d2e50f..07331f32 100644 --- a/pilot/hooks/hooks.json +++ b/pilot/hooks/hooks.json @@ -52,7 +52,7 @@ "hooks": [ { "type": "command", - "command": "uv run --no-project python \"${CLAUDE_PLUGIN_ROOT}/hooks/credential_scanner.py\"" + "command": "uv run --no-project python \"${CLAUDE_PLUGIN_ROOT}/hooks/spec_handoff_resume.py\"" } ] }, @@ -69,7 +69,7 @@ ], "PreToolUse": [ { - "matcher": "Bash|WebSearch|WebFetch|Grep|Glob|Agent|EnterPlanMode|ExitPlanMode|mcp__plugin_context-mode_context-mode__ctx_execute|mcp__plugin_context-mode_context-mode__ctx_batch_execute|mcp__plugin_context-mode_context-mode__ctx_execute_file", + "matcher": "Bash|WebSearch|WebFetch|Grep|Glob|Agent|EnterPlanMode|ExitPlanMode", "hooks": [ { "type": "command", @@ -85,15 +85,6 @@ "command": "uv run --no-project python \"${CLAUDE_PLUGIN_ROOT}/hooks/tool_token_saver.py\"" } ] - }, - { - "matcher": "Read|Bash", - "hooks": [ - { - "type": "command", - "command": "uv run --no-project python \"${CLAUDE_PLUGIN_ROOT}/hooks/credential_scanner.py\"" - } - ] } ], "PostToolUse": [ @@ -106,15 +97,6 @@ } ] }, - { - "matcher": "Bash", - "hooks": [ - { - "type": "command", - "command": "uv run --no-project python \"${CLAUDE_PLUGIN_ROOT}/hooks/credential_scanner.py\"" - } - ] - }, { "matcher": "Read|Write|Edit|MultiEdit|Bash|Task|Skill|Grep|Glob", "hooks": [ diff --git a/pilot/hooks/session_clear.py b/pilot/hooks/session_clear.py index afcec12a..88532272 100644 --- a/pilot/hooks/session_clear.py +++ b/pilot/hooks/session_clear.py @@ -16,6 +16,7 @@ STALE_FILES = [ "active_plan.json", "spec-stop-guard", + "spec-handoff-pending", "continuation.md", "context-cache.json", "context-pct.json", diff --git a/pilot/hooks/spec_handoff_resume.py b/pilot/hooks/spec_handoff_resume.py new file mode 100644 index 00000000..11be7646 --- /dev/null +++ b/pilot/hooks/spec_handoff_resume.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python3 +"""UserPromptSubmit hook — auto-resume /spec implementation after model swap. + +When `spec-plan` / `spec-bugfix-plan` end their turn after plan approval with +the Model Switching toggle ON, they write `~/.pilot/sessions//spec-handoff-pending`. +`spec_stop_guard` allows the stop but leaves the sentinel intact so this hook can +consume it on the user's next prompt — whatever it is. The hook reads the active +plan path from `active_plan.json`, injects a system reminder instructing the agent +to invoke `Skill('spec-implement', '')` immediately, and deletes the +sentinel. This removes the need for `/clear` and `/spec ` in the +model-switch resume flow. +""" + +from __future__ import annotations + +import json +import os +import sys +import time +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).parent)) +from _lib.util import _sessions_base, get_session_plan_path + +HANDOFF_SENTINEL_MAX_AGE_SECONDS = 3600 + + +def get_handoff_sentinel_path() -> Path: + session_id = os.environ.get("PILOT_SESSION_ID", "").strip() or "default" + return _sessions_base() / session_id / "spec-handoff-pending" + + +def _resolve_plan_path() -> str | None: + plan_json = get_session_plan_path() + if not plan_json.exists(): + return None + try: + data = json.loads(plan_json.read_text()) + except (json.JSONDecodeError, OSError): + return None + if not isinstance(data, dict): + return None + plan_path = data.get("plan_path") + if not isinstance(plan_path, str) or not plan_path: + return None + p = Path(plan_path) + if not p.is_absolute(): + project_root = os.environ.get("CLAUDE_PROJECT_ROOT", str(Path.cwd())) + p = Path(project_root) / p + return str(p) if p.exists() else None + + +def main() -> int: + sentinel = get_handoff_sentinel_path() + if not sentinel.exists(): + return 0 + + try: + age = time.time() - sentinel.stat().st_mtime + except OSError: + age = 0.0 + + sentinel.unlink(missing_ok=True) + + if age > HANDOFF_SENTINEL_MAX_AGE_SECONDS: + return 0 + + plan_path = _resolve_plan_path() + if not plan_path: + return 0 + + additional_context = ( + f"[Pilot model-switch resume] The plan at `{plan_path}` is approved and " + f"awaiting implementation. The user may have switched models via `/model` " + f"before sending this prompt. Your VERY NEXT action MUST be " + f"`Skill(skill='spec-implement', args='{plan_path}')` — do not chat, " + f"summarise, or re-interpret the user's prompt. Invoke the skill " + f"immediately to resume the /spec workflow." + ) + print( + json.dumps( + { + "hookSpecificOutput": { + "hookEventName": "UserPromptSubmit", + "additionalContext": additional_context, + } + } + ) + ) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/pilot/hooks/spec_mode_guard.py b/pilot/hooks/spec_mode_guard.py index 7aba8a4e..c6d96fb2 100644 --- a/pilot/hooks/spec_mode_guard.py +++ b/pilot/hooks/spec_mode_guard.py @@ -1,19 +1,108 @@ #!/usr/bin/env python3 -"""Guard: blocks /spec when in plan mode, warns when not in bypassPermissions mode. +"""Guard: blocks /spec when in plan mode or on a non-Opus model, warns when not in +bypassPermissions mode. -Uses the permission_mode common input field from Claude Code hooks to detect -the current runtime permission mode (plan, default, acceptEdits, dontAsk, -bypassPermissions). +Reads: + - `permission_mode` from hook stdin (Plan mode block, bypassPermissions warn) + - `model_id` from the statusline cache at ``~/.pilot/sessions//context-pct.json`` + (Opus-only block) — the statusline writes this every render and Claude Code + UserPromptSubmit stdin does NOT include the active model field. """ from __future__ import annotations import json +import os +import re +import shlex import sys +from pathlib import Path + +_CLAUDE_OPUS_PREFIX_RE = re.compile(r"^claude-opus(-|$)") + + +def _is_opus(model: str) -> bool: + """Return True iff ``model`` resolves to an Opus alias or explicit Opus ID. + + Strips the ``[1m]`` alias suffix (explicit IDs may legitimately carry it, + e.g. ``claude-opus-4-7[1m]``). Accepts the bare ``opus`` alias and any + explicit ID matching ``claude-opus(-|$)`` so misspellings like + ``claude-opusculus-1`` are rejected. + """ + if not isinstance(model, str) or not model: + return False + base = model[:-4] if model.endswith("[1m]") else model + if base == "opus": + return True + return bool(_CLAUDE_OPUS_PREFIX_RE.match(base)) + + +def _read_active_model_from_cache() -> str | None: + """Read ``model_id`` from the statusline cache file, or None if unavailable. + + Falls through cleanly when no statusline render has run yet (e.g. the very + first prompt after a session starts) — the caller treats None as "skip the + Opus check" rather than as a block trigger. + """ + session_id = os.environ.get("PILOT_SESSION_ID", "").strip() + if not session_id: + return None + cache_file = Path.home() / ".pilot" / "sessions" / session_id / "context-pct.json" + if not cache_file.exists(): + return None + try: + data = json.loads(cache_file.read_text()) + except (json.JSONDecodeError, OSError): + return None + model_id = data.get("model_id") if isinstance(data, dict) else None + return model_id if isinstance(model_id, str) and model_id else None + + +def _is_spec_invocation(prompt: str) -> bool: + """Return True iff ``prompt`` is a /spec slash command (not /spec-implement etc.). + + `prompt.startswith("/spec")` overmatches sibling commands such as + `/spec-implement`, `/spec-verify`, `/spec-plan`, `/spec-bugfix-plan`, + `/spec-bugfix-verify`, which are intentional Sonnet entry points after + the model-switch handoff. Restrict to bare `/spec` or `/spec ` (with + whitespace before any args). + """ + if not prompt.startswith("/spec"): + return False + after = prompt[len("/spec") :] + return after == "" or after[:1].isspace() + + +def _is_resume_existing_plan(prompt: str) -> bool: + """Return True when /spec is resuming an existing plan, not starting a new one. + + The dispatcher routes `/spec ` to existing-plan handling + (status-based dispatch). Such invocations must NOT be blocked by the Opus + gate — the resume path runs after the model-switch handoff when the user + has deliberately switched to Sonnet for implementation/verification. + + A "resume" prompt is `/spec` followed by a token ending in `.md` (case + insensitive). Paths containing spaces are honored when quoted, via shlex. + A "new plan" prompt is `/spec ` and stays + subject to the Opus block. + """ + # Strip the leading "/spec" and any whitespace. + body = prompt[len("/spec") :].strip() + if not body: + return False + try: + tokens = shlex.split(body, posix=True) + except ValueError: + # Unbalanced quotes — fall back to a permissive whitespace split. + tokens = body.split(maxsplit=1) + if not tokens: + return False + # First arg only — trailing flags don't change the verdict. + return tokens[0].lower().endswith(".md") def run_spec_mode_guard() -> int: - """Check permission mode before allowing /spec invocation.""" + """Check permission mode and active model before allowing /spec invocation.""" try: hook_data = json.load(sys.stdin) except (json.JSONDecodeError, OSError): @@ -22,7 +111,7 @@ def run_spec_mode_guard() -> int: prompt = hook_data.get("prompt", "").strip() permission_mode = hook_data.get("permission_mode", "") - if not prompt.startswith("/spec"): + if not _is_spec_invocation(prompt): return 0 if permission_mode == "plan": @@ -40,6 +129,43 @@ def run_spec_mode_guard() -> int: sys.stderr.write("\033[0;31m[Pilot] /spec blocked: Plan mode is incompatible with /spec workflow\033[0m\n") return 2 + # Opus is required only for the *planning* leg of /spec. Resuming an + # existing plan (`/spec `) dispatches to spec-implement / + # spec-verify — those phases run on whichever model the user chose during + # the model-switch handoff. Skipping the gate for resume is the difference + # between modelSwitch=true working and being unreachable on Sonnet. + if _is_resume_existing_plan(prompt): + return 0 + + active_model = _read_active_model_from_cache() + if active_model is None: + # Cache may not have been written yet (very first prompt of a fresh + # session, or a transient render that omitted model_id). Fall open + # but warn so the user knows the Opus check did not run. + sys.stderr.write( + "\033[0;33m[Pilot] Warning: could not verify active model for /spec " + "(statusline cache unavailable). Proceeding without the Opus check — " + "if you are on Sonnet, run '/clear' then '/model opus[1m]' before planning.\033[0m\n" + ) + elif not _is_opus(active_model): + print( + json.dumps( + { + "decision": "block", + "reason": ( + "[Pilot] /spec requires Opus for planning. Run '/model opus[1m]' " + "(or '/model opus') and try again. " + "(Resuming an existing plan with '/spec ' is allowed on any model.)" + ), + } + ) + ) + sys.stderr.write( + "\033[0;31m[Pilot] /spec blocked: planning requires Opus. " + "Current model: " + active_model + ". Run '/model opus[1m]' (or '/model opus').\033[0m\n" + ) + return 2 + if permission_mode and permission_mode != "bypassPermissions": sys.stderr.write( f"\033[0;33m[Pilot] Warning: /spec works best in 'Bypass Permissions' mode " diff --git a/pilot/hooks/spec_stop_guard.py b/pilot/hooks/spec_stop_guard.py index 805f30f8..9787cc9b 100644 --- a/pilot/hooks/spec_stop_guard.py +++ b/pilot/hooks/spec_stop_guard.py @@ -32,6 +32,11 @@ COOLDOWN_SECONDS = 60 MAX_BLOCKS = 30 +# Sentinel files older than this are treated as stale (PID reuse, crashed +# session, etc.) and unlinked without honoring the handoff signal. One hour +# is generous enough for any realistic /clear + /model user interaction +# between spec-plan ending its turn and the next stop event firing. +HANDOFF_SENTINEL_MAX_AGE_SECONDS = 3600 def get_stop_guard_path() -> Path: @@ -42,6 +47,26 @@ def get_stop_guard_path() -> Path: return guard_dir / "spec-stop-guard" +def get_handoff_sentinel_path() -> Path: + """Get session-scoped path to the model-switch handoff sentinel. + + `spec-plan` / `spec-bugfix-plan` create this file when ending their turn + after plan approval with the Model Switching toggle ON. The stop guard + treats its presence as permission to stop but does NOT delete it — the + sentinel must survive past the Stop event so `spec_handoff_resume` (the + UserPromptSubmit hook) can detect it on the user's next prompt and + auto-invoke `Skill('spec-implement', '')`. This is what lets + the user run `/model ` and then type any prompt (e.g. `continue`) + to resume — no `/clear`, no `/spec ` re-invocation. + + Stale sentinels (>1h) are still unlinked here so they don't accumulate. + """ + session_id = os.environ.get("PILOT_SESSION_ID", "").strip() or "default" + guard_dir = _sessions_base() / session_id + guard_dir.mkdir(parents=True, exist_ok=True) + return guard_dir / "spec-handoff-pending" + + def find_active_plan() -> tuple[Path | None, str | None]: """Find the active plan for THIS session via session-scoped active_plan.json.""" plan_json = get_session_plan_path() @@ -119,6 +144,25 @@ def main() -> int: if input_data.get("stop_hook_active", False): return 0 + # Model-switch handoff: spec-plan / spec-bugfix-plan writes the sentinel + # when the user approves a plan with `modelSwitch=true`. Its presence + # grants permission to stop, but we do NOT delete it here — the sentinel + # must survive past this Stop event so `spec_handoff_resume` (the + # UserPromptSubmit hook) can detect it on the user's next prompt and + # auto-invoke `Skill('spec-implement', ...)`. The check intentionally runs + # BEFORE find_active_plan() — the sentinel fires regardless of plan status. + handoff_sentinel = get_handoff_sentinel_path() + if handoff_sentinel.exists(): + try: + age = time.time() - handoff_sentinel.stat().st_mtime + except OSError: + age = 0.0 + if age > HANDOFF_SENTINEL_MAX_AGE_SECONDS: + # Stale (PID reuse / crashed prior session) — discard, do not honor. + handoff_sentinel.unlink(missing_ok=True) + else: + return 0 + plan_path, status = find_active_plan() if plan_path is None or status is None: return 0 diff --git a/pilot/hooks/tests/test__util.py b/pilot/hooks/tests/test__util.py index 2cdaecf8..553be575 100644 --- a/pilot/hooks/tests/test__util.py +++ b/pilot/hooks/tests/test__util.py @@ -361,30 +361,15 @@ def test_uses_last_assistant_message(self, tmp_path): assert is_waiting_for_user_input(str(transcript)) is False -class TestOrchestratorWindowHelpers: - """Unit tests for the orchestrator-aware window resolution helpers. +class TestActivePlanHelpers: + """Unit tests for active-plan helpers that remain after the v12 model rework. - Pure-function helpers (model resolution, window mapping, skill inference) are - tested without filesystem fixtures. _resolve_orchestrator_window — the - integration helper that reads active_plan.json + plan file + config.json — - is tested with tmp_path-scoped Path.home + PILOT_SESSION_ID fixtures. + The orchestrator-aware window resolution (and its supporting model + resolver) was deleted with config schema v12 — per-skill model selection + is no longer stored in ~/.pilot/config.json. The remaining `_infer_active_skill` + helper is still consumed by spec_stop_guard and notify, so it is tested here. """ - def test_window_for_resolved_model_recognises_1m_suffix(self) -> None: - from _lib.util import _window_for_resolved_model - - assert _window_for_resolved_model("opus[1m]") == 1_000_000 - assert _window_for_resolved_model("sonnet[1m]") == 1_000_000 - assert _window_for_resolved_model("claude-opus-4-7[1m]") == 1_000_000 - - def test_window_for_resolved_model_defaults_to_200k(self) -> None: - from _lib.util import _window_for_resolved_model - - assert _window_for_resolved_model("opus") == 200_000 - assert _window_for_resolved_model("sonnet") == 200_000 - assert _window_for_resolved_model("claude-sonnet-4-6") == 200_000 - assert _window_for_resolved_model("claude-haiku-4-5-20251001") == 200_000 - def test_infer_active_skill_maps_phases(self) -> None: from _lib.util import _infer_active_skill @@ -397,125 +382,7 @@ def test_infer_active_skill_maps_phases(self) -> None: assert _infer_active_skill("VERIFIED", True, "Feature") is None assert _infer_active_skill("", False, "Feature") is None - def test_resolve_skill_model_alias_with_extended_context(self) -> None: - from _lib.util import _resolve_skill_model - - config = {"model": "opus", "extendedContext": True, "skills": {"spec-implement": "sonnet"}} - assert _resolve_skill_model(config, "spec-implement") == "sonnet[1m]" - - def test_resolve_skill_model_alias_without_extended_context(self) -> None: - from _lib.util import _resolve_skill_model - - config = { - "model": "opus", - "extendedContext": True, - "skills": {"spec-implement": "sonnet"}, - "extendedContextOverrides": {"spec-implement": False}, - } - # Per-skill override pins alias to explicit ID - assert _resolve_skill_model(config, "spec-implement") == "claude-sonnet-4-6" - - def test_resolve_skill_model_explicit_id_passes_through(self) -> None: - from _lib.util import _resolve_skill_model - - config = {"model": "opus", "skills": {"spec-implement": "claude-opus-4-7"}} - assert _resolve_skill_model(config, "spec-implement") == "claude-opus-4-7" - - def test_resolve_skill_model_bugfix_alias_resolves_to_feature_variant(self) -> None: - from _lib.util import _resolve_skill_model - - config = {"model": "opus", "skills": {"spec-plan": "sonnet"}, "extendedContext": False} - # spec-bugfix-plan should look up spec-plan in skills - assert _resolve_skill_model(config, "spec-bugfix-plan") == "claude-sonnet-4-6" - - def test_resolve_skill_model_falls_back_to_main_model(self) -> None: - from _lib.util import _resolve_skill_model - - config = {"model": "sonnet", "extendedContext": True} - # No skills. entry → falls back to global model - assert _resolve_skill_model(config, "spec-implement") == "sonnet[1m]" - - def test_resolve_orchestrator_window_returns_none_without_session_id(self, tmp_path: Path) -> None: - from _lib.util import _resolve_orchestrator_window - - with ( - patch.dict("os.environ", {}, clear=True), - patch("pathlib.Path.home", return_value=tmp_path), - ): - assert _resolve_orchestrator_window() is None - - def test_resolve_orchestrator_window_returns_none_without_active_plan(self, tmp_path: Path) -> None: - from _lib.util import _resolve_orchestrator_window - - session_dir = tmp_path / ".pilot" / "sessions" / "no-plan" - session_dir.mkdir(parents=True) - with ( - patch.dict("os.environ", {"PILOT_SESSION_ID": "no-plan"}), - patch("pathlib.Path.home", return_value=tmp_path), - ): - assert _resolve_orchestrator_window() is None - - def test_resolve_orchestrator_window_returns_200k_for_sonnet_without_1m(self, tmp_path: Path) -> None: - from _lib.util import _resolve_orchestrator_window - - session_id = "orch-200k" - session_dir = tmp_path / ".pilot" / "sessions" / session_id - session_dir.mkdir(parents=True) - - plan_path = tmp_path / "plan.md" - plan_path.write_text("Status: PENDING\nApproved: Yes\nType: Feature\n") - (session_dir / "active_plan.json").write_text(json.dumps({"plan_path": str(plan_path), "status": "PENDING"})) - (tmp_path / ".pilot" / "config.json").write_text( - json.dumps( - { - "model": "opus", - "extendedContext": True, - "skills": {"spec-implement": "sonnet"}, - "extendedContextOverrides": {"spec-implement": False}, - } - ) - ) - - with ( - patch.dict("os.environ", {"PILOT_SESSION_ID": session_id}), - patch("pathlib.Path.home", return_value=tmp_path), - ): - assert _resolve_orchestrator_window() == 200_000 - - def test_resolve_orchestrator_window_returns_1m_for_opus_with_extended(self, tmp_path: Path) -> None: - from _lib.util import _resolve_orchestrator_window - - session_id = "orch-1m" - session_dir = tmp_path / ".pilot" / "sessions" / session_id - session_dir.mkdir(parents=True) - - plan_path = tmp_path / "plan.md" - plan_path.write_text("Status: PENDING\nApproved: Yes\nType: Feature\n") - (session_dir / "active_plan.json").write_text(json.dumps({"plan_path": str(plan_path), "status": "PENDING"})) - (tmp_path / ".pilot" / "config.json").write_text( - json.dumps({"model": "opus", "extendedContext": True, "skills": {"spec-implement": "opus"}}) - ) - - with ( - patch.dict("os.environ", {"PILOT_SESSION_ID": session_id}), - patch("pathlib.Path.home", return_value=tmp_path), - ): - assert _resolve_orchestrator_window() == 1_000_000 - - def test_resolve_orchestrator_window_returns_none_for_verified_status(self, tmp_path: Path) -> None: - from _lib.util import _resolve_orchestrator_window - - session_id = "orch-verified" - session_dir = tmp_path / ".pilot" / "sessions" / session_id - session_dir.mkdir(parents=True) - - plan_path = tmp_path / "plan.md" - plan_path.write_text("Status: VERIFIED\nApproved: Yes\nType: Feature\n") - (session_dir / "active_plan.json").write_text(json.dumps({"plan_path": str(plan_path), "status": "VERIFIED"})) - (tmp_path / ".pilot" / "config.json").write_text(json.dumps({"model": "opus"})) - - with ( - patch.dict("os.environ", {"PILOT_SESSION_ID": session_id}), - patch("pathlib.Path.home", return_value=tmp_path), - ): - assert _resolve_orchestrator_window() is None + # `_resolve_orchestrator_window` was deleted with the v12 model-rework — + # per-skill orchestrator-window scaling no longer exists, and + # `context_monitor.py` now relies on the live statusline `context_window_size` + # alone. Nothing to test here anymore. diff --git a/pilot/hooks/tests/test_allow_tags.py b/pilot/hooks/tests/test_allow_tags.py deleted file mode 100644 index 8784d47e..00000000 --- a/pilot/hooks/tests/test_allow_tags.py +++ /dev/null @@ -1,238 +0,0 @@ -"""Tests for _lib.allow_tags — transcript-tail parser + tag application.""" - -from __future__ import annotations - -import json -from pathlib import Path - -import pytest -from _lib.allow_tags import ( - apply_allow_tags, - load_from_transcript, - parse_allow_tags, -) -from _lib.secret_scanner import Finding - - -def _user_text(text: str) -> dict: - return {"type": "user", "message": {"role": "user", "content": text}} - - -def _user_blocks(blocks: list[dict]) -> dict: - return {"type": "user", "message": {"role": "user", "content": blocks}} - - -def _assistant(text: str) -> dict: - return {"type": "assistant", "message": {"role": "assistant", "content": text}} - - -def _tool_result_block(content: str) -> dict: - return {"type": "tool_result", "content": content} - - -def _text_block(text: str) -> dict: - return {"type": "text", "text": text} - - -def _write_jsonl(path: Path, records: list[dict]) -> None: - with path.open("w") as f: - for r in records: - f.write(json.dumps(r) + "\n") - - -def _make_finding(rule_id: str = "aws-access-key", value: str = "AKIAIOSFODNN7EXAMPLE") -> Finding: - return Finding( - rule_id=rule_id, - description="AWS Access Key ID", - match_redacted="AKIA****MPLE", - secret_value=value, - ) - - -class TestParseAllowTags: - def test_no_tag(self): - assert parse_allow_tags("hello") == set() - - def test_allow_secret(self): - assert parse_allow_tags("[allow-secret] my key") == {"secret"} - - def test_allow_all(self): - assert parse_allow_tags("[allow-all] anything") == {"all"} - - def test_case_insensitive(self): - assert parse_allow_tags("[Allow-All]") == {"all"} - assert parse_allow_tags("[ALLOW-SECRET]") == {"secret"} - - def test_multiple_tags(self): - assert parse_allow_tags("[allow-secret] [allow-all] x") == {"secret", "all"} - - def test_lowercase_stored(self): - # Source case is preserved in input but stored lowercased - assert parse_allow_tags("[allow-SECRET]") == {"secret"} - - -class TestLoadFromTranscript: - def test_missing_file(self, tmp_path: Path): - assert load_from_transcript(str(tmp_path / "nope.jsonl")) == set() - - def test_empty_file(self, tmp_path: Path): - p = tmp_path / "empty.jsonl" - p.write_text("") - assert load_from_transcript(str(p)) == set() - - def test_one_user_text_with_tag(self, tmp_path: Path): - p = tmp_path / "t.jsonl" - _write_jsonl(p, [_user_text("[allow-secret] please")]) - assert load_from_transcript(str(p)) == {"secret"} - - def test_consumed_by_subsequent_tool_result_record(self, tmp_path: Path): - """A user-role record with ONLY a tool_result block (no text block) is a - SUBSEQUENT JSONL record and consumes the tag. - - Authoritative reference: sensitive-canary/src/pre-tool-use-hook.ts:75-96. - """ - p = tmp_path / "t.jsonl" - _write_jsonl( - p, - [ - _user_text("[allow-secret] please"), - _user_blocks([_tool_result_block("ok")]), - ], - ) - assert load_from_transcript(str(p)) == set() - - def test_assistant_record_does_not_consume(self, tmp_path: Path): - p = tmp_path / "t.jsonl" - _write_jsonl( - p, - [ - _user_text("[allow-secret] please"), - _assistant("ack"), - ], - ) - assert load_from_transcript(str(p)) == {"secret"} - - def test_later_user_text_replaces(self, tmp_path: Path): - """Most recent user text message is the source of truth.""" - p = tmp_path / "t.jsonl" - _write_jsonl( - p, - [ - _user_text("no tag"), - _user_text("[allow-secret] now I want it"), - ], - ) - assert load_from_transcript(str(p)) == {"secret"} - - def test_later_user_text_without_tag_replaces(self, tmp_path: Path): - """Tag from earlier message is gone if later user text doesn't have it.""" - p = tmp_path / "t.jsonl" - _write_jsonl( - p, - [ - _user_text("[allow-secret] earlier"), - _user_text("just a follow-up"), - ], - ) - assert load_from_transcript(str(p)) == set() - - def test_malformed_lines_skipped(self, tmp_path: Path): - p = tmp_path / "t.jsonl" - with p.open("w") as f: - f.write("not json\n") - f.write(json.dumps(_user_text("[allow-all] hi")) + "\n") - f.write("garbage{}{}\n") - assert load_from_transcript(str(p)) == {"all"} - - def test_only_last_64kb_read(self, tmp_path: Path): - """File > 64 KB: only the tail is parsed.""" - p = tmp_path / "big.jsonl" - with p.open("w") as f: - # Pad with 100 KB of garbage user-text records (no tag) - for _ in range(2000): - f.write(json.dumps(_user_text("x" * 50)) + "\n") - # Append a tagged user message at the very end - f.write(json.dumps(_user_text("[allow-secret] tail")) + "\n") - # Tag in the tail must be visible; padding records are far past the cutoff - assert load_from_transcript(str(p)) == {"secret"} - - def test_post_tool_use_keeps_last_tool_result_unconsumed(self, tmp_path: Path): - """When for_post_tool_use=True, the LAST tool_result record is treated as - the call that triggered THIS hook — the tag is NOT yet consumed. - - This addresses the timing edge case where Claude Code may have appended - the just-completed tool_result to the transcript before firing PostToolUse. - """ - p = tmp_path / "t.jsonl" - _write_jsonl( - p, - [ - _user_text("[allow-secret] please"), - _user_blocks([_tool_result_block("output")]), - ], - ) - # PreToolUse semantics: tag consumed - assert load_from_transcript(str(p)) == set() - # PostToolUse semantics: tag still valid - assert load_from_transcript(str(p), for_post_tool_use=True) == {"secret"} - - def test_post_tool_use_with_two_subsequent_tool_results_still_consumed(self, tmp_path: Path): - """Even in PostToolUse mode, MORE than one tool_result after the last text - means earlier tool calls already consumed the tag — only the LAST one is - the call that triggered this hook, but a non-last one already used it up. - """ - p = tmp_path / "t.jsonl" - _write_jsonl( - p, - [ - _user_text("[allow-secret] please"), - _user_blocks([_tool_result_block("call1")]), - _user_blocks([_tool_result_block("call2")]), - ], - ) - assert load_from_transcript(str(p), for_post_tool_use=True) == set() - - def test_text_block_in_content_array(self, tmp_path: Path): - """User content can be a list with a text block — tag must still parse.""" - p = tmp_path / "t.jsonl" - _write_jsonl(p, [_user_blocks([_text_block("[allow-secret] in block")])]) - assert load_from_transcript(str(p)) == {"secret"} - - -class TestApplyAllowTags: - def test_no_tags_pass_through(self): - f = [_make_finding()] - assert apply_allow_tags(f, set()) == f - - def test_all_drops_everything(self): - f = [_make_finding(), _make_finding(rule_id="github-pat", value="ghp_" + "x" * 36)] - assert apply_allow_tags(f, {"all"}) == [] - - def test_secret_drops_everything(self): - """All findings are secret-category in our port (PII out of scope).""" - f = [_make_finding()] - assert apply_allow_tags(f, {"secret"}) == [] - - def test_dedupes_by_secret_value(self): - """Duplicate secret values are deduped on output.""" - f1 = _make_finding() - f2 = _make_finding() # same value - f3 = _make_finding(rule_id="github-pat", value="ghp_unique") - result = apply_allow_tags([f1, f2, f3], set()) - # f2 deduped; f1 and f3 remain - assert len(result) == 2 - values = {x.secret_value for x in result} - assert values == {"AKIAIOSFODNN7EXAMPLE", "ghp_unique"} - - -@pytest.mark.parametrize( - "tag_input,expected", - [ - ("[allow-secret]", {"secret"}), - ("[allow-all]", {"all"}), - ("[Allow-Secret][ALLOW-ALL]", {"secret", "all"}), - ("nothing here", set()), - ], -) -def test_parse_param(tag_input: str, expected: set[str]): - assert parse_allow_tags(tag_input) == expected diff --git a/pilot/hooks/tests/test_context_monitor.py b/pilot/hooks/tests/test_context_monitor.py index fdf3e643..d0db7f93 100644 --- a/pilot/hooks/tests/test_context_monitor.py +++ b/pilot/hooks/tests/test_context_monitor.py @@ -502,30 +502,20 @@ def test_no_import_errors_when_run_standalone(self) -> None: class TestRunContextMonitorOrchestrator: - """Orchestrator-aware window resolution and pct scaling. + """Orchestrator-aware pct scaling has been removed (config schema v12). - When /spec-implement is the active orchestrator phase AND its resolved - skill model has a smaller context window than the main session, the hook - must scale the cached pct by main_window/orchestrator_window before - threshold comparison. Otherwise the user gets no Pilot pre-warning before - the orchestrator's auto-compact fires silently (the user-reported bug). + With per-skill model selection gone, the context monitor relies on the + live statusline `context_window_size` alone — there is no separate + orchestrator window to scale against. The remaining behavior in this + class documents the post-v12 contract. """ - def test_run_context_monitor_scales_pct_when_orchestrator_window_smaller_than_main_emits_autocompact( - self, tmp_path: Path - ) -> None: - """Main=1M opus, orchestrator=200K sonnet (extendedContextOverrides disables 1M for spec-implement). - - Cached raw_pct=30 in main frame (≈300K tokens / 1M). In the orchestrator's - 200K frame this is 150% → clamp to 100% → above THRESHOLD_AUTOCOMPACT=75 → - must emit 'Auto-compact approaching'. - - Currently (bug): hook compares raw 30 against 65/75 → silent stdout. - Expected (fix): orchestrator-aware scaling fires AUTOCOMPACT. - """ + def test_run_context_monitor_does_not_scale_pct_post_v12(self, tmp_path: Path) -> None: + """Even when a /spec plan is registered as PENDING, the hook reads the + cached pct verbatim — there is no per-skill window scaling anymore.""" import io - session_id = "orch-test-autocompact" + session_id = "orch-test-no-scaling" session_dir = tmp_path / ".pilot" / "sessions" / session_id session_dir.mkdir(parents=True) (session_dir / "context-pct.json").write_text( @@ -536,19 +526,9 @@ def test_run_context_monitor_scales_pct_when_orchestrator_window_smaller_than_ma plan_path.parent.mkdir(parents=True) plan_path.write_text( "# Orch Fixture Plan\n\nStatus: PENDING\nApproved: Yes\nType: Feature\n\n" - "## Summary\n\nFixture for orchestrator-aware test.\n" + "## Summary\n\nFixture for post-v12 contract.\n" ) (session_dir / "active_plan.json").write_text(json.dumps({"plan_path": str(plan_path), "status": "PENDING"})) - (tmp_path / ".pilot" / "config.json").write_text( - json.dumps( - { - "model": "opus", - "extendedContext": True, - "skills": {"spec-implement": "sonnet"}, - "extendedContextOverrides": {"spec-implement": False}, - } - ) - ) with ( patch.dict(os.environ, {"PILOT_SESSION_ID": session_id}), @@ -569,12 +549,5 @@ def test_run_context_monitor_scales_pct_when_orchestrator_window_smaller_than_ma output = captured.getvalue() assert exit_code == 0 - assert output, ( - "Expected the hook to emit a scaled-pct AUTOCOMPACT warning because the " - "orchestrator window (200K) is smaller than the main session window (1M) " - "and 300K absolute tokens already exceeds the orchestrator's compact budget. " - f"Current code emits no warning — stdout: {output!r}" - ) - assert "Auto-compact approaching" in output, ( - f"Expected 'Auto-compact approaching' in scaled-pct output, got: {output!r}" - ) + # 30% on a 1M window is far below the AUTOCOMPACT threshold (75%) — no warning. + assert "Auto-compact approaching" not in output diff --git a/pilot/hooks/tests/test_credential_scanner.py b/pilot/hooks/tests/test_credential_scanner.py deleted file mode 100644 index c782bd5c..00000000 --- a/pilot/hooks/tests/test_credential_scanner.py +++ /dev/null @@ -1,1011 +0,0 @@ -"""Tests for credential_scanner hook — UserPromptSubmit + PreToolUse(Read|Bash) + PostToolUse(Bash).""" - -from __future__ import annotations - -import json -import os -import subprocess -import sys -from io import StringIO -from pathlib import Path -from unittest.mock import patch - -import credential_scanner -import pytest - -HOOK_PATH = Path(__file__).resolve().parent.parent / "credential_scanner.py" - -AKIA = "AKIAIOSFODNN7EXAMPLE" - - -# ── Test helpers ────────────────────────────────────────────────────────────── - - -def _run(payload: dict) -> tuple[int, str, str]: - """Run the hook in-process. Returns (exit_code, stdout, stderr).""" - stdin = StringIO(json.dumps(payload)) - out = StringIO() - err = StringIO() - with patch("sys.stdin", stdin), patch("sys.stdout", out), patch("sys.stderr", err): - code = credential_scanner.run_credential_scanner() - return code, out.getvalue(), err.getvalue() - - -def _is_pre_deny(stdout: str) -> bool: - try: - d = json.loads(stdout.strip()) - return d.get("permissionDecision") == "deny" - except (json.JSONDecodeError, ValueError): - return False - - -def _is_post_block(stdout: str) -> bool: - try: - d = json.loads(stdout.strip()) - return d.get("decision") == "block" - except (json.JSONDecodeError, ValueError): - return False - - -def _deny_reason(stdout: str) -> str: - try: - return json.loads(stdout.strip()).get("reason", "") - except (json.JSONDecodeError, ValueError): - return "" - - -def _make_transcript(tmp_path: Path, user_text: str | None = None) -> str: - """Write a JSONL transcript with one user-text record (or empty file).""" - p = tmp_path / "transcript.jsonl" - if user_text is not None: - rec = {"type": "user", "message": {"role": "user", "content": user_text}} - p.write_text(json.dumps(rec) + "\n") - else: - p.write_text("") - return str(p) - - -# ── Toggle gate ─────────────────────────────────────────────────────────────── - - -class TestToggle: - def test_toggle_off_skips_user_prompt(self, monkeypatch: pytest.MonkeyPatch): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "false") - code, out, _ = _run({"hook_event_name": "UserPromptSubmit", "prompt": f"My key {AKIA}"}) - assert code == 0 - assert out == "" - - def test_toggle_off_skips_read(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "false") - f = tmp_path / "secret.yml" - f.write_text(f"key: {AKIA}") - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(f)}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 0 - - def test_toggle_off_skips_bash(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "false") - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": f"echo {AKIA}"}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 0 - - def test_toggle_default_on(self, monkeypatch: pytest.MonkeyPatch): - monkeypatch.delenv("PILOT_CREDENTIAL_SCANNER_ENABLED", raising=False) - code, _, _ = _run({"hook_event_name": "UserPromptSubmit", "prompt": f"My key {AKIA}"}) - assert code == 2 - - def test_toggle_explicit_true(self, monkeypatch: pytest.MonkeyPatch): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, _ = _run({"hook_event_name": "UserPromptSubmit", "prompt": f"My key {AKIA}"}) - assert code == 2 - - -# ── UserPromptSubmit ────────────────────────────────────────────────────────── - - -class TestUserPromptSubmit: - def test_secret_blocks(self, monkeypatch: pytest.MonkeyPatch): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, err = _run({"hook_event_name": "UserPromptSubmit", "prompt": f"My key {AKIA}"}) - assert code == 2 - assert "aws-access-key" in err - - def test_clean_passes(self, monkeypatch: pytest.MonkeyPatch): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, _ = _run({"hook_event_name": "UserPromptSubmit", "prompt": "hello, please help"}) - assert code == 0 - - def test_allow_secret_bypasses(self, monkeypatch: pytest.MonkeyPatch): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, _ = _run( - { - "hook_event_name": "UserPromptSubmit", - "prompt": f"[allow-secret] my key {AKIA}", - } - ) - assert code == 0 - - def test_allow_all_bypasses(self, monkeypatch: pytest.MonkeyPatch): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, _ = _run( - { - "hook_event_name": "UserPromptSubmit", - "prompt": f"[allow-all] my key {AKIA}", - } - ) - assert code == 0 - - def test_empty_prompt_passes(self, monkeypatch: pytest.MonkeyPatch): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, _ = _run({"hook_event_name": "UserPromptSubmit", "prompt": ""}) - assert code == 0 - - -# ── PreToolUse(Read) ────────────────────────────────────────────────────────── - - -class TestPreToolUseRead: - def test_dotenv_name_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - f = tmp_path / ".env" - f.write_text("# innocuous\n") - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(f)}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert _is_pre_deny(out) - assert ".env" in _deny_reason(out) - - def test_dotenv_local_name_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - f = tmp_path / ".env.local" - f.write_text("# innocuous\n") - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(f)}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert _is_pre_deny(out) - - def test_dotenv_with_allow_tag_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - f = tmp_path / ".env" - f.write_text("# innocuous\n") - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(f)}, - "transcript_path": _make_transcript(tmp_path, "[allow-secret] read it"), - } - ) - assert code == 0 - - def test_content_with_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - f = tmp_path / "config.yaml" - f.write_text(f"api_key: {AKIA}\n") - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(f)}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert "aws-access-key" in _deny_reason(out) - - def test_content_clean_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - f = tmp_path / "ok.yaml" - f.write_text("name: hello\nvalue: world\n") - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(f)}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 0 - - def test_missing_file_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Missing file → no findings, hook passes (Read tool will then error on its own).""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(tmp_path / "nope.txt")}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 0 - - def test_symlink_to_dotenv_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - target = tmp_path / "actual" / ".env" - target.parent.mkdir() - target.write_text("# innocuous\n") - link = tmp_path / "safe.txt" - link.symlink_to(target) - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(link)}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert _is_pre_deny(out) - assert ".env" in _deny_reason(out) - - def test_fifo_rejected(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Non-regular files (FIFO) get denied without scanning.""" - if not hasattr(os, "mkfifo"): - pytest.skip("FIFO not supported on this platform") - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - fifo = tmp_path / "pipe" - os.mkfifo(fifo) - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(fifo)}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert "regular file" in _deny_reason(out) - - def test_utf16_le_with_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - f = tmp_path / "u16.yml" - # UTF-16-LE BOM + content - content = f"api_key: {AKIA}".encode("utf-16-le") - f.write_bytes(b"\xff\xfe" + content) - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(f)}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert "aws-access-key" in _deny_reason(out) - - def test_utf8_bom_with_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - f = tmp_path / "u8bom.yml" - f.write_bytes(b"\xef\xbb\xbf" + f"api_key: {AKIA}".encode()) - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(f)}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert "aws-access-key" in _deny_reason(out) - - def test_oversize_file_passes_quickly(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """File > 1 MB: only 1 MB is scanned. Should pass quickly with no findings.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - f = tmp_path / "big.txt" - f.write_bytes(b"x" * (2 * 1024 * 1024)) # 2 MB of x's - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(f)}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 0 - - def test_binary_with_nul_truncated(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Binary file with NUL byte: scanner reads up to NUL, decodes errors=replace, no crash.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - f = tmp_path / "b.bin" - # No BOM, NUL at byte 5, then bytes — scan only first 5 bytes - f.write_bytes(b"hello\x00\xff\xff\xff" + AKIA.encode()) - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Read", - "tool_input": {"file_path": str(f)}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 0 # AKIA after NUL not scanned - - -# ── PreToolUse(Bash) ────────────────────────────────────────────────────────── - - -class TestPreToolUseBash: - def test_command_text_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": f"echo {AKIA}"}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert "aws-access-key" in _deny_reason(out) - - def test_clean_command_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": "ls -la"}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 0 - - def test_env_var_with_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - monkeypatch.setenv("AWS_ACCESS_KEY", AKIA) - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": "echo $AWS_ACCESS_KEY"}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert "aws-access-key" in _deny_reason(out) - - def test_cat_secrets_file_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - f = tmp_path / "secrets.yaml" - f.write_text(f"api_key: {AKIA}\n") - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": f"cat {f}"}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(tmp_path), - } - ) - assert code == 2 - assert "aws-access-key" in _deny_reason(out) - - def test_allow_tag_in_command_does_not_bypass(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Literal [allow-secret] in command string is NOT honoured (only transcript).""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - f = tmp_path / "secrets.txt" - f.write_text(AKIA) - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": f"echo '[allow-secret]' && cat {f}"}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(tmp_path), - } - ) - assert code == 2 - assert _is_pre_deny(out) - - -class TestPreToolUseBashGitCommit: - """Git commit + chained add+commit detection.""" - - @staticmethod - def _init_repo(repo: Path) -> None: - subprocess.run(["git", "init", "-q"], cwd=repo, check=True) - subprocess.run(["git", "config", "user.email", "test@test"], cwd=repo, check=True) - subprocess.run(["git", "config", "user.name", "test"], cwd=repo, check=True) - subprocess.run(["git", "config", "commit.gpgsign", "false"], cwd=repo, check=True) - - def test_commit_with_clean_diff_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - (repo / "f.txt").write_text("hello\n") - subprocess.run(["git", "add", "f.txt"], cwd=repo, check=True) - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": 'git commit -m "x"'}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(repo), - } - ) - assert code == 0 - - def test_commit_with_staged_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - (repo / "secrets.txt").write_text(f"key={AKIA}\n") - subprocess.run(["git", "add", "secrets.txt"], cwd=repo, check=True) - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": 'git commit -m "x"'}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(repo), - } - ) - assert code == 2 - assert "aws-access-key" in _deny_reason(out) - - def test_commit_no_verify_still_blocks(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """--no-verify skips git's own hooks but NOT our PreToolUse hook.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - (repo / "secrets.txt").write_text(AKIA) - subprocess.run(["git", "add", "secrets.txt"], cwd=repo, check=True) - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": 'git commit --no-verify -m "x"'}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(repo), - } - ) - assert code == 2 - - def test_commit_amend_blocks(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - # initial commit - (repo / "a.txt").write_text("a\n") - subprocess.run(["git", "add", "a.txt"], cwd=repo, check=True) - subprocess.run(["git", "commit", "-q", "-m", "init"], cwd=repo, check=True) - # stage a secret on top - (repo / "secrets.txt").write_text(AKIA) - subprocess.run(["git", "add", "secrets.txt"], cwd=repo, check=True) - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": "git commit --amend --no-edit"}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(repo), - } - ) - assert code == 2 - - def test_chained_add_commit_blocks_via_file_scan(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """File initially UNSTAGED — chain detection must scan the file directly.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - (repo / "secrets.txt").write_text(AKIA) - # Note: NOT staged — chain detection must catch it - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": 'git add secrets.txt && git commit -m "x"'}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(repo), - } - ) - assert code == 2 - assert _is_pre_deny(out) - - def test_chained_add_dash_a(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """`git add -A`: enumerate via git ls-files.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - (repo / "secrets.txt").write_text(AKIA) - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": 'git add -A && git commit -m "x"'}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(repo), - } - ) - assert code == 2 - - def test_chain_with_cd_redirects_cwd(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """`cd /repo && git add x.txt && git commit -m y` — effective cwd tracking.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - (repo / "secrets.txt").write_text(AKIA) - # Hook process cwd is tmp_path (which has no secrets.txt). Effective cwd via cd. - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": { - "command": f'cd {repo} && git add secrets.txt && git commit -m "x"', - }, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(tmp_path), - } - ) - assert code == 2 - - def test_chained_add_directory_blocks(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Closes Codex finding #1 — `git add ` with secret inside the dir must block.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - (repo / "secrets_dir").mkdir() - (repo / "secrets_dir" / "key.txt").write_text(AKIA) - # Note: dir is unstaged. Chain detection must walk into the directory. - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": 'git add secrets_dir && git commit -m "x"'}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(repo), - } - ) - assert code == 2 - - def test_no_pager_global_option_does_not_bypass_commit(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Closes Codex finding #2 — `git --no-pager commit` must NOT bypass scanning.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - (repo / "secrets.txt").write_text(AKIA) - subprocess.run(["git", "add", "secrets.txt"], cwd=repo, check=True) - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": 'git --no-pager commit -m "x"'}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(repo), - } - ) - assert code == 2 - - def test_no_pager_chain_does_not_bypass(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """`git add x && git --no-pager commit` — both detection paths must hit.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - (repo / "secrets.txt").write_text(AKIA) - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": { - "command": 'git add secrets.txt && git --no-pager commit -m "x"', - }, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(repo), - } - ) - assert code == 2 - - def test_add_dash_a_does_not_blow_budget_on_clean_tracked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Closes Codex finding #3 — `--cached` was including clean tracked files, - which could exhaust the 1 MB budget before reaching the modified secret-bearing file. - Setup: many large clean tracked files (already committed), plus one small modified - file with the secret. The fix drops `--cached` from enumeration so clean files - are not scanned. - """ - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - # Commit several large, clean files (tracked, no secret) - for i in range(3): - (repo / f"big{i}.txt").write_text("x" * 400_000) # 1.2 MB total - subprocess.run(["git", "add", "."], cwd=repo, check=True) - subprocess.run(["git", "commit", "-q", "-m", "init"], cwd=repo, check=True) - # Now create a modified untracked file containing the secret - (repo / "secrets.txt").write_text(AKIA) - # `git add -A && git commit` should detect the secret — clean tracked files - # MUST NOT exhaust the budget first. - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": 'git add -A && git commit -m "x"'}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(repo), - } - ) - assert code == 2 - - def test_chain_with_spaces_in_cd_path_resolves(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Closes Claude reviewer should_fix #1 — paths with spaces must be tracked.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo_dir = tmp_path / "my repo" - repo_dir.mkdir() - self._init_repo(repo_dir) - (repo_dir / "secrets.txt").write_text(AKIA) - # Quoted path with space → must resolve correctly, not fall back to initial_cwd - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": { - "command": f'cd "{repo_dir}" && git add secrets.txt && git commit -m "x"', - }, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(tmp_path), - } - ) - assert code == 2 - - def test_chain_with_unresolvable_cd_fails_closed(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """cd to non-existent dir → fail-closed deny.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - bogus = tmp_path / "does_not_exist" - code, out, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": { - "command": f'cd {bogus} && git add secrets.txt && git commit -m "x"', - }, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(tmp_path), - } - ) - assert code == 2 - assert "unresolvable" in _deny_reason(out).lower() - - def test_git_dash_c_redirects_repo(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """`git -C /repo add file && git -C /repo commit` — -C flag honoured.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - (repo / "secrets.txt").write_text(AKIA) - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": { - "command": f'git -C {repo} add secrets.txt && git -C {repo} commit -m "x"', - }, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(tmp_path), - } - ) - assert code == 2 - - def test_staged_utf16_blob_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """UTF-16 staged file: patch text doesn't contain raw bytes; blob scan must catch it.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - f = repo / "u16.txt" - f.write_bytes(b"\xff\xfe" + f"key={AKIA}".encode("utf-16-le")) - subprocess.run(["git", "add", "u16.txt"], cwd=repo, check=True) - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": 'git commit -m "x"'}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(repo), - } - ) - assert code == 2 - - def test_commit_with_allow_tag_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - repo = tmp_path / "repo" - repo.mkdir() - self._init_repo(repo) - (repo / "secrets.txt").write_text(AKIA) - subprocess.run(["git", "add", "secrets.txt"], cwd=repo, check=True) - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": 'git commit -m "x"'}, - "transcript_path": _make_transcript(tmp_path, "[allow-secret] commit it"), - "cwd": str(repo), - } - ) - assert code == 0 - - def test_commit_outside_repo_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Not a git repo → fail open (no commit will happen anyway).""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, _ = _run( - { - "hook_event_name": "PreToolUse", - "tool_name": "Bash", - "tool_input": {"command": 'git commit -m "x"'}, - "transcript_path": _make_transcript(tmp_path), - "cwd": str(tmp_path), - } - ) - assert code == 0 - - -# ── Subprocess-mode sanity check ────────────────────────────────────────────── - - -class TestPostToolUseBash: - """Task 8: PostToolUse(Bash) output scanner.""" - - def test_clean_output_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, out, _ = _run( - { - "hook_event_name": "PostToolUse", - "tool_name": "Bash", - "tool_input": {"command": "ls"}, - "tool_response": {"stdout": "hello world\n", "stderr": "", "interrupted": False}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 0 - assert out == "" - - def test_secret_in_stdout_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, out, _ = _run( - { - "hook_event_name": "PostToolUse", - "tool_name": "Bash", - "tool_input": {"command": "python -c 'print(...)'"}, - "tool_response": { - "stdout": f'{{"key": "{AKIA}"}}\n', - "stderr": "", - "interrupted": False, - }, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert _is_post_block(out) - assert "aws-access-key" in _deny_reason(out) - - def test_secret_in_stderr_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, out, _ = _run( - { - "hook_event_name": "PostToolUse", - "tool_name": "Bash", - "tool_input": {"command": "x"}, - "tool_response": {"stdout": "", "stderr": f"error: token={AKIA}\n"}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert _is_post_block(out) - - def test_allow_tag_in_transcript_bypasses(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, _ = _run( - { - "hook_event_name": "PostToolUse", - "tool_name": "Bash", - "tool_input": {"command": "x"}, - "tool_response": {"stdout": f"key={AKIA}", "stderr": ""}, - "transcript_path": _make_transcript(tmp_path, "[allow-secret] please run it"), - } - ) - assert code == 0 - - def test_oversize_no_secret_blocks_fail_closed(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Closes Codex critical #1 / Claude must_fix #1 — fail-CLOSED on >1 MB.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - big = "x" * (1_500_000) - code, out, _ = _run( - { - "hook_event_name": "PostToolUse", - "tool_name": "Bash", - "tool_input": {"command": "x"}, - "tool_response": {"stdout": big, "stderr": ""}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert _is_post_block(out) - assert "1 MB" in _deny_reason(out) or "scan budget" in _deny_reason(out) - - def test_oversize_byte_count_with_multibyte_chars(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Closes Claude reviewer should_fix #2 — byte length, not char length. - - 700_000 emoji chars = ~2.8 MB of UTF-8 bytes. Should fail-CLOSED on oversize - even though Python str length is well under MAX_SCAN_BYTES. - """ - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - # 700_000 4-byte emojis = 2.8 MB UTF-8, but only 700_000 code points - emoji_blob = "🔐" * 700_000 - code, out, _ = _run( - { - "hook_event_name": "PostToolUse", - "tool_name": "Bash", - "tool_input": {"command": "x"}, - "tool_response": {"stdout": emoji_blob, "stderr": ""}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - assert _is_post_block(out) - # Block should cite the oversize reason (not a finding) - assert "scan budget" in _deny_reason(out) or "1 MB" in _deny_reason(out) - - def test_oversize_with_secret_beyond_window(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - """Secret at byte 1.5M (past the 1 MB scan window) — oversize blocks regardless.""" - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - padding = "x" * 1_500_000 - big = padding + AKIA - code, _, _ = _run( - { - "hook_event_name": "PostToolUse", - "tool_name": "Bash", - "tool_input": {"command": "x"}, - "tool_response": {"stdout": big, "stderr": ""}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 2 - - def test_oversize_with_allow_tag_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - big = "x" * 1_500_000 - code, _, _ = _run( - { - "hook_event_name": "PostToolUse", - "tool_name": "Bash", - "tool_input": {"command": "x"}, - "tool_response": {"stdout": big, "stderr": ""}, - "transcript_path": _make_transcript(tmp_path, "[allow-secret] big output ok"), - } - ) - assert code == 0 - - def test_post_tool_use_non_bash_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, _ = _run( - { - "hook_event_name": "PostToolUse", - "tool_name": "Read", - "tool_input": {"file_path": "/tmp/x"}, - "tool_response": {"stdout": AKIA, "stderr": ""}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 0 - - def test_missing_tool_response_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") - code, _, _ = _run( - { - "hook_event_name": "PostToolUse", - "tool_name": "Bash", - "tool_input": {"command": "x"}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 0 - - def test_toggle_off_bypasses(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): - monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "false") - code, _, _ = _run( - { - "hook_event_name": "PostToolUse", - "tool_name": "Bash", - "tool_input": {"command": "x"}, - "tool_response": {"stdout": AKIA, "stderr": ""}, - "transcript_path": _make_transcript(tmp_path), - } - ) - assert code == 0 - - -class TestSubprocess: - def test_subprocess_exits_2_with_deny_json(self, tmp_path: Path): - env = {**os.environ, "PILOT_CREDENTIAL_SCANNER_ENABLED": "true"} - result = subprocess.run( - [sys.executable, str(HOOK_PATH)], - input=json.dumps({"hook_event_name": "UserPromptSubmit", "prompt": f"key {AKIA}"}), - capture_output=True, - text=True, - env=env, - ) - assert result.returncode == 2 - - def test_subprocess_toggle_off_exits_0(self, tmp_path: Path): - env = {**os.environ, "PILOT_CREDENTIAL_SCANNER_ENABLED": "false"} - result = subprocess.run( - [sys.executable, str(HOOK_PATH)], - input=json.dumps({"hook_event_name": "UserPromptSubmit", "prompt": f"key {AKIA}"}), - capture_output=True, - text=True, - env=env, - ) - assert result.returncode == 0 - - -class TestFailOpenOnInternalError: - """Issue #148 — opaque non-zero hook exits with `No stderr output`. - - The scanner must never crash the hook driver: `signal.signal` raises on - non-main threads, and any other internal exception must surface a - diagnostic on stderr instead of producing an opaque failure. - """ - - def test_regex_timeout_no_raise_on_non_main_thread(self) -> None: - import threading - - captured: list[BaseException] = [] - - def target() -> None: - try: - with credential_scanner._regex_timeout(): - pass - except BaseException as exc: # noqa: BLE001 — capturing for assertion - captured.append(exc) - - t = threading.Thread(target=target) - t.start() - t.join() - assert not captured, f"_regex_timeout raised on non-main thread: {captured!r}" - - def test_main_with_fail_open_catches_runtime_error( - self, monkeypatch: pytest.MonkeyPatch, capsys: pytest.CaptureFixture[str] - ) -> None: - """Internal exceptions must exit 0 with a stderr diagnostic, not crash the hook driver.""" - - def boom() -> int: - raise RuntimeError("synthetic-fault") - - monkeypatch.setattr(credential_scanner, "run_credential_scanner", boom) - exit_code = credential_scanner._main_with_fail_open() - captured = capsys.readouterr() - assert exit_code == 0, f"Expected fail-open exit 0, got {exit_code}" - assert "synthetic-fault" in captured.err, f"Expected 'synthetic-fault' in stderr, got: {captured.err!r}" diff --git a/pilot/hooks/tests/test_secret_scanner.py b/pilot/hooks/tests/test_secret_scanner.py deleted file mode 100644 index 8f291279..00000000 --- a/pilot/hooks/tests/test_secret_scanner.py +++ /dev/null @@ -1,266 +0,0 @@ -"""Tests for _lib.secret_scanner — port of sensitive-canary's 24 secret rules.""" - -from __future__ import annotations - -import time - -import pytest -from _lib.secret_scanner import RULES, Finding, entropy, redact, scan - - -class TestEntropy: - def test_repeated_char_zero(self): - assert entropy("aaaaaaaa") == pytest.approx(0.0) - - def test_aws_key_in_band(self): - h = entropy("AKIAIOSFODNN7EXAMPLE") - assert 3.4 <= h <= 4.5 # 20-char near-uniform string - - def test_empty_string(self): - assert entropy("") == pytest.approx(0.0) - - -class TestRedact: - def test_redact_short(self): - assert redact("short") == "****" - - def test_redact_eight(self): - assert redact("12345678") == "****" - - def test_redact_long(self): - assert redact("AKIAIOSFODNN7EXAMPLE") == "AKIA****MPLE" - - def test_redact_nine(self): - # First 4 + **** + last 4 - assert redact("123456789") == "1234****6789" - - -class TestRulesPresent: - """All 24 secret rules must be present (PII rules excluded by design).""" - - EXPECTED_IDS = { - # Cloud - "aws-access-key", - "gcp-api-key", - "private-key", - # SCM - "github-pat", - "github-fine-grained", - "gitlab-pat", - # Package - "npm-token", - # Comm - "slack-token", - "slack-webhook", - "discord-webhook", - "telegram-bot-token", - "twilio-sid", - # Email - "sendgrid-key", - "mailgun-key", - "mailchimp-key", - # Payment - "stripe-secret-key", - "stripe-restricted-key", - # AI - "openai-key", - "openai-project-key", - "anthropic-key", - # Auth - "jwt", - # Generic - "generic-secret", - "env-assignment", - "connection-string", - } - - def test_24_rules(self): - ids = {r.id for r in RULES} - assert ids == self.EXPECTED_IDS, f"missing: {self.EXPECTED_IDS - ids} extra: {ids - self.EXPECTED_IDS}" - - def test_no_pii_rules(self): - """PII rules are intentionally NOT ported (out of scope per plan).""" - ids = {r.id for r in RULES} - forbidden = {"pii-email", "pii-credit-card", "pii-ssn", "pii-phone-us"} - assert ids & forbidden == set() - - -class TestScanPositive: - """Each rule must have at least one positive match.""" - - def test_aws_access_key(self): - # Synthetic fixtures split via string concatenation so GitHub secret - # scanning doesn't false-positive on the AWS canonical example. - akia = "AKIA" + "IOSFODNN7EXAMPLE" - f = scan(f"My AWS key is {akia}") - assert len(f) == 1 - assert f[0].rule_id == "aws-access-key" - assert f[0].match_redacted == "AKIA****MPLE" - assert f[0].secret_value == akia - - def test_aws_session_token(self): - # Split to avoid GitHub secret-scanning alert on the synthetic fixture. - f = scan("ASIA" + "IOSFODNN7EXAMPLE" + " here") - assert any(x.rule_id == "aws-access-key" for x in f) - - def test_gcp_api_key(self): - # Split to avoid GitHub secret-scanning alert on the synthetic fixture. - f = scan("AIza" + "SyD-abc123XYZ_qwerty456zxcvbnmasdfg") - assert any(x.rule_id == "gcp-api-key" for x in f) - - def test_pem_private_key(self): - f = scan("-----BEGIN RSA PRIVATE KEY-----") - assert any(x.rule_id == "private-key" for x in f) - f2 = scan("-----BEGIN OPENSSH PRIVATE KEY-----") - assert any(x.rule_id == "private-key" for x in f2) - f3 = scan("-----BEGIN PRIVATE KEY-----") # bare form - assert any(x.rule_id == "private-key" for x in f3) - - def test_github_pat(self): - f = scan("ghp_" + "a" * 36) - assert any(x.rule_id == "github-pat" for x in f) - f2 = scan("ghs_" + "B" * 40) - assert any(x.rule_id == "github-pat" for x in f2) - - def test_github_fine_grained(self): - f = scan("github_pat_" + "a" * 82) - assert any(x.rule_id == "github-fine-grained" for x in f) - - def test_gitlab_pat(self): - f = scan("glpat-" + "AbCdEfGhIjKlMnOpQrSt") # 20 chars - assert any(x.rule_id == "gitlab-pat" for x in f) - - def test_npm_token(self): - f = scan("npm_" + "X" * 36) - assert any(x.rule_id == "npm-token" for x in f) - - def test_slack_token(self): - f = scan("xoxb-" + "1234567890-abcdef") - assert any(x.rule_id == "slack-token" for x in f) - - def test_slack_webhook(self): - url = "https://hooks.slack.com/services/T12345678/B12345678/" + "x" * 24 - f = scan(url) - assert any(x.rule_id == "slack-webhook" for x in f) - - def test_discord_webhook(self): - url = "https://discord.com/api/webhooks/12345678901234567/" + "a" * 68 - f = scan(url) - assert any(x.rule_id == "discord-webhook" for x in f) - - def test_telegram_bot_token(self): - f = scan("123456789:AA" + "x" * 33) - assert any(x.rule_id == "telegram-bot-token" for x in f) - - def test_twilio_sid(self): - f = scan("AC" + "1234567890abcdef" * 2) - assert any(x.rule_id == "twilio-sid" for x in f) - - def test_sendgrid_key(self): - f = scan("SG." + "x" * 22 + "." + "y" * 43) - assert any(x.rule_id == "sendgrid-key" for x in f) - - def test_mailgun_key(self): - f = scan("key-" + "0123456789abcdef" * 2) - assert any(x.rule_id == "mailgun-key" for x in f) - - def test_mailchimp_key(self): - # Source split via string concatenation so GitHub push-protection - # doesn't pattern-match the Mailchimp regex against this synthetic - # fixture; the runtime value is unchanged. - f = scan("0123456789abcdef" * 2 + "-us12") - assert any(x.rule_id == "mailchimp-key" for x in f) - - def test_stripe_secret_key(self): - f = scan("sk_live_" + "abcdefghij" * 2 + "abcd") - assert any(x.rule_id == "stripe-secret-key" for x in f) - f2 = scan("sk_test_" + "1234567890" * 2 + "wxyz") - assert any(x.rule_id == "stripe-secret-key" for x in f2) - - def test_stripe_restricted_key(self): - f = scan("rk_live_" + "abcdefghij" * 2 + "abcd") - assert any(x.rule_id == "stripe-restricted-key" for x in f) - - def test_openai_legacy_key(self): - f = scan("sk-" + "X" * 48) - assert any(x.rule_id == "openai-key" for x in f) - - def test_openai_project_key(self): - # Needs entropy >= 3.5; split to avoid GitHub secret-scanning alert. - f = scan("sk-proj-" + "Abcd1234EfGh5678IjKl9012MnOp3456QrSt7890") - assert any(x.rule_id == "openai-project-key" for x in f) - - def test_anthropic_key(self): - f = scan("sk-ant-" + "AbCdEfGhIjKlMnOpQrStUvWxYz1234567890" * 2 + "ABCDEFGHIJKLMNOPQRSTUVW") - assert any(x.rule_id == "anthropic-key" for x in f) - - def test_jwt(self): - # Split to avoid GitHub secret-scanning alert on this synthetic JWT. - f = scan( - "eyJhbGciOiJIUzI1NiIs." - + "eyJzdWIiOiIxMjM0NTY3ODkwIn0." - + "SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJVadQssw5c" - ) - assert any(x.rule_id == "jwt" for x in f) - - def test_generic_secret(self): - f = scan("api_key: '" + "Abcd1234EfGh5678IjKl9012MnOp3456" + "'") - assert any(x.rule_id == "generic-secret" for x in f) - - def test_env_assignment_high_entropy(self): - f = scan("API_KEY=Z9k2p1J4mNqLwR8tH6vBxDcEgFsX5yU0a") - assert any(x.rule_id == "env-assignment" for x in f) - - def test_env_assignment_low_entropy_skipped(self): - f = scan("API_KEY=hunter2") - # entropy < 3.0 OR length < 8 → no env-assignment finding - assert not any(x.rule_id == "env-assignment" for x in f) - - def test_connection_string(self): - f = scan("postgres://user:pass@host:5432/db") - assert any(x.rule_id == "connection-string" for x in f) - f2 = scan("mongodb://u:p@host/db") - assert any(x.rule_id == "connection-string" for x in f2) - - -class TestScanNegative: - """Patterns that must NOT match (false-positive guards).""" - - def test_random_text(self): - assert scan("hello world") == [] - - def test_empty(self): - assert scan("") == [] - - def test_low_entropy_generic_secret(self): - # Below entropy threshold of 3.5 - f = scan("api_key: 'aaaaaaaaaaaaaaaaaaaaaa'") - assert not any(x.rule_id == "generic-secret" for x in f) - - def test_short_aws_prefix_no_false_match(self): - # AKIA prefix without 16 trailing alphanumerics - assert scan("AKIA short") == [] - - -class TestPerformance: - def test_100kb_under_50ms(self): - # Mostly random text, a few real secrets sprinkled in - text = "lorem ipsum dolor sit amet " * 4000 # ~100 KB - text += "AKIAIOSFODNN7EXAMPLE" - start = time.monotonic() - findings = scan(text) - elapsed_ms = (time.monotonic() - start) * 1000 - assert elapsed_ms < 50, f"scan took {elapsed_ms:.1f}ms, budget is 50ms" - assert any(x.rule_id == "aws-access-key" for x in findings) - - -class TestFindingShape: - def test_finding_is_dataclass_with_fields(self): - f = scan("My AWS key is AKIAIOSFODNN7EXAMPLE") - assert len(f) == 1 - finding = f[0] - assert isinstance(finding, Finding) - assert finding.rule_id == "aws-access-key" - assert finding.description == "AWS Access Key ID" - assert finding.match_redacted == "AKIA****MPLE" - assert finding.secret_value == "AKIAIOSFODNN7EXAMPLE" diff --git a/pilot/hooks/tests/test_spec_handoff_resume.py b/pilot/hooks/tests/test_spec_handoff_resume.py new file mode 100644 index 00000000..80880dba --- /dev/null +++ b/pilot/hooks/tests/test_spec_handoff_resume.py @@ -0,0 +1,161 @@ +"""Tests for spec_handoff_resume — UserPromptSubmit hook that resumes /spec +implementation after a model-switch handoff. + +Behavior contract: +- No sentinel present → exit 0, no output, no side effects. +- Fresh sentinel + valid active_plan.json → emit `additionalContext` instructing + the agent to invoke `Skill('spec-implement', '')`, then delete the + sentinel. +- Stale sentinel (>1h) → delete the sentinel, emit NO additionalContext. +- Sentinel without an active_plan.json (e.g. `/clear` wiped it) → delete the + sentinel, emit NO additionalContext. +""" + +from __future__ import annotations + +import json +import os +import shutil +import subprocess +import sys +from pathlib import Path + +import pytest + +HOOK_PATH = Path(__file__).resolve().parent.parent / "spec_handoff_resume.py" +TEST_SESSION_ID = "test-spec-handoff-resume" + + +def _test_session_dir() -> Path: + return Path.home() / ".pilot" / "sessions" / TEST_SESSION_ID + + +def _write_active_plan(plan_path: Path, status: str = "PENDING") -> None: + session_dir = _test_session_dir() + session_dir.mkdir(parents=True, exist_ok=True) + (session_dir / "active_plan.json").write_text(json.dumps({"plan_path": str(plan_path), "status": status})) + + +@pytest.fixture(autouse=True) +def clear_session_state(): + session_dir = _test_session_dir() + if session_dir.exists(): + shutil.rmtree(session_dir, ignore_errors=True) + yield + if session_dir.exists(): + shutil.rmtree(session_dir, ignore_errors=True) + + +def _run(input_data: dict | None = None, project_root: Path | None = None) -> tuple[int, str, str]: + env = {**os.environ, "PILOT_SESSION_ID": TEST_SESSION_ID} + if project_root is not None: + env["CLAUDE_PROJECT_ROOT"] = str(project_root) + result = subprocess.run( + [sys.executable, str(HOOK_PATH)], + input=json.dumps(input_data or {}), + capture_output=True, + text=True, + env=env, + ) + return result.returncode, result.stdout, result.stderr + + +def _additional_context(stdout: str) -> str | None: + """Extract the additionalContext string from hook stdout, or None if absent.""" + raw = stdout.strip() + if not raw: + return None + try: + data = json.loads(raw) + except (json.JSONDecodeError, ValueError): + return None + hso = data.get("hookSpecificOutput") if isinstance(data, dict) else None + if not isinstance(hso, dict): + return None + ctx = hso.get("additionalContext") + return ctx if isinstance(ctx, str) else None + + +class TestResumeHook: + def test_no_sentinel_is_no_op(self, tmp_path: Path) -> None: + plan_file = tmp_path / "plan.md" + plan_file.write_text("# Plan\n\nStatus: PENDING\nApproved: Yes\n") + _write_active_plan(plan_file) + + exit_code, stdout, _ = _run() + + assert exit_code == 0 + assert stdout.strip() == "" + assert _additional_context(stdout) is None + + def test_fresh_sentinel_emits_resume_instruction_and_unlinks(self, tmp_path: Path) -> None: + plan_file = tmp_path / "2026-05-22-plan.md" + plan_file.write_text("# Plan\n\nStatus: PENDING\nApproved: Yes\n") + _write_active_plan(plan_file) + + sentinel = _test_session_dir() / "spec-handoff-pending" + sentinel.touch() + + exit_code, stdout, _ = _run() + + assert exit_code == 0 + ctx = _additional_context(stdout) + assert ctx is not None, "Hook must emit additionalContext when sentinel is fresh" + assert str(plan_file) in ctx, "Resume instruction must include the absolute plan path" + assert "spec-implement" in ctx, "Resume instruction must reference spec-implement skill" + assert not sentinel.exists(), "Sentinel must be unlinked after one consume" + + def test_stale_sentinel_is_unlinked_silently(self, tmp_path: Path) -> None: + import time as _time + + plan_file = tmp_path / "plan.md" + plan_file.write_text("# Plan\n\nStatus: PENDING\nApproved: Yes\n") + _write_active_plan(plan_file) + + sentinel = _test_session_dir() / "spec-handoff-pending" + sentinel.touch() + stale = _time.time() - 7200 # 2 hours old + os.utime(sentinel, (stale, stale)) + + exit_code, stdout, _ = _run() + + assert exit_code == 0 + assert _additional_context(stdout) is None, "Stale sentinel must not produce a resume instruction" + assert not sentinel.exists(), "Stale sentinel must be unlinked" + + def test_sentinel_without_active_plan_is_unlinked_silently(self) -> None: + """If active_plan.json is missing (e.g. /clear wiped it), the hook cannot + produce a resume instruction — drop the sentinel and exit quietly.""" + sentinel = _test_session_dir() / "spec-handoff-pending" + sentinel.parent.mkdir(parents=True, exist_ok=True) + sentinel.touch() + + exit_code, stdout, _ = _run() + + assert exit_code == 0 + assert _additional_context(stdout) is None + assert not sentinel.exists() + + def test_relative_plan_path_is_resolved_against_project_root(self, tmp_path: Path) -> None: + plans_dir = tmp_path / "docs" / "plans" + plans_dir.mkdir(parents=True) + plan_file = plans_dir / "2026-05-22-relative.md" + plan_file.write_text("# Plan\n\nStatus: PENDING\nApproved: Yes\n") + + # Write a RELATIVE plan path into active_plan.json. + session_dir = _test_session_dir() + session_dir.mkdir(parents=True, exist_ok=True) + (session_dir / "active_plan.json").write_text( + json.dumps({"plan_path": "docs/plans/2026-05-22-relative.md", "status": "PENDING"}) + ) + + sentinel = _test_session_dir() / "spec-handoff-pending" + sentinel.touch() + + exit_code, stdout, _ = _run(project_root=tmp_path) + + assert exit_code == 0 + ctx = _additional_context(stdout) + assert ctx is not None + assert str(plan_file) in ctx, "Relative path must be resolved against CLAUDE_PROJECT_ROOT" + assert not sentinel.exists() diff --git a/pilot/hooks/tests/test_spec_mode_guard.py b/pilot/hooks/tests/test_spec_mode_guard.py index 13dab059..af44be45 100644 --- a/pilot/hooks/tests/test_spec_mode_guard.py +++ b/pilot/hooks/tests/test_spec_mode_guard.py @@ -1,4 +1,5 @@ -"""Tests for spec_mode_guard hook — blocks /spec in plan mode, warns in non-bypass mode.""" +"""Tests for spec_mode_guard hook — blocks /spec in plan mode, blocks on non-Opus, +warns in non-bypass mode.""" from __future__ import annotations @@ -6,14 +7,35 @@ from io import StringIO from unittest.mock import patch -from spec_mode_guard import run_spec_mode_guard +from spec_mode_guard import _is_opus, run_spec_mode_guard def _run_with_input(prompt: str, permission_mode: str) -> tuple[int, str]: - """Simulate hook invocation. Returns (exit_code, stdout_output).""" + """Simulate hook invocation. Returns (exit_code, stdout_output). + + By default the cached active model is mocked as None (no cache yet), which + bypasses the Opus check. Use ``_run_with_model_cache`` to override. + """ + hook_data = {"prompt": prompt, "permission_mode": permission_mode} + stdin = StringIO(json.dumps(hook_data)) + with ( + patch("sys.stdin", stdin), + patch("sys.stdout", new_callable=StringIO) as stdout, + patch("spec_mode_guard._read_active_model_from_cache", return_value=None), + ): + code = run_spec_mode_guard() + return code, stdout.getvalue() + + +def _run_with_model_cache(prompt: str, permission_mode: str, model_id: str | None) -> tuple[int, str]: + """Simulate hook invocation with a specific cached model_id.""" hook_data = {"prompt": prompt, "permission_mode": permission_mode} stdin = StringIO(json.dumps(hook_data)) - with patch("sys.stdin", stdin), patch("sys.stdout", new_callable=StringIO) as stdout: + with ( + patch("sys.stdin", stdin), + patch("sys.stdout", new_callable=StringIO) as stdout, + patch("spec_mode_guard._read_active_model_from_cache", return_value=model_id), + ): code = run_spec_mode_guard() return code, stdout.getvalue() @@ -143,3 +165,268 @@ def test_handles_empty_prompt(self): code, output = _run_with_input("", "plan") assert code == 0 assert output == "" + + +class TestIsOpus: + """_is_opus helper accepts the right model strings and rejects the wrong ones.""" + + def test_accepts_bare_opus(self) -> None: + assert _is_opus("opus") is True + + def test_accepts_opus_with_1m_suffix(self) -> None: + assert _is_opus("opus[1m]") is True + + def test_accepts_explicit_opus_id(self) -> None: + assert _is_opus("claude-opus-4-6") is True + assert _is_opus("claude-opus-4-7") is True + + def test_accepts_explicit_opus_id_with_1m(self) -> None: + assert _is_opus("claude-opus-4-7[1m]") is True + + def test_rejects_sonnet(self) -> None: + assert _is_opus("sonnet") is False + assert _is_opus("sonnet[1m]") is False + + def test_rejects_claude_sonnet_id(self) -> None: + assert _is_opus("claude-sonnet-4-6") is False + + def test_rejects_lookalike_prefix(self) -> None: + """`claude-opusculus-1` starts with 'claude-opus' but is NOT an Opus model.""" + assert _is_opus("claude-opusculus-1") is False + + def test_rejects_empty_string(self) -> None: + assert _is_opus("") is False + + def test_rejects_non_string(self) -> None: + assert _is_opus(None) is False # type: ignore[arg-type] + + +class TestOpusModelBlocking: + """/spec on a non-Opus model is hard-blocked when the cache has a model_id.""" + + def test_blocks_spec_when_active_model_is_sonnet(self) -> None: + code, output = _run_with_model_cache("/spec build a feature", "bypassPermissions", "sonnet") + assert code == 2 + result = json.loads(output) + assert result["decision"] == "block" + assert "Opus" in result["reason"] + assert "/model opus[1m]" in result["reason"] + + def test_blocks_spec_when_active_model_is_explicit_sonnet_id(self) -> None: + code, output = _run_with_model_cache("/spec build a feature", "bypassPermissions", "claude-sonnet-4-6") + assert code == 2 + + def test_allows_spec_when_active_model_is_opus(self) -> None: + code, output = _run_with_model_cache("/spec build a feature", "bypassPermissions", "opus") + assert code == 0 + assert output == "" + + def test_allows_spec_when_active_model_is_opus_1m(self) -> None: + code, output = _run_with_model_cache("/spec build a feature", "bypassPermissions", "opus[1m]") + assert code == 0 + + def test_allows_spec_when_active_model_is_explicit_opus_id(self) -> None: + code, output = _run_with_model_cache("/spec build a feature", "bypassPermissions", "claude-opus-4-6") + assert code == 0 + + def test_does_not_block_when_cache_missing(self) -> None: + """No statusline render yet → no cache → don't block (fall-through path).""" + code, output = _run_with_model_cache("/spec build a feature", "bypassPermissions", None) + assert code == 0 + assert output == "" + + def test_plan_mode_precedes_opus_block(self) -> None: + """When both checks would fire, Plan-mode block wins (it's the user's + more-actionable first step).""" + code, output = _run_with_model_cache("/spec build a feature", "plan", "sonnet") + assert code == 2 + result = json.loads(output) + assert "Plan mode" in result["reason"] + + +class TestResumeExistingPlanBypass: + """`/spec ` resumes an existing plan — must NOT be Opus-gated. + + This is the core modelSwitch=true return path: user plans on Opus, then + switches to Sonnet (Option A: `/model sonnet[1m]` + any prompt; Option B: + `/clear` + `/spec `). If the guard blocks the resume prompt, the + entire modelSwitch flow is unreachable on non-Opus. + """ + + def test_resume_on_sonnet_passes_guard(self) -> None: + code, output = _run_with_model_cache( + "/spec docs/plans/2026-05-21-build-feature.md", "bypassPermissions", "sonnet" + ) + assert code == 0 + assert output == "" + + def test_resume_on_sonnet_1m_passes_guard(self) -> None: + code, output = _run_with_model_cache( + "/spec docs/plans/2026-05-21-build-feature.md", "bypassPermissions", "sonnet[1m]" + ) + assert code == 0 + + def test_resume_with_explicit_sonnet_id_passes_guard(self) -> None: + code, output = _run_with_model_cache( + "/spec docs/plans/2026-05-21-build-feature.md", "bypassPermissions", "claude-sonnet-4-6" + ) + assert code == 0 + + def test_new_plan_on_sonnet_still_blocks(self) -> None: + """Sanity: new plan prompts (without a `.md` argument) still hit the guard.""" + code, output = _run_with_model_cache("/spec build a feature", "bypassPermissions", "sonnet") + assert code == 2 + result = json.loads(output) + assert "/model opus[1m]" in result["reason"] + + def test_plan_mode_still_blocks_resume(self) -> None: + """Plan-mode block precedes the resume bypass — fix the permission mode first.""" + code, output = _run_with_model_cache("/spec docs/plans/2026-05-21-build-feature.md", "plan", "sonnet") + assert code == 2 + result = json.loads(output) + assert "Plan mode" in result["reason"] + + def test_resume_path_with_trailing_flag_passes_guard(self) -> None: + """Tokenisation only inspects the first whitespace-delimited token — + trailing flags/args don't change the verdict.""" + code, output = _run_with_model_cache( + "/spec docs/plans/2026-05-21-build-feature.md --foo", "bypassPermissions", "sonnet" + ) + assert code == 0 + + def test_resume_with_bare_spec_does_not_match_resume(self) -> None: + """`/spec` with no argument is NOT a resume — still subject to Opus gate.""" + code, output = _run_with_model_cache("/spec", "bypassPermissions", "sonnet") + assert code == 2 + + +class TestSpecFamilyPrefixMatch: + """Regression for C1: prompt.startswith('/spec') must NOT overmatch sibling + slash commands (`/spec-implement`, `/spec-verify`, `/spec-plan`, + `/spec-bugfix-plan`, `/spec-bugfix-verify`). They're designed to run on + Sonnet during the model-switch handoff and must not trip the Opus gate. + """ + + def test_spec_implement_on_sonnet_not_blocked(self) -> None: + code, output = _run_with_model_cache("/spec-implement docs/plans/foo.md", "bypassPermissions", "sonnet") + assert code == 0 + assert output == "" + + def test_spec_verify_on_sonnet_not_blocked(self) -> None: + code, output = _run_with_model_cache("/spec-verify docs/plans/foo.md", "bypassPermissions", "sonnet") + assert code == 0 + assert output == "" + + def test_spec_plan_on_sonnet_not_blocked(self) -> None: + code, output = _run_with_model_cache("/spec-plan", "bypassPermissions", "sonnet") + assert code == 0 + assert output == "" + + def test_spec_bugfix_plan_on_sonnet_not_blocked(self) -> None: + code, output = _run_with_model_cache("/spec-bugfix-plan", "bypassPermissions", "sonnet") + assert code == 0 + assert output == "" + + def test_spec_bugfix_verify_on_sonnet_not_blocked(self) -> None: + code, output = _run_with_model_cache("/spec-bugfix-verify", "bypassPermissions", "sonnet") + assert code == 0 + assert output == "" + + def test_spec_underscore_suffix_not_matched(self) -> None: + """Defensive: `/spec_foo` is not a /spec invocation either.""" + code, output = _run_with_model_cache("/spec_foo bar", "bypassPermissions", "sonnet") + assert code == 0 + assert output == "" + + def test_plain_spec_with_space_still_blocked(self) -> None: + """Sanity: `/spec ...` (with whitespace) still triggers the gate.""" + code, output = _run_with_model_cache("/spec build a feature", "bypassPermissions", "sonnet") + assert code == 2 + + def test_plain_spec_alone_still_blocked(self) -> None: + """Sanity: bare `/spec` still triggers the gate.""" + code, output = _run_with_model_cache("/spec", "bypassPermissions", "sonnet") + assert code == 2 + + +class TestResumePathRobustness: + """Regression for C2: resume detection must be case-insensitive on `.md` + and must handle quoted paths containing spaces. + """ + + def test_resume_uppercase_md_extension(self) -> None: + code, output = _run_with_model_cache("/spec docs/plans/Foo.MD", "bypassPermissions", "sonnet") + assert code == 0 + assert output == "" + + def test_resume_mixed_case_md_extension(self) -> None: + code, output = _run_with_model_cache("/spec docs/plans/Foo.Md", "bypassPermissions", "sonnet") + assert code == 0 + assert output == "" + + def test_resume_double_quoted_path_with_spaces(self) -> None: + """`/spec "docs/plans/my plan.md"` — shlex must surface this as a single + token ending in `.md`.""" + code, output = _run_with_model_cache('/spec "docs/plans/my plan.md"', "bypassPermissions", "sonnet") + assert code == 0 + assert output == "" + + def test_resume_single_quoted_path_with_spaces(self) -> None: + code, output = _run_with_model_cache("/spec 'docs/plans/my plan.md'", "bypassPermissions", "sonnet") + assert code == 0 + assert output == "" + + +class TestCacheMissingEmitsWarning: + """Regression for C3: when the statusline cache is missing the gate still + fails open (per project preference), but it must emit a stderr warning so + the user knows the Opus check did not run.""" + + def test_warning_emitted_when_cache_missing(self) -> None: + import io as _io + + hook_data = {"prompt": "/spec build a feature", "permission_mode": "bypassPermissions"} + stdin = StringIO(json.dumps(hook_data)) + with ( + patch("sys.stdin", stdin), + patch("sys.stdout", new_callable=StringIO), + patch("sys.stderr", new_callable=_io.StringIO) as stderr, + patch("spec_mode_guard._read_active_model_from_cache", return_value=None), + ): + code = run_spec_mode_guard() + assert code == 0 + err = stderr.getvalue() + assert "Pilot" in err + assert "Opus" in err + + def test_no_warning_when_cache_has_opus(self) -> None: + """Sanity: when the cache resolves to Opus, no warning fires.""" + import io as _io + + hook_data = {"prompt": "/spec build a feature", "permission_mode": "bypassPermissions"} + stdin = StringIO(json.dumps(hook_data)) + with ( + patch("sys.stdin", stdin), + patch("sys.stdout", new_callable=StringIO), + patch("sys.stderr", new_callable=_io.StringIO) as stderr, + patch("spec_mode_guard._read_active_model_from_cache", return_value="opus"), + ): + code = run_spec_mode_guard() + assert code == 0 + assert stderr.getvalue() == "" + + def test_no_warning_on_resume_path_even_when_cache_missing(self) -> None: + """Resume invocations bypass the Opus check entirely — no warning.""" + import io as _io + + hook_data = {"prompt": "/spec docs/plans/foo.md", "permission_mode": "bypassPermissions"} + stdin = StringIO(json.dumps(hook_data)) + with ( + patch("sys.stdin", stdin), + patch("sys.stdout", new_callable=StringIO), + patch("sys.stderr", new_callable=_io.StringIO) as stderr, + patch("spec_mode_guard._read_active_model_from_cache", return_value=None), + ): + code = run_spec_mode_guard() + assert code == 0 + assert stderr.getvalue() == "" diff --git a/pilot/hooks/tests/test_spec_stop_guard.py b/pilot/hooks/tests/test_spec_stop_guard.py index 51bc4eff..681889a1 100644 --- a/pilot/hooks/tests/test_spec_stop_guard.py +++ b/pilot/hooks/tests/test_spec_stop_guard.py @@ -471,10 +471,7 @@ def _plan_no_truths_no_contract(self, plans_dir: Path) -> Path: """Plan with Goal only — no Truths and no Behavior Contract.""" plan_file = plans_dir / "2026-01-01-no-verification.md" plan_file.write_text( - "# No Verification Plan\n\n" - "Status: PENDING\nApproved: No\n\n" - "## Summary\n\n" - "**Goal:** Just a goal sentence.\n" + "# No Verification Plan\n\nStatus: PENDING\nApproved: No\n\n## Summary\n\n**Goal:** Just a goal sentence.\n" ) return plan_file @@ -564,8 +561,7 @@ def test_block_reason_truncates_long_goal(self, tmp_path: Path) -> None: long_goal = "X" * 600 plan_file = plans_dir / "2026-01-01-long-goal.md" plan_file.write_text( - f"# Long Goal Plan\n\nStatus: PENDING\nApproved: No\n\n" - f"## Summary\n\n**Goal:** {long_goal}\n" + f"# Long Goal Plan\n\nStatus: PENDING\nApproved: No\n\n## Summary\n\n**Goal:** {long_goal}\n" ) _register_plan_for_session(plan_file, "PENDING") @@ -710,3 +706,110 @@ def test_resolves_relative_plan_path_against_project_root(self, tmp_path: Path) assert exit_code == 0 assert _is_blocked(stdout) assert "cannot stop" in stdout.lower() + + +class TestHandoffSentinel: + """The model-switch handoff sentinel grants permission to stop while it lives. + + The stop guard no longer deletes the sentinel on consume — that moved to + `spec_handoff_resume` (UserPromptSubmit), so the sentinel survives past the + Stop event and the next user prompt can route directly into spec-implement + without `/clear` or `/spec ` re-invocation. + """ + + def _make_active_plan(self, tmp_path: Path) -> Path: + plans_dir = tmp_path / "docs" / "plans" + plans_dir.mkdir(parents=True) + plan_file = plans_dir / "2026-05-21-handoff.md" + plan_file.write_text("# Handoff Plan\n\nStatus: PENDING\nApproved: Yes\n") + _register_plan_for_session(plan_file, "PENDING") + return plans_dir + + def test_sentinel_allows_stop_and_persists(self, tmp_path: Path) -> None: + """Fresh sentinel grants stop permission and survives — the UserPromptSubmit + hook (`spec_handoff_resume`) is responsible for deletion on the next prompt. + """ + plans_dir = self._make_active_plan(tmp_path) + sentinel = _test_session_dir() / "spec-handoff-pending" + sentinel.touch() + + exit_code, stdout, _ = _run_subprocess({"stop_hook_active": False}, plans_dir) + + assert exit_code == 0 + assert not _is_blocked(stdout) + assert sentinel.exists(), "Sentinel must survive the Stop so `spec_handoff_resume` can consume it" + + def test_sentinel_persists_across_consecutive_stops(self, tmp_path: Path) -> None: + """Consecutive Stop events with no user prompt in between must all be + allowed while the sentinel is fresh — deletion is the prompt hook's job. + """ + plans_dir = self._make_active_plan(tmp_path) + sentinel = _test_session_dir() / "spec-handoff-pending" + sentinel.touch() + + # First stop: sentinel honored, allowed. + exit_code1, stdout1, _ = _run_subprocess({"stop_hook_active": False}, plans_dir) + assert exit_code1 == 0 + assert not _is_blocked(stdout1) + assert sentinel.exists() + + # Second stop: still allowed because the sentinel is still there. + exit_code2, stdout2, _ = _run_subprocess({"stop_hook_active": False}, plans_dir) + assert exit_code2 == 0 + assert not _is_blocked(stdout2) + assert sentinel.exists() + + def test_sentinel_survives_recursive_hook_fire(self, tmp_path: Path) -> None: + """Recursive hook fire (stop_hook_active=True) returns immediately and the + sentinel is left intact (it was never going to be touched in that branch). + """ + plans_dir = self._make_active_plan(tmp_path) + sentinel = _test_session_dir() / "spec-handoff-pending" + sentinel.touch() + + exit_code, stdout, _ = _run_subprocess({"stop_hook_active": True}, plans_dir) + + assert exit_code == 0 + assert not _is_blocked(stdout) + assert sentinel.exists(), "Sentinel must survive recursive hook fire" + + def test_stale_sentinel_is_discarded(self, tmp_path: Path) -> None: + """A sentinel older than the staleness threshold (PID reuse, crashed + session, etc.) is discarded — NOT honored as a handoff signal. The + normal block path engages instead.""" + import os as _os + import time as _time + + plans_dir = self._make_active_plan(tmp_path) + sentinel = _test_session_dir() / "spec-handoff-pending" + sentinel.touch() + # Backdate the sentinel well past the staleness threshold (>1h). + stale_time = _time.time() - 7200 # 2 hours ago + _os.utime(sentinel, (stale_time, stale_time)) + + exit_code, stdout, _ = _run_subprocess({"stop_hook_active": False}, plans_dir) + + assert exit_code == 0 + # The plan is PENDING and the sentinel is stale → normal block path engages. + assert _is_blocked(stdout) + # Stale sentinel must be cleaned up so it cannot bite again. + assert not sentinel.exists(), "Stale sentinel must be unlinked" + + def test_fresh_sentinel_is_honored(self, tmp_path: Path) -> None: + """Sanity for the age check: a sentinel written seconds ago is still + honored (the typical modelSwitch handoff path).""" + import os as _os + import time as _time + + plans_dir = self._make_active_plan(tmp_path) + sentinel = _test_session_dir() / "spec-handoff-pending" + sentinel.touch() + # Sentinel ~30s old — well within freshness window. + fresh_time = _time.time() - 30 + _os.utime(sentinel, (fresh_time, fresh_time)) + + exit_code, stdout, _ = _run_subprocess({"stop_hook_active": False}, plans_dir) + + assert exit_code == 0 + assert not _is_blocked(stdout) + assert sentinel.exists(), "Fresh sentinel must survive the Stop event for the prompt hook to consume" diff --git a/pilot/hooks/tests/test_tdd_enforcer.py b/pilot/hooks/tests/test_tdd_enforcer.py index 27b9579c..63805da4 100644 --- a/pilot/hooks/tests/test_tdd_enforcer.py +++ b/pilot/hooks/tests/test_tdd_enforcer.py @@ -471,9 +471,7 @@ def test_detects_from_import_sibling_of_parent_layout(self, tmp_path: Path): impl.write_text("def authenticate(): pass\n") tests = tmp_path / "hooks" / "tests" tests.mkdir(parents=True) - (tests / "test_auth_hook.py").write_text( - "from _checkers.auth import authenticate\n" - ) + (tests / "test_auth_hook.py").write_text("from _checkers.auth import authenticate\n") assert has_test_importing_module(str(impl)) is True def test_detects_plain_import(self, tmp_path: Path): @@ -526,9 +524,7 @@ def test_detects_import_in_ts_test(self, tmp_path: Path): impl.write_text("export function authenticate() {}\n") tests = tmp_path / "tests" tests.mkdir() - (tests / "login-flow.test.ts").write_text( - 'import { authenticate } from "../src/auth";\n' - ) + (tests / "login-flow.test.ts").write_text('import { authenticate } from "../src/auth";\n') assert has_test_importing_module_ts(str(impl)) is True def test_returns_false_when_no_test_imports(self, tmp_path: Path): @@ -537,9 +533,7 @@ def test_returns_false_when_no_test_imports(self, tmp_path: Path): impl.write_text("export function authenticate() {}\n") tests = tmp_path / "tests" tests.mkdir() - (tests / "unrelated.test.ts").write_text( - 'import { other } from "../src/other";\n' - ) + (tests / "unrelated.test.ts").write_text('import { other } from "../src/other";\n') assert has_test_importing_module_ts(str(impl)) is False def test_skips_non_typescript_files(self, tmp_path: Path): @@ -550,9 +544,7 @@ def test_skips_non_typescript_files(self, tmp_path: Path): class TestSoftenedWarnText: - def test_python_warning_references_parsimony_not_create_test_file( - self, capsys, tmp_path: Path, monkeypatch - ): + def test_python_warning_references_parsimony_not_create_test_file(self, capsys, tmp_path: Path, monkeypatch): impl = tmp_path / "src" / "lonely.py" impl.parent.mkdir(parents=True) impl.write_text("def foo(): pass\n") diff --git a/pilot/hooks/tests/test_tool_redirect.py b/pilot/hooks/tests/test_tool_redirect.py index d3abbb4d..f2ff3a1b 100644 --- a/pilot/hooks/tests/test_tool_redirect.py +++ b/pilot/hooks/tests/test_tool_redirect.py @@ -1056,159 +1056,3 @@ def test_existing_explore_agent_still_denies(self): assert _is_denied(output) -_CTX_EXEC = "mcp__plugin_context-mode_context-mode__ctx_execute" -_CTX_BATCH = "mcp__plugin_context-mode_context-mode__ctx_batch_execute" - - -class TestDangerousGitContextMode: - """Dangerous-git scan must cover context-mode shell tools, not just Bash. - - Regression for the bypass observed when `git checkout -- file` was run via - ctx_execute(language="shell", ...). The hook's Bash-only check let it through - and destroyed ~250 lines of in-flight helpers. - """ - - def test_blocks_git_checkout_dashdash_via_ctx_execute_shell(self): - code, output = _run_with_input( - _CTX_EXEC, {"language": "shell", "code": "git checkout -- pilot/hooks/_lib/util.py"} - ) - assert code == 2 - assert _is_denied(output) - - def test_blocks_git_reset_hard_via_ctx_execute_shell(self): - code, output = _run_with_input(_CTX_EXEC, {"language": "shell", "code": "git reset --hard HEAD~1"}) - assert code == 2 - assert _is_denied(output) - - def test_blocks_git_push_force_via_ctx_execute_shell(self): - code, output = _run_with_input(_CTX_EXEC, {"language": "shell", "code": "git push --force origin main"}) - assert code == 2 - assert _is_denied(output) - - def test_allows_safe_ctx_execute_shell(self): - code, output = _run_with_input(_CTX_EXEC, {"language": "shell", "code": "ls -la"}) - assert code == 0 - assert not _is_denied(output) - - def test_allows_non_shell_ctx_execute(self): - # Non-shell language: scanning shell-regex against arbitrary Python source is - # over-broad. Documented gap; skip the scan when language != "shell". - code, output = _run_with_input(_CTX_EXEC, {"language": "python", "code": "print('git reset --hard')"}) - assert code == 0 - assert not _is_denied(output) - - def test_blocks_git_checkout_dashdash_in_ctx_batch_execute(self): - code, output = _run_with_input( - _CTX_BATCH, - { - "commands": [ - {"label": "list", "command": "ls"}, - {"label": "boom", "command": "git checkout -- file.py"}, - ] - }, - ) - assert code == 2 - assert _is_denied(output) - - def test_blocks_git_reset_hard_in_first_ctx_batch_command(self): - code, output = _run_with_input(_CTX_BATCH, {"commands": [{"label": "destroy", "command": "git reset --hard"}]}) - assert code == 2 - assert _is_denied(output) - - def test_allows_safe_ctx_batch_execute(self): - code, output = _run_with_input( - _CTX_BATCH, - { - "commands": [ - {"label": "a", "command": "ls"}, - {"label": "b", "command": "git status --short"}, - ] - }, - ) - assert code == 0 - assert not _is_denied(output) - - def test_ctx_execute_missing_fields_does_not_crash(self): - """Malformed input must not raise — return 0 (no block).""" - code, output = _run_with_input(_CTX_EXEC, {}) - assert code == 0 - assert not _is_denied(output) - - def test_ctx_batch_execute_missing_commands_does_not_crash(self): - code, output = _run_with_input(_CTX_BATCH, {}) - assert code == 0 - assert not _is_denied(output) - - def test_ctx_batch_execute_with_malformed_entry_does_not_crash(self): - """A non-dict entry in commands list must be skipped, not crash.""" - code, output = _run_with_input(_CTX_BATCH, {"commands": [{"label": "a", "command": "ls"}, "not a dict", None]}) - assert code == 0 - assert not _is_denied(output) - - -_CTX_FILE = "mcp__plugin_context-mode_context-mode__ctx_execute_file" - - -@pytest.mark.usefixtures("fresh_throttle") -class TestCtxTimeoutNudge: - """Soft nudge fires once per session when context-mode tools omit `timeout`. - - Without `timeout` the MCP host's RPC timeout governs — a hung script can run - for 15+ min. The nudge tells Claude to size `timeout` per the rule's table. - """ - - def test_nudges_ctx_execute_missing_timeout(self): - code, output = _run_with_input(_CTX_EXEC, {"language": "shell", "code": "ls"}) - assert code == 0 - assert _has_nudge(output) - assert "timeout" in _nudge_text(output).lower() - - def test_no_nudge_when_ctx_execute_has_timeout(self): - code, output = _run_with_input(_CTX_EXEC, {"language": "shell", "code": "ls", "timeout": 30000}) - assert code == 0 - assert not _has_nudge(output) - - def test_nudges_ctx_batch_execute_missing_timeout(self): - code, output = _run_with_input(_CTX_BATCH, {"commands": [{"label": "x", "command": "ls"}], "queries": ["q"]}) - assert code == 0 - assert _has_nudge(output) - - def test_no_nudge_when_ctx_batch_execute_has_timeout(self): - code, output = _run_with_input( - _CTX_BATCH, - {"commands": [{"label": "x", "command": "ls"}], "queries": ["q"], "timeout": 60000}, - ) - assert code == 0 - assert not _has_nudge(output) - - def test_nudges_ctx_execute_file_missing_timeout(self): - code, output = _run_with_input(_CTX_FILE, {"path": "foo.py", "language": "python", "code": "print(1)"}) - assert code == 0 - assert _has_nudge(output) - - def test_no_nudge_when_ctx_execute_file_has_timeout(self): - code, output = _run_with_input( - _CTX_FILE, - {"path": "foo.py", "language": "python", "code": "print(1)", "timeout": 30000}, - ) - assert code == 0 - assert not _has_nudge(output) - - def test_throttled_after_first_nudge(self): - """Nudge fires once per session — second call without timeout stays silent.""" - _run_with_input(_CTX_EXEC, {"language": "shell", "code": "ls"}) - code, output = _run_with_input(_CTX_EXEC, {"language": "shell", "code": "echo hi"}) - assert code == 0 - assert not _has_nudge(output) - - def test_zero_timeout_treated_as_missing(self): - """`timeout: 0` is invalid (no-op) — treat as missing and nudge.""" - code, output = _run_with_input(_CTX_EXEC, {"language": "shell", "code": "ls", "timeout": 0}) - assert code == 0 - assert _has_nudge(output) - - def test_dangerous_git_still_blocks_when_timeout_missing(self): - """The dangerous-git deny must take precedence over the timeout nudge.""" - code, output = _run_with_input(_CTX_EXEC, {"language": "shell", "code": "git reset --hard HEAD~1"}) - assert code == 2 - assert _is_denied(output) diff --git a/pilot/hooks/tool_redirect.py b/pilot/hooks/tool_redirect.py index 4ed1833a..bdd0d2f0 100755 --- a/pilot/hooks/tool_redirect.py +++ b/pilot/hooks/tool_redirect.py @@ -241,12 +241,6 @@ def classify_search_command(cmd: str) -> str | None: "returns the indexed tree faster (with language and symbol metadata). Proceed if you " "need exact-pattern matching." ) -_NUDGE_CTX_TIMEOUT = ( - "⚠️ No `timeout` parameter on this context-mode call. Without one, no server-side " - "timer fires — a hung script can run for 15+ minutes before the MCP RPC layer aborts. " - "Pass `timeout` (ms) sized to the work: 30000 simple grep · 120000 medium script · " - "300000 heavy batch · 600000 long build. Default when unsure: 60000." -) _BASH_NUDGE_BY_CATEGORY: dict[str, str] = { "grep": _NUDGE_BASH_GREP, @@ -328,25 +322,6 @@ def _builtin_tool_nudge(tool_name: str) -> str | None: return None -def _ctx_timeout_nudge(tool_name: str, tool_input: dict) -> str | None: - """Return timeout-missing nudge for context-mode tools, throttled once per session. - - Fires when `timeout` is absent, None, or a non-positive value. `timeout: 0` is - treated as missing because the MCP server treats it as 'no server-side timer'. - """ - if tool_name not in _CTX_TIMEOUT_NUDGE_TOOLS: - return None - if not isinstance(tool_input, dict): - return None - timeout = tool_input.get("timeout") - if isinstance(timeout, (int, float)) and not isinstance(timeout, bool) and timeout > 0: - return None - if _nudge_already_sent("ctx_timeout"): - return None - _mark_nudge_sent("ctx_timeout") - return _NUDGE_CTX_TIMEOUT - - def _normalize_git_command(command: str) -> str: """Strip leading `git -C ` / `git -c ` global options so patterns can match the subcommand. @@ -359,48 +334,12 @@ def _normalize_git_command(command: str) -> str: return GIT_GLOBAL_OPTS_RE.sub("git ", command) -# Context-mode MCP tools whose payload can run a shell. Their input schemas differ -# from Bash (.command), so the hook extracts commands from .code (ctx_execute when -# language == "shell") and .commands[].command (ctx_batch_execute, always shell). -# Other languages (python/js/ruby/...) are intentionally NOT scanned — shell regex -# against arbitrary source produces false positives. Known gap; revisit if abuse appears. -_CTX_EXECUTE_TOOL = "mcp__plugin_context-mode_context-mode__ctx_execute" -_CTX_BATCH_EXECUTE_TOOL = "mcp__plugin_context-mode_context-mode__ctx_batch_execute" -_CTX_EXECUTE_FILE_TOOL = "mcp__plugin_context-mode_context-mode__ctx_execute_file" -_CTX_TIMEOUT_NUDGE_TOOLS: frozenset[str] = frozenset( - {_CTX_EXECUTE_TOOL, _CTX_BATCH_EXECUTE_TOOL, _CTX_EXECUTE_FILE_TOOL} -) - - def _extract_shell_commands(tool_name: str, tool_input: dict) -> list[str]: - """Return the list of shell-command strings carried by this tool invocation. - - Returns [] for tool/shape combinations the dangerous-git scanner should not touch - (e.g., ctx_execute with non-shell language, malformed inputs). - """ - if not isinstance(tool_input, dict): + """Return the list of shell-command strings carried by this tool invocation.""" + if tool_name != "Bash": return [] - if tool_name == "Bash": - command = tool_input.get("command", "") - return [command] if isinstance(command, str) and command else [] - if tool_name == _CTX_EXECUTE_TOOL: - if tool_input.get("language") != "shell": - return [] - code = tool_input.get("code", "") - return [code] if isinstance(code, str) and code else [] - if tool_name == _CTX_BATCH_EXECUTE_TOOL: - commands = tool_input.get("commands", []) - if not isinstance(commands, list): - return [] - out: list[str] = [] - for entry in commands: - if not isinstance(entry, dict): - continue - cmd = entry.get("command", "") - if isinstance(cmd, str) and cmd: - out.append(cmd) - return out - return [] + command = tool_input.get("command", "") + return [command] if isinstance(command, str) and command else [] def _strip_shell_comment(segment: str) -> str: @@ -490,7 +429,7 @@ def run_tool_redirect() -> int: return 2 return 0 - if tool_name in {"Bash", _CTX_EXECUTE_TOOL, _CTX_BATCH_EXECUTE_TOOL}: + if tool_name == "Bash": tool_input = hook_data.get("tool_input", {}) commands = _extract_shell_commands(tool_name, tool_input) for command in commands: @@ -500,21 +439,12 @@ def run_tool_redirect() -> int: sys.stderr.write(f"\033[0;31m[Pilot] Dangerous git blocked: {pattern_name}\033[0m\n") print(pre_tool_use_deny(reason)) return 2 - # Search-nudge currently only applies to Bash (recursive grep/rg/find patterns). - # ctx_execute/ctx_batch_execute payloads are typically scripted and we don't want - # to nudge on every embedded grep — keep nudges Bash-only for now. - if tool_name == "Bash" and commands: + if commands: nudge = _bash_search_nudge(commands[0]) if nudge: print(pre_tool_use_context(nudge)) return 0 - if tool_name in _CTX_TIMEOUT_NUDGE_TOOLS: - nudge = _ctx_timeout_nudge(tool_name, hook_data.get("tool_input", {})) - if nudge: - print(pre_tool_use_context(nudge)) - return 0 - if tool_name in {"Grep", "Glob"}: nudge = _builtin_tool_nudge(tool_name) if nudge: diff --git a/pilot/rules/browser-automation.md b/pilot/rules/browser-automation.md index 64c17244..1a8232cd 100644 --- a/pilot/rules/browser-automation.md +++ b/pilot/rules/browser-automation.md @@ -1,3 +1,11 @@ +--- +paths: + - "**/*.{ts,tsx,js,jsx,mjs,cjs,html,css,scss,vue,svelte,astro}" + - "**/{tests,test,e2e,playwright,cypress,__tests__}/**" + - "**/playwright.config.*" + - "**/cypress.config.*" +--- + ## Browser Automation for E2E Testing **MANDATORY for E2E testing of any app with a UI.** API tests verify backend; browser automation verifies what the user sees. diff --git a/pilot/rules/context-mode.md b/pilot/rules/context-mode.md deleted file mode 100644 index ffafa9b9..00000000 --- a/pilot/rules/context-mode.md +++ /dev/null @@ -1,104 +0,0 @@ -# Context — Routing & Compaction - -Two things to know: context-mode MCP keeps tool output out of your window; auto-compaction handles overflow. Both are automatic — your job is to route correctly and not panic at high context. - -## Compaction Is Automatic - -PreCompact hook → captures plan/tasks/decisions to Memory. Compaction → summarizes. SessionStart(compact) hook → re-injects state. You continue exactly where you were. - -**⛔ NEVER rush or skip steps because of context level.** Don't cut corners, skip sub-agents, reduce coverage, or compress output to "finish before it runs out." Context level is never a valid reason to skip a workflow step (reviewer, verification, tests). Complete the current task at full quality. - -When compaction occurs, your summary must preserve: active plan path + status, current objective, TDD phase, files being modified, key decisions, blockers. Condensable: pleasantries, intermediate file reads, repetitive "explored N similar" patterns. - -## Think in Code — MANDATORY - -To analyze, count, filter, compare, parse, or transform data: **write code** via `ctx_execute(language, code)` and `console.log()` only the answer. Don't read raw data into context. Pure JS, Node.js built-ins (`fs`, `path`, `child_process`), `try/catch`, handle null. One script replaces ten tool calls. - -## Pass an explicit `timeout` — MANDATORY - -`ctx_execute`, `ctx_batch_execute`, and `ctx_execute_file` accept an optional `timeout` (milliseconds). **When omitted, no server-side timer fires** — a slow grep, hung subprocess, or runaway script can sit for 15+ minutes before the MCP host RPC layer aborts. Always pass a `timeout` sized to what you expect the command to do. The `tool_redirect` hook nudges (soft, once per session) when `timeout` is missing. - -| Command shape | `timeout` (ms) | -|---------------|----------------| -| Simple grep, file listing, `jq` filter, single short script | `30000` (30 s) | -| Medium script — multi-file analysis, JSON processing, dozens of fetches | `120000` (2 min) | -| Heavy batch — many network calls, large data processing, slow CLIs | `300000` (5 min) | -| Long build (Gradle/Maven/SBT, full test suite, container build) | up to `600000` (10 min) | - -**Default when unsure**: `60000` (1 min). Pick the smallest bucket the work fits into — most scripts finish in <10 s. A grep that hits the 30-s cap is a signal that the search is too broad or the path is wrong — refine, don't bump the timeout. With `concurrency > 1` in `ctx_batch_execute`, `timeout` applies **per command**, not as a shared budget. - -## Blocked Commands - -| Command | Why | Use instead | -|---------|-----|-------------| -| `curl` / `wget` in Bash | Floods context | web-search/web-fetch MCP, or `ctx_execute` with `fetch()` | -| `fetch('http`, `requests.get(`, `http.get(` in Bash | Floods context | `ctx_execute` | -| Built-in `WebFetch` | Denied by hook | `mcp__plugin_pilot_web-fetch__fetch_url` | - -## Redirected Tools - -- **Bash** — only `git`, `mkdir`, `rm`, `mv`, `cd`, `ls`, `npm install`, `pip install`, and other short-output commands. Long output → `ctx_execute(language: "shell", ...)` or `ctx_batch_execute`. -- **Read** — correct when you intend to Edit. For analyze/explore/summarize use `ctx_execute_file(path, language, code)`. -- **Grep** — large results flood context. Wrap in `ctx_execute(language: "shell", code: "grep ...")`. - -## Tool Selection Hierarchy - -1. **GATHER** — `ctx_batch_execute(commands, queries)`. Primary tool. Runs commands, auto-indexes, searches in ONE call. -2. **FOLLOW-UP** — `ctx_search(queries: [...])`. Pass ALL questions in one array. -3. **PROCESSING** — `ctx_execute` / `ctx_execute_file`. Sandbox; only stdout enters context. -4. **WEB** — dedicated MCP servers (`web-search`, `web-fetch`), NOT context-mode. -5. **INDEX** — `ctx_index(path: ...)`. Never pass large `content`. - -## Decision Tree - -``` -About to run a command / read a file / call an API? -├── Bash whitelist (file mutations, git writes, navigation)? → Bash -├── Output might be large or unsure? → ctx_execute / ctx_execute_file -├── Fetching web docs or HTML? → web-fetch / web-search MCP -├── Processing output from another MCP tool? -│ ├── Already in context? → use it directly -│ ├── Multi-query needed? → save → ctx_index(path) → ctx_search -│ └── One-shot? → save → ctx_execute_file(path) -└── Reading file to analyze (not edit)? → ctx_execute_file -``` - -## Automatic Triggers - -Use context-mode without being asked for: API debugging, log analysis, test runs, git history, data inspection (CSV/JSON), infrastructure listings, build output, code metrics. - -## Language Selection - -| Situation | Language | -|-----------|----------| -| HTTP/API, JSON | `javascript` (native fetch, async/await) | -| Data analysis, CSV, stats | `python` (csv, statistics, re) | -| Shell pipes | `shell` (grep, awk, jq) | - -## Search Strategy - -BM25 uses OR semantics — more matched terms rank higher. Use 2–4 specific technical terms. Always pass `source` when multiple docs indexed. Always batch via `queries` array. - -## Critical Rules - -1. Always `console.log` your findings — stdout is all that enters context. -2. Write analysis code, not data dumps. Print conclusions with IDs, line numbers, exact values. -3. Files you need to EDIT → normal `Read`. context-mode is for analysis only. -4. Bash whitelist only — file mutations, git writes, navigation, process control, package install. -5. Never `ctx_index(content: large_data)` — always `ctx_index(path: ...)`. -6. Don't re-index data already in context. -7. Always pass a `timeout` to `ctx_execute` / `ctx_batch_execute` / `ctx_execute_file` — omitting it allows multi-minute hangs (see *Pass an explicit `timeout`*). - -## Subagent Routing - -The PreToolUse hook injects the routing block into subagent prompts. You don't need to instruct them about context-mode. - -## ctx Commands - -| Command | Action | -|---------|--------| -| `ctx stats` | `ctx_stats` MCP tool, display output | -| `ctx doctor` | `ctx_doctor` MCP tool, run the returned shell command | -| `ctx purge` | `ctx_purge` with `confirm: true` (irreversible) | - -After `/clear` or `/compact` the knowledge base persists — use `ctx purge` to wipe. diff --git a/pilot/rules/development-practices.md b/pilot/rules/development-practices.md index f19afc52..21ac521f 100644 --- a/pilot/rules/development-practices.md +++ b/pilot/rules/development-practices.md @@ -99,4 +99,3 @@ Ghost constraints are the highest-value to find — they lock out options nobody - **⛔ Respect the active branch. Never auto-branch.** Work on whatever branch the user has checked out. Do NOT run `git checkout -b`, do NOT switch branches, do NOT invent branch names (e.g. `/`, `feat/`, `fix/`) unless the user explicitly asks for a new branch in *this* request. Project conventions in `CLAUDE.md` / `AGENTS.md` that mandate a branch-naming pattern do NOT count as a request to create one now — surface the convention and ask. The exception is `/spec` with `Worktree: Yes`, which manages branches in an isolated worktree. - **Read commands always allowed:** `status`, `diff`, `log`, `show`, `branch`. - **Exceptions:** explicit override ("checkout branch X", "create a new branch for this"), and worktree during `/spec` (`Worktree: Yes`). -- **Credential leak prevention:** `git commit` (and chained `git add … && git commit …`) is scanned at PreToolUse for staged secrets. See `security-credentials.md` for the rule set, `[allow-secret]` bypass, and toggle. diff --git a/pilot/rules/security-credentials.md b/pilot/rules/security-credentials.md deleted file mode 100644 index af639695..00000000 --- a/pilot/rules/security-credentials.md +++ /dev/null @@ -1,73 +0,0 @@ -# Credential Leak Prevention - -Pilot scans for credentials at four entry points and blocks the operation when secrets are found. The scanner runs as Claude Code hooks; toggle is ON by default. - -## What gets scanned - -| Event | What is scanned | What happens on a match | -|-------|-----------------|-------------------------| -| `UserPromptSubmit` | The submitted prompt text | Stderr block message; prompt is **not delivered** to Claude. Exit 2. | -| `PreToolUse(Read)` | Requested file path (name) + file content (binary-safe, BOM-aware) | Read tool denied. The denied path's basename and resolved-symlink target are both checked. | -| `PreToolUse(Bash)` | Command text, `$VAR`/`${VAR}` env values, `cat`/`head`/`tail`/etc. file targets, `git commit` staged diff + staged blobs, chained `git add … && git commit` files | Bash tool denied. | -| `PostToolUse(Bash)` | Combined `stdout + stderr` (first 1 MB) | Tool result is **dropped** — Claude sees the block reason instead of the secret-containing output. | - -## What gets detected - -24 secret patterns ported from [gitleaks](https://github.com/gitleaks/gitleaks) and [TruffleHog](https://github.com/trufflesecurity/trufflehog), grouped by category: - -| Category | Rules | -|----------|-------| -| Cloud | `aws-access-key`, `gcp-api-key`, `private-key` (PEM/SSH) | -| Source control | `github-pat`, `github-fine-grained`, `gitlab-pat` | -| Package registry | `npm-token` | -| Communication | `slack-token`, `slack-webhook`, `discord-webhook`, `telegram-bot-token`, `twilio-sid` | -| Email | `sendgrid-key`, `mailgun-key`, `mailchimp-key` | -| Payment | `stripe-secret-key`, `stripe-restricted-key` | -| AI | `openai-key`, `openai-project-key`, `anthropic-key` | -| Auth | `jwt` | -| Generic | `generic-secret`, `env-assignment`, `connection-string` | - -Generic patterns use a Shannon-entropy filter (3.0–3.5 bits per character) to suppress matches like `API_KEY=test12345`. - -## `.env` files are name-blocked unconditionally - -Any file whose basename is `.env` or starts with `.env.` (e.g. `.env.local`, `.env.production`) is denied at `PreToolUse(Read)` regardless of content. Symlinks are resolved before the name check — `safe.txt → /tmp/.env` is also blocked. This is intentional — agents do not need to read raw secrets to understand the schema; ask the user which keys are missing instead. - -## Allow tags (per-call bypass) - -Add a tag to your **next user prompt** to bypass the scan for the current turn: - -| Tag | Effect | -|-----|--------| -| `[allow-secret]` | Allow secret findings to pass through | -| `[allow-all]` | Bypass all scanner checks (equivalent here, since PII rules are out of scope) | - -**One-shot semantics.** The tag is honoured for the *first* tool call after the prompt. Subsequent tool calls in the same agent turn are re-blocked unless you re-tag in a new prompt. Tags in **assistant** messages or in the bash **command string** are NOT honoured (prompt-injection defense). - -The block message always shows the exact tag to add and a sample retry phrasing. - -## Toggle - -Console Settings → Security → Credential Scanner. Default ON. - -Disabling skips all scans across all four entry points. The hook subprocess reads `PILOT_CREDENTIAL_SCANNER_ENABLED`, which is exported by the launcher from `~/.pilot/config.json` (`securityScanner.credentialScanner` field). Restart Claude Code after toggling. - -## Out of scope (Batch 1) - -- **PII detection** (emails, SSN, phones, credit cards, IPs) — sensitive-canary's PII rules and Luhn validator are intentionally NOT ported. -- **`PostToolUse(Grep)`/`(Glob)` output scanning** — Read tool covers underlying file content; deferred follow-up. -- **`Edit`/`Write`/`MultiEdit` pre-flight scanning** — once Claude has the secret in context, blocking the file write doesn't unleak it. -- **`git push` unpushed-range scanning** — commit-time staged-diff scan is the chosen choke point. -- **Subagent / MCP tool outputs** — out of scope; deferred. - -## Why it matters - -Credential leaks via AI agents have two distinct surfaces. **Context leak**: a secret read into the session ends up in transcripts, summaries, search indexes, and any tool calls the agent makes thereafter — scrubbing them after the fact is unreliable. **Commit leak**: a secret committed to git, even briefly, must be treated as compromised — git history is durable, mirrors are everywhere, and rotation is the only fix. - -The scanner closes both surfaces with a single hook entry, fail-closed defaults, and a documented bypass for legitimate cases (e.g., reading your own `.env` to verify content during local dev). False-positive cost is bounded — one tag, one prompt — while the worst-case cost of a real leak is hours of credential rotation, key-rotation cascades, and audit-log review. - -## See also - -- `development-practices.md` § Git Operations — commit-time scanning interacts with the user-approval rules for `git add` / `git commit`. -- `pilot/hooks/_lib/secret_scanner.py` — the 24-rule definition (port of `sensitive-canary/src/lib/rules.ts`). -- `pilot/hooks/credential_scanner.py` — hook entry point. diff --git a/pilot/scripts/mcp-server.cjs b/pilot/scripts/mcp-server.cjs index fc7370bf..42df8b4b 100755 --- a/pilot/scripts/mcp-server.cjs +++ b/pilot/scripts/mcp-server.cjs @@ -41,7 +41,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` path: iss.path ? [${pt(b)}, ...iss.path] : [${pt(b)}] })));`),p.write(`newResult[${pt(b)}] = ${$}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let v=p.compile();return(b,$)=>v(d,b,$)},n,s=Tt,i=!no.jitless,c=i&&Ln.value,u=e.catchall,l;t._zod.parse=(d,p)=>{l??(l=r.value);let m=d.value;if(!s(m))return d.issues.push({expected:"object",code:"invalid_type",input:m,inst:t}),d;let g=[];if(i&&c&&p?.async===!1&&p.jitless!==!0)n||(n=o(e.shape)),d=n(d,p);else{d.value={};let $=l.shape;for(let E of l.keys){let T=$[E],he=T._zod.run({value:m[E],issues:[]},p),ze=T._zod.optin==="optional"&&T._zod.optout==="optional";he instanceof Promise?g.push(he.then(kt=>ze?Zc(kt,d,E,m):po(kt,d,E))):ze?Zc(he,d,E,m):po(he,d,E)}}if(!u)return g.length?Promise.all(g).then(()=>d):d;let _=[],y=l.keySet,v=u._zod,b=v.def.type;for(let $ of Object.keys(m)){if(y.has($))continue;if(b==="never"){_.push($);continue}let E=v.run({value:m[$],issues:[]},p);E instanceof Promise?g.push(E.then(T=>po(T,d,$))):po(E,d,$)}return _.length&&d.issues.push({code:"unrecognized_keys",keys:_,input:m,inst:t}),g.length?Promise.all(g).then(()=>d):d}});function Mc(t,e,r,o){for(let n of t)if(n.issues.length===0)return e.value=n.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(n=>n.issues.map(s=>Ne(s,o,Ee())))}),e}var Xn=h("$ZodUnion",(t,e)=>{B.init(t,e),H(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),H(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),H(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),H(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${r.map(o=>sr(o.source)).join("|")})$`)}}),t._zod.parse=(r,o)=>{let n=!1,s=[];for(let i of e.options){let a=i._zod.run({value:r.value,issues:[]},o);if(a instanceof Promise)s.push(a),n=!0;else{if(a.issues.length===0)return a;s.push(a)}}return n?Promise.all(s).then(i=>Mc(i,r,t,o)):Mc(s,r,t,o)}}),xu=h("$ZodDiscriminatedUnion",(t,e)=>{Xn.init(t,e);let r=t._zod.parse;H(t._zod,"propValues",()=>{let n={};for(let s of e.options){let i=s._zod.propValues;if(!i||Object.keys(i).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let[a,c]of Object.entries(i)){n[a]||(n[a]=new Set);for(let u of c)n[a].add(u)}}return n});let o=or(()=>{let n=e.options,s=new Map;for(let i of n){let a=i._zod.propValues[e.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,i)}}return s});t._zod.parse=(n,s)=>{let i=n.value;if(!Tt(i))return n.issues.push({code:"invalid_type",expected:"object",input:i,inst:t}),n;let a=o.value.get(i?.[e.discriminator]);return a?a._zod.run(n,s):e.unionFallback?r(n,s):(n.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:i,path:[e.discriminator],inst:t}),n)}}),zu=h("$ZodIntersection",(t,e)=>{B.init(t,e),t._zod.parse=(r,o)=>{let n=r.value,s=e.left._zod.run({value:n,issues:[]},o),i=e.right._zod.run({value:n,issues:[]},o);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([c,u])=>qc(r,c,u)):qc(r,s,i)}});function Jn(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Pt(t)&&Pt(e)){let r=Object.keys(e),o=Object.keys(t).filter(s=>r.indexOf(s)!==-1),n={...t,...e};for(let s of o){let i=Jn(t[s],e[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};n[s]=i.data}return{valid:!0,data:n}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let o=0;o{B.init(t,e),t._zod.parse=(r,o)=>{let n=r.value;if(!Pt(n))return r.issues.push({expected:"record",code:"invalid_type",input:n,inst:t}),r;let s=[];if(e.keyType._zod.values){let i=e.keyType._zod.values;r.value={};for(let c of i)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=e.valueType._zod.run({value:n[c],issues:[]},o);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&r.issues.push(...qe(c,l.issues)),r.value[c]=l.value})):(u.issues.length&&r.issues.push(...qe(c,u.issues)),r.value[c]=u.value)}let a;for(let c in n)i.has(c)||(a=a??[],a.push(c));a&&a.length>0&&r.issues.push({code:"unrecognized_keys",input:n,inst:t,keys:a})}else{r.value={};for(let i of Reflect.ownKeys(n)){if(i==="__proto__")continue;let a=e.keyType._zod.run({value:i,issues:[]},o);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:a.issues.map(u=>Ne(u,o,Ee())),input:i,path:[i],inst:t}),r.value[a.value]=a.value;continue}let c=e.valueType._zod.run({value:n[i],issues:[]},o);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&r.issues.push(...qe(i,u.issues)),r.value[a.value]=u.value})):(c.issues.length&&r.issues.push(...qe(i,c.issues)),r.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>r):r}});var ku=h("$ZodEnum",(t,e)=>{B.init(t,e);let r=Nn(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(o=>jn.has(typeof o)).map(o=>typeof o=="string"?et(o):o.toString()).join("|")})$`),t._zod.parse=(o,n)=>{let s=o.value;return t._zod.values.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:t}),o}}),Tu=h("$ZodLiteral",(t,e)=>{B.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?et(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,o)=>{let n=r.value;return t._zod.values.has(n)||r.issues.push({code:"invalid_value",values:e.values,input:n,inst:t}),r}});var Pu=h("$ZodTransform",(t,e)=>{B.init(t,e),t._zod.parse=(r,o)=>{let n=e.transform(r.value,r);if(o.async)return(n instanceof Promise?n:Promise.resolve(n)).then(i=>(r.value=i,r));if(n instanceof Promise)throw new We;return r.value=n,r}}),Ou=h("$ZodOptional",(t,e)=>{B.init(t,e),t._zod.optin="optional",t._zod.optout="optional",H(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),H(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${sr(r.source)})?$`):void 0}),t._zod.parse=(r,o)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,o):r.value===void 0?r:e.innerType._zod.run(r,o)}),Iu=h("$ZodNullable",(t,e)=>{B.init(t,e),H(t._zod,"optin",()=>e.innerType._zod.optin),H(t._zod,"optout",()=>e.innerType._zod.optout),H(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${sr(r.source)}|null)$`):void 0}),H(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,o)=>r.value===null?r:e.innerType._zod.run(r,o)}),Ru=h("$ZodDefault",(t,e)=>{B.init(t,e),t._zod.optin="optional",H(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,o)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let n=e.innerType._zod.run(r,o);return n instanceof Promise?n.then(s=>Uc(s,e)):Uc(n,e)}});function Uc(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var Nu=h("$ZodPrefault",(t,e)=>{B.init(t,e),t._zod.optin="optional",H(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,o)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,o))}),Au=h("$ZodNonOptional",(t,e)=>{B.init(t,e),H(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(o=>o!==void 0)):void 0}),t._zod.parse=(r,o)=>{let n=e.innerType._zod.run(r,o);return n instanceof Promise?n.then(s=>Fc(s,t)):Fc(n,t)}});function Fc(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var Cu=h("$ZodCatch",(t,e)=>{B.init(t,e),t._zod.optin="optional",H(t._zod,"optout",()=>e.innerType._zod.optout),H(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,o)=>{let n=e.innerType._zod.run(r,o);return n instanceof Promise?n.then(s=>(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(i=>Ne(i,o,Ee()))},input:r.value}),r.issues=[]),r)):(r.value=n.value,n.issues.length&&(r.value=e.catchValue({...r,error:{issues:n.issues.map(s=>Ne(s,o,Ee()))},input:r.value}),r.issues=[]),r)}});var Du=h("$ZodPipe",(t,e)=>{B.init(t,e),H(t._zod,"values",()=>e.in._zod.values),H(t._zod,"optin",()=>e.in._zod.optin),H(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,o)=>{let n=e.in._zod.run(r,o);return n instanceof Promise?n.then(s=>Vc(s,e,o)):Vc(n,e,o)}});function Vc(t,e,r){return ft(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var Lu=h("$ZodReadonly",(t,e)=>{B.init(t,e),H(t._zod,"propValues",()=>e.innerType._zod.propValues),H(t._zod,"values",()=>e.innerType._zod.values),H(t._zod,"optin",()=>e.innerType._zod.optin),H(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,o)=>{let n=e.innerType._zod.run(r,o);return n instanceof Promise?n.then(Hc):Hc(n)}});function Hc(t){return t.value=Object.freeze(t.value),t}var ju=h("$ZodCustom",(t,e)=>{de.init(t,e),B.init(t,e),t._zod.parse=(r,o)=>r,t._zod.check=r=>{let o=r.value,n=e.fn(o);if(n instanceof Promise)return n.then(s=>Bc(s,r,o,t));Bc(n,r,o,t)}});function Bc(t,e,r,o){if(!t){let n={code:"custom",input:r,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(n.params=o._zod.def.params),e.issues.push(qn(n))}}var Fm=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},Vm=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(o){return t[o]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return o=>{switch(o.code){case"invalid_type":return`Invalid input: expected ${o.expected}, received ${Fm(o.input)}`;case"invalid_value":return o.values.length===1?`Invalid input: expected ${ao(o.values[0])}`:`Invalid option: expected one of ${so(o.values,"|")}`;case"too_big":{let n=o.inclusive?"<=":"<",s=e(o.origin);return s?`Too big: expected ${o.origin??"value"} to have ${n}${o.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${o.origin??"value"} to be ${n}${o.maximum.toString()}`}case"too_small":{let n=o.inclusive?">=":">",s=e(o.origin);return s?`Too small: expected ${o.origin} to have ${n}${o.minimum.toString()} ${s.unit}`:`Too small: expected ${o.origin} to be ${n}${o.minimum.toString()}`}case"invalid_format":{let n=o;return n.format==="starts_with"?`Invalid string: must start with "${n.prefix}"`:n.format==="ends_with"?`Invalid string: must end with "${n.suffix}"`:n.format==="includes"?`Invalid string: must include "${n.includes}"`:n.format==="regex"?`Invalid string: must match pattern ${n.pattern}`:`Invalid ${r[n.format]??o.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${o.divisor}`;case"unrecognized_keys":return`Unrecognized key${o.keys.length>1?"s":""}: ${so(o.keys,", ")}`;case"invalid_key":return`Invalid key in ${o.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${o.origin}`;default:return"Invalid input"}}};function Zu(){return{localeError:Vm()}}var Qn=class{constructor(){this._map=new Map,this._idmap=new Map}add(e,...r){let o=r[0];if(this._map.set(e,o),o&&typeof o=="object"&&"id"in o){if(this._idmap.has(o.id))throw new Error(`ID ${o.id} already exists in the registry`);this._idmap.set(o.id,e)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let o={...this.get(r)??{}};return delete o.id,{...o,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function Hm(){return new Qn}var ur=Hm();function Mu(t,e){return new t({type:"string",...k(e)})}function qu(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...k(e)})}function es(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...k(e)})}function Uu(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...k(e)})}function Fu(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...k(e)})}function Vu(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...k(e)})}function Hu(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...k(e)})}function Bu(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...k(e)})}function Ku(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...k(e)})}function Wu(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...k(e)})}function Gu(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...k(e)})}function Ju(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...k(e)})}function Yu(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...k(e)})}function Xu(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...k(e)})}function Qu(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...k(e)})}function el(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...k(e)})}function tl(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...k(e)})}function rl(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...k(e)})}function ol(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...k(e)})}function nl(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...k(e)})}function sl(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...k(e)})}function il(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...k(e)})}function al(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...k(e)})}function cl(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...k(e)})}function ul(t,e){return new t({type:"string",format:"date",check:"string_format",...k(e)})}function ll(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...k(e)})}function dl(t,e){return new t({type:"string",format:"duration",check:"string_format",...k(e)})}function pl(t,e){return new t({type:"number",checks:[],...k(e)})}function fl(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...k(e)})}function ml(t,e){return new t({type:"boolean",...k(e)})}function hl(t,e){return new t({type:"null",...k(e)})}function gl(t){return new t({type:"unknown"})}function _l(t,e){return new t({type:"never",...k(e)})}function mo(t,e){return new Wn({check:"less_than",...k(e),value:t,inclusive:!1})}function lr(t,e){return new Wn({check:"less_than",...k(e),value:t,inclusive:!0})}function ho(t,e){return new Gn({check:"greater_than",...k(e),value:t,inclusive:!1})}function dr(t,e){return new Gn({check:"greater_than",...k(e),value:t,inclusive:!0})}function go(t,e){return new xc({check:"multiple_of",...k(e),value:t})}function _o(t,e){return new Ec({check:"max_length",...k(e),maximum:t})}function Ot(t,e){return new kc({check:"min_length",...k(e),minimum:t})}function yo(t,e){return new Tc({check:"length_equals",...k(e),length:t})}function ts(t,e){return new Pc({check:"string_format",format:"regex",...k(e),pattern:t})}function rs(t){return new Oc({check:"string_format",format:"lowercase",...k(t)})}function os(t){return new Ic({check:"string_format",format:"uppercase",...k(t)})}function ns(t,e){return new Rc({check:"string_format",format:"includes",...k(e),includes:t})}function ss(t,e){return new Nc({check:"string_format",format:"starts_with",...k(e),prefix:t})}function is(t,e){return new Ac({check:"string_format",format:"ends_with",...k(e),suffix:t})}function mt(t){return new Cc({check:"overwrite",tx:t})}function as(t){return mt(e=>e.normalize(t))}function cs(){return mt(t=>t.trim())}function us(){return mt(t=>t.toLowerCase())}function ls(){return mt(t=>t.toUpperCase())}function yl(t,e,r){return new t({type:"array",element:e,...k(r)})}function vl(t,e,r){let o=k(r);return o.abort??(o.abort=!0),new t({type:"custom",check:"custom",fn:e,...o})}function $l(t,e,r){return new t({type:"custom",check:"custom",fn:e,...k(r)})}function It(t){return!!t._zod}function tt(t,e){return It(t)?ar(t,e):t.safeParse(e)}function vo(t){if(!t)return;let e;if(It(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function bl(t){if(It(t)){let s=t._zod?.def;if(s){if(s.value!==void 0)return s.value;if(Array.isArray(s.values)&&s.values.length>0)return s.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let o=t.value;if(o!==void 0)return o}var fr={};La(fr,{ZodISODate:()=>wl,ZodISODateTime:()=>Sl,ZodISODuration:()=>zl,ZodISOTime:()=>xl,date:()=>ps,datetime:()=>ds,duration:()=>ms,time:()=>fs});var Sl=h("ZodISODateTime",(t,e)=>{nu.init(t,e),X.init(t,e)});function ds(t){return cl(Sl,t)}var wl=h("ZodISODate",(t,e)=>{su.init(t,e),X.init(t,e)});function ps(t){return ul(wl,t)}var xl=h("ZodISOTime",(t,e)=>{iu.init(t,e),X.init(t,e)});function fs(t){return ll(xl,t)}var zl=h("ZodISODuration",(t,e)=>{au.init(t,e),X.init(t,e)});function ms(t){return dl(zl,t)}var El=(t,e)=>{co.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Ha(t,r)},flatten:{value:r=>Va(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},Rw=h("ZodError",El),mr=h("ZodError",El,{Parent:Error});var kl=Ba(mr),Tl=Ka(mr),Pl=Fn(mr),Ol=Vn(mr);var te=h("ZodType",(t,e)=>(B.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),t.clone=(r,o)=>Me(t,r,o),t.brand=()=>t,t.register=((r,o)=>(r.add(t,o),t)),t.parse=(r,o)=>kl(t,r,o,{callee:t.parse}),t.safeParse=(r,o)=>Pl(t,r,o),t.parseAsync=async(r,o)=>Tl(t,r,o,{callee:t.parseAsync}),t.safeParseAsync=async(r,o)=>Ol(t,r,o),t.spa=t.safeParseAsync,t.refine=(r,o)=>t.check(Uh(r,o)),t.superRefine=r=>t.check(Fh(r)),t.overwrite=r=>t.check(mt(r)),t.optional=()=>ee(t),t.nullable=()=>Nl(t),t.nullish=()=>ee(Nl(t)),t.nonoptional=r=>Ch(t,r),t.array=()=>D(t),t.or=r=>G([t,r]),t.and=r=>bo(t,r),t.transform=r=>gs(t,Zl(r)),t.default=r=>Rh(t,r),t.prefault=r=>Ah(t,r),t.catch=r=>Lh(t,r),t.pipe=r=>gs(t,r),t.readonly=()=>Mh(t),t.describe=r=>{let o=t.clone();return ur.add(o,{description:r}),o},Object.defineProperty(t,"description",{get(){return ur.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return ur.get(t);let o=t.clone();return ur.add(o,r[0]),o},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),Al=h("_ZodString",(t,e)=>{fo.init(t,e),te.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...o)=>t.check(ts(...o)),t.includes=(...o)=>t.check(ns(...o)),t.startsWith=(...o)=>t.check(ss(...o)),t.endsWith=(...o)=>t.check(is(...o)),t.min=(...o)=>t.check(Ot(...o)),t.max=(...o)=>t.check(_o(...o)),t.length=(...o)=>t.check(yo(...o)),t.nonempty=(...o)=>t.check(Ot(1,...o)),t.lowercase=o=>t.check(rs(o)),t.uppercase=o=>t.check(os(o)),t.trim=()=>t.check(cs()),t.normalize=(...o)=>t.check(as(...o)),t.toLowerCase=()=>t.check(us()),t.toUpperCase=()=>t.check(ls())}),eh=h("ZodString",(t,e)=>{fo.init(t,e),Al.init(t,e),t.email=r=>t.check(qu(th,r)),t.url=r=>t.check(Bu(rh,r)),t.jwt=r=>t.check(al(_h,r)),t.emoji=r=>t.check(Ku(oh,r)),t.guid=r=>t.check(es(Il,r)),t.uuid=r=>t.check(Uu($o,r)),t.uuidv4=r=>t.check(Fu($o,r)),t.uuidv6=r=>t.check(Vu($o,r)),t.uuidv7=r=>t.check(Hu($o,r)),t.nanoid=r=>t.check(Wu(nh,r)),t.guid=r=>t.check(es(Il,r)),t.cuid=r=>t.check(Gu(sh,r)),t.cuid2=r=>t.check(Ju(ih,r)),t.ulid=r=>t.check(Yu(ah,r)),t.base64=r=>t.check(nl(mh,r)),t.base64url=r=>t.check(sl(hh,r)),t.xid=r=>t.check(Xu(ch,r)),t.ksuid=r=>t.check(Qu(uh,r)),t.ipv4=r=>t.check(el(lh,r)),t.ipv6=r=>t.check(tl(dh,r)),t.cidrv4=r=>t.check(rl(ph,r)),t.cidrv6=r=>t.check(ol(fh,r)),t.e164=r=>t.check(il(gh,r)),t.datetime=r=>t.check(ds(r)),t.date=r=>t.check(ps(r)),t.time=r=>t.check(fs(r)),t.duration=r=>t.check(ms(r))});function f(t){return Mu(eh,t)}var X=h("ZodStringFormat",(t,e)=>{W.init(t,e),Al.init(t,e)}),th=h("ZodEmail",(t,e)=>{Gc.init(t,e),X.init(t,e)});var Il=h("ZodGUID",(t,e)=>{Kc.init(t,e),X.init(t,e)});var $o=h("ZodUUID",(t,e)=>{Wc.init(t,e),X.init(t,e)});var rh=h("ZodURL",(t,e)=>{Jc.init(t,e),X.init(t,e)});var oh=h("ZodEmoji",(t,e)=>{Yc.init(t,e),X.init(t,e)});var nh=h("ZodNanoID",(t,e)=>{Xc.init(t,e),X.init(t,e)});var sh=h("ZodCUID",(t,e)=>{Qc.init(t,e),X.init(t,e)});var ih=h("ZodCUID2",(t,e)=>{eu.init(t,e),X.init(t,e)});var ah=h("ZodULID",(t,e)=>{tu.init(t,e),X.init(t,e)});var ch=h("ZodXID",(t,e)=>{ru.init(t,e),X.init(t,e)});var uh=h("ZodKSUID",(t,e)=>{ou.init(t,e),X.init(t,e)});var lh=h("ZodIPv4",(t,e)=>{cu.init(t,e),X.init(t,e)});var dh=h("ZodIPv6",(t,e)=>{uu.init(t,e),X.init(t,e)});var ph=h("ZodCIDRv4",(t,e)=>{lu.init(t,e),X.init(t,e)});var fh=h("ZodCIDRv6",(t,e)=>{du.init(t,e),X.init(t,e)});var mh=h("ZodBase64",(t,e)=>{fu.init(t,e),X.init(t,e)});var hh=h("ZodBase64URL",(t,e)=>{mu.init(t,e),X.init(t,e)});var gh=h("ZodE164",(t,e)=>{hu.init(t,e),X.init(t,e)});var _h=h("ZodJWT",(t,e)=>{gu.init(t,e),X.init(t,e)});var Cl=h("ZodNumber",(t,e)=>{Yn.init(t,e),te.init(t,e),t.gt=(o,n)=>t.check(ho(o,n)),t.gte=(o,n)=>t.check(dr(o,n)),t.min=(o,n)=>t.check(dr(o,n)),t.lt=(o,n)=>t.check(mo(o,n)),t.lte=(o,n)=>t.check(lr(o,n)),t.max=(o,n)=>t.check(lr(o,n)),t.int=o=>t.check(Rl(o)),t.safe=o=>t.check(Rl(o)),t.positive=o=>t.check(ho(0,o)),t.nonnegative=o=>t.check(dr(0,o)),t.negative=o=>t.check(mo(0,o)),t.nonpositive=o=>t.check(lr(0,o)),t.multipleOf=(o,n)=>t.check(go(o,n)),t.step=(o,n)=>t.check(go(o,n)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function U(t){return pl(Cl,t)}var yh=h("ZodNumberFormat",(t,e)=>{_u.init(t,e),Cl.init(t,e)});function Rl(t){return fl(yh,t)}var vh=h("ZodBoolean",(t,e)=>{yu.init(t,e),te.init(t,e)});function ne(t){return ml(vh,t)}var $h=h("ZodNull",(t,e)=>{vu.init(t,e),te.init(t,e)});function Dl(t){return hl($h,t)}var bh=h("ZodUnknown",(t,e)=>{$u.init(t,e),te.init(t,e)});function Q(){return gl(bh)}var Sh=h("ZodNever",(t,e)=>{bu.init(t,e),te.init(t,e)});function wh(t){return _l(Sh,t)}var xh=h("ZodArray",(t,e)=>{Su.init(t,e),te.init(t,e),t.element=e.element,t.min=(r,o)=>t.check(Ot(r,o)),t.nonempty=r=>t.check(Ot(1,r)),t.max=(r,o)=>t.check(_o(r,o)),t.length=(r,o)=>t.check(yo(r,o)),t.unwrap=()=>t.element});function D(t,e){return yl(xh,t,e)}var Ll=h("ZodObject",(t,e)=>{wu.init(t,e),te.init(t,e),q.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>ve(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Q()}),t.loose=()=>t.clone({...t._zod.def,catchall:Q()}),t.strict=()=>t.clone({...t._zod.def,catchall:wh()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>q.extend(t,r),t.merge=r=>q.merge(t,r),t.pick=r=>q.pick(t,r),t.omit=r=>q.omit(t,r),t.partial=(...r)=>q.partial(Ml,t,r[0]),t.required=(...r)=>q.required(ql,t,r[0])});function w(t,e){let r={type:"object",get shape(){return q.assignProp(this,"shape",{...t}),this.shape},...q.normalizeParams(e)};return new Ll(r)}function ge(t,e){return new Ll({type:"object",get shape(){return q.assignProp(this,"shape",{...t}),this.shape},catchall:Q(),...q.normalizeParams(e)})}var jl=h("ZodUnion",(t,e)=>{Xn.init(t,e),te.init(t,e),t.options=e.options});function G(t,e){return new jl({type:"union",options:t,...q.normalizeParams(e)})}var zh=h("ZodDiscriminatedUnion",(t,e)=>{jl.init(t,e),xu.init(t,e)});function _s(t,e,r){return new zh({type:"union",options:e,discriminator:t,...q.normalizeParams(r)})}var Eh=h("ZodIntersection",(t,e)=>{zu.init(t,e),te.init(t,e)});function bo(t,e){return new Eh({type:"intersection",left:t,right:e})}var kh=h("ZodRecord",(t,e)=>{Eu.init(t,e),te.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function K(t,e,r){return new kh({type:"record",keyType:t,valueType:e,...q.normalizeParams(r)})}var hs=h("ZodEnum",(t,e)=>{ku.init(t,e),te.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(o,n)=>{let s={};for(let i of o)if(r.has(i))s[i]=e.entries[i];else throw new Error(`Key ${i} not found in enum`);return new hs({...e,checks:[],...q.normalizeParams(n),entries:s})},t.exclude=(o,n)=>{let s={...e.entries};for(let i of o)if(r.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new hs({...e,checks:[],...q.normalizeParams(n),entries:s})}});function ve(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(o=>[o,o])):t;return new hs({type:"enum",entries:r,...q.normalizeParams(e)})}var Th=h("ZodLiteral",(t,e)=>{Tu.init(t,e),te.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function x(t,e){return new Th({type:"literal",values:Array.isArray(t)?t:[t],...q.normalizeParams(e)})}var Ph=h("ZodTransform",(t,e)=>{Pu.init(t,e),te.init(t,e),t._zod.parse=(r,o)=>{r.addIssue=s=>{if(typeof s=="string")r.issues.push(q.issue(s,r.value,e));else{let i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=r.value),i.inst??(i.inst=t),i.continue??(i.continue=!0),r.issues.push(q.issue(i))}};let n=e.transform(r.value,r);return n instanceof Promise?n.then(s=>(r.value=s,r)):(r.value=n,r)}});function Zl(t){return new Ph({type:"transform",transform:t})}var Ml=h("ZodOptional",(t,e)=>{Ou.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType});function ee(t){return new Ml({type:"optional",innerType:t})}var Oh=h("ZodNullable",(t,e)=>{Iu.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Nl(t){return new Oh({type:"nullable",innerType:t})}var Ih=h("ZodDefault",(t,e)=>{Ru.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function Rh(t,e){return new Ih({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var Nh=h("ZodPrefault",(t,e)=>{Nu.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Ah(t,e){return new Nh({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var ql=h("ZodNonOptional",(t,e)=>{Au.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Ch(t,e){return new ql({type:"nonoptional",innerType:t,...q.normalizeParams(e)})}var Dh=h("ZodCatch",(t,e)=>{Cu.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function Lh(t,e){return new Dh({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var jh=h("ZodPipe",(t,e)=>{Du.init(t,e),te.init(t,e),t.in=e.in,t.out=e.out});function gs(t,e){return new jh({type:"pipe",in:t,out:e})}var Zh=h("ZodReadonly",(t,e)=>{Lu.init(t,e),te.init(t,e)});function Mh(t){return new Zh({type:"readonly",innerType:t})}var Ul=h("ZodCustom",(t,e)=>{ju.init(t,e),te.init(t,e)});function qh(t){let e=new de({check:"custom"});return e._zod.check=t,e}function Fl(t,e){return vl(Ul,t??(()=>!0),e)}function Uh(t,e={}){return $l(Ul,t,e)}function Fh(t){let e=qh(r=>(r.addIssue=o=>{if(typeof o=="string")r.issues.push(q.issue(o,r.value,e._zod.def));else{let n=o;n.fatal&&(n.continue=!1),n.code??(n.code="custom"),n.input??(n.input=r.value),n.inst??(n.inst=e),n.continue??(n.continue=!e._zod.def.abort),r.issues.push(q.issue(n))}},t(r.value,r)));return e}function ys(t,e){return gs(Zl(t),e)}Ee(Zu());var $s="2025-11-25";var Vl=[$s,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],rt="io.modelcontextprotocol/related-task",wo="2.0",oe=Fl(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Hl=G([f(),U().int()]),Bl=f(),zx=ge({ttl:U().optional(),pollInterval:U().optional()}),Vh=w({ttl:U().optional()}),Hh=w({taskId:f()}),bs=ge({progressToken:Hl.optional(),[rt]:Hh.optional()}),xe=w({_meta:bs.optional()}),hr=xe.extend({task:Vh.optional()}),Kl=t=>hr.safeParse(t).success,ie=w({method:f(),params:xe.loose().optional()}),ke=w({_meta:bs.optional()}),Te=w({method:f(),params:ke.loose().optional()}),ae=ge({_meta:bs.optional()}),xo=G([f(),U().int()]),Wl=w({jsonrpc:x(wo),id:xo,...ie.shape}).strict(),Ss=t=>Wl.safeParse(t).success,Gl=w({jsonrpc:x(wo),...Te.shape}).strict(),Jl=t=>Gl.safeParse(t).success,ws=w({jsonrpc:x(wo),id:xo,result:ae}).strict(),gr=t=>ws.safeParse(t).success;var C;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(C||(C={}));var xs=w({jsonrpc:x(wo),id:xo.optional(),error:w({code:U().int(),message:f(),data:Q().optional()})}).strict();var Yl=t=>xs.safeParse(t).success;var Xl=G([Wl,Gl,ws,xs]),Ex=G([ws,xs]),zo=ae.strict(),Bh=ke.extend({requestId:xo.optional(),reason:f().optional()}),Eo=Te.extend({method:x("notifications/cancelled"),params:Bh}),Kh=w({src:f(),mimeType:f().optional(),sizes:D(f()).optional(),theme:ve(["light","dark"]).optional()}),_r=w({icons:D(Kh).optional()}),Rt=w({name:f(),title:f().optional()}),Ql=Rt.extend({...Rt.shape,..._r.shape,version:f(),websiteUrl:f().optional(),description:f().optional()}),Wh=bo(w({applyDefaults:ne().optional()}),K(f(),Q())),Gh=ys(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,bo(w({form:Wh.optional(),url:oe.optional()}),K(f(),Q()).optional())),Jh=ge({list:oe.optional(),cancel:oe.optional(),requests:ge({sampling:ge({createMessage:oe.optional()}).optional(),elicitation:ge({create:oe.optional()}).optional()}).optional()}),Yh=ge({list:oe.optional(),cancel:oe.optional(),requests:ge({tools:ge({call:oe.optional()}).optional()}).optional()}),Xh=w({experimental:K(f(),oe).optional(),sampling:w({context:oe.optional(),tools:oe.optional()}).optional(),elicitation:Gh.optional(),roots:w({listChanged:ne().optional()}).optional(),tasks:Jh.optional(),extensions:K(f(),oe).optional()}),Qh=xe.extend({protocolVersion:f(),capabilities:Xh,clientInfo:Ql}),zs=ie.extend({method:x("initialize"),params:Qh});var eg=w({experimental:K(f(),oe).optional(),logging:oe.optional(),completions:oe.optional(),prompts:w({listChanged:ne().optional()}).optional(),resources:w({subscribe:ne().optional(),listChanged:ne().optional()}).optional(),tools:w({listChanged:ne().optional()}).optional(),tasks:Yh.optional(),extensions:K(f(),oe).optional()}),tg=ae.extend({protocolVersion:f(),capabilities:eg,serverInfo:Ql,instructions:f().optional()}),Es=Te.extend({method:x("notifications/initialized"),params:ke.optional()});var ko=ie.extend({method:x("ping"),params:xe.optional()}),rg=w({progress:U(),total:ee(U()),message:ee(f())}),og=w({...ke.shape,...rg.shape,progressToken:Hl}),To=Te.extend({method:x("notifications/progress"),params:og}),ng=xe.extend({cursor:Bl.optional()}),yr=ie.extend({params:ng.optional()}),vr=ae.extend({nextCursor:Bl.optional()}),sg=ve(["working","input_required","completed","failed","cancelled"]),$r=w({taskId:f(),status:sg,ttl:G([U(),Dl()]),createdAt:f(),lastUpdatedAt:f(),pollInterval:ee(U()),statusMessage:ee(f())}),Nt=ae.extend({task:$r}),ig=ke.merge($r),br=Te.extend({method:x("notifications/tasks/status"),params:ig}),Po=ie.extend({method:x("tasks/get"),params:xe.extend({taskId:f()})}),Oo=ae.merge($r),Io=ie.extend({method:x("tasks/result"),params:xe.extend({taskId:f()})}),kx=ae.loose(),Ro=yr.extend({method:x("tasks/list")}),No=vr.extend({tasks:D($r)}),Ao=ie.extend({method:x("tasks/cancel"),params:xe.extend({taskId:f()})}),ed=ae.merge($r),td=w({uri:f(),mimeType:ee(f()),_meta:K(f(),Q()).optional()}),rd=td.extend({text:f()}),ks=f().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),od=td.extend({blob:ks}),Sr=ve(["user","assistant"]),At=w({audience:D(Sr).optional(),priority:U().min(0).max(1).optional(),lastModified:fr.datetime({offset:!0}).optional()}),nd=w({...Rt.shape,..._r.shape,uri:f(),description:ee(f()),mimeType:ee(f()),size:ee(U()),annotations:At.optional(),_meta:ee(ge({}))}),ag=w({...Rt.shape,..._r.shape,uriTemplate:f(),description:ee(f()),mimeType:ee(f()),annotations:At.optional(),_meta:ee(ge({}))}),cg=yr.extend({method:x("resources/list")}),ug=vr.extend({resources:D(nd)}),lg=yr.extend({method:x("resources/templates/list")}),dg=vr.extend({resourceTemplates:D(ag)}),Ts=xe.extend({uri:f()}),pg=Ts,fg=ie.extend({method:x("resources/read"),params:pg}),mg=ae.extend({contents:D(G([rd,od]))}),hg=Te.extend({method:x("notifications/resources/list_changed"),params:ke.optional()}),gg=Ts,_g=ie.extend({method:x("resources/subscribe"),params:gg}),yg=Ts,vg=ie.extend({method:x("resources/unsubscribe"),params:yg}),$g=ke.extend({uri:f()}),bg=Te.extend({method:x("notifications/resources/updated"),params:$g}),Sg=w({name:f(),description:ee(f()),required:ee(ne())}),wg=w({...Rt.shape,..._r.shape,description:ee(f()),arguments:ee(D(Sg)),_meta:ee(ge({}))}),xg=yr.extend({method:x("prompts/list")}),zg=vr.extend({prompts:D(wg)}),Eg=xe.extend({name:f(),arguments:K(f(),f()).optional()}),kg=ie.extend({method:x("prompts/get"),params:Eg}),Ps=w({type:x("text"),text:f(),annotations:At.optional(),_meta:K(f(),Q()).optional()}),Os=w({type:x("image"),data:ks,mimeType:f(),annotations:At.optional(),_meta:K(f(),Q()).optional()}),Is=w({type:x("audio"),data:ks,mimeType:f(),annotations:At.optional(),_meta:K(f(),Q()).optional()}),Tg=w({type:x("tool_use"),name:f(),id:f(),input:K(f(),Q()),_meta:K(f(),Q()).optional()}),Pg=w({type:x("resource"),resource:G([rd,od]),annotations:At.optional(),_meta:K(f(),Q()).optional()}),Og=nd.extend({type:x("resource_link")}),Rs=G([Ps,Os,Is,Og,Pg]),Ig=w({role:Sr,content:Rs}),Rg=ae.extend({description:f().optional(),messages:D(Ig)}),Ng=Te.extend({method:x("notifications/prompts/list_changed"),params:ke.optional()}),Ag=w({title:f().optional(),readOnlyHint:ne().optional(),destructiveHint:ne().optional(),idempotentHint:ne().optional(),openWorldHint:ne().optional()}),Cg=w({taskSupport:ve(["required","optional","forbidden"]).optional()}),sd=w({...Rt.shape,..._r.shape,description:f().optional(),inputSchema:w({type:x("object"),properties:K(f(),oe).optional(),required:D(f()).optional()}).catchall(Q()),outputSchema:w({type:x("object"),properties:K(f(),oe).optional(),required:D(f()).optional()}).catchall(Q()).optional(),annotations:Ag.optional(),execution:Cg.optional(),_meta:K(f(),Q()).optional()}),Ns=yr.extend({method:x("tools/list")}),Dg=vr.extend({tools:D(sd)}),Co=ae.extend({content:D(Rs).default([]),structuredContent:K(f(),Q()).optional(),isError:ne().optional()}),Tx=Co.or(ae.extend({toolResult:Q()})),Lg=hr.extend({name:f(),arguments:K(f(),Q()).optional()}),wr=ie.extend({method:x("tools/call"),params:Lg}),jg=Te.extend({method:x("notifications/tools/list_changed"),params:ke.optional()}),Px=w({autoRefresh:ne().default(!0),debounceMs:U().int().nonnegative().default(300)}),xr=ve(["debug","info","notice","warning","error","critical","alert","emergency"]),Zg=xe.extend({level:xr}),As=ie.extend({method:x("logging/setLevel"),params:Zg}),Mg=ke.extend({level:xr,logger:f().optional(),data:Q()}),qg=Te.extend({method:x("notifications/message"),params:Mg}),Ug=w({name:f().optional()}),Fg=w({hints:D(Ug).optional(),costPriority:U().min(0).max(1).optional(),speedPriority:U().min(0).max(1).optional(),intelligencePriority:U().min(0).max(1).optional()}),Vg=w({mode:ve(["auto","required","none"]).optional()}),Hg=w({type:x("tool_result"),toolUseId:f().describe("The unique identifier for the corresponding tool call."),content:D(Rs).default([]),structuredContent:w({}).loose().optional(),isError:ne().optional(),_meta:K(f(),Q()).optional()}),Bg=_s("type",[Ps,Os,Is]),So=_s("type",[Ps,Os,Is,Tg,Hg]),Kg=w({role:Sr,content:G([So,D(So)]),_meta:K(f(),Q()).optional()}),Wg=hr.extend({messages:D(Kg),modelPreferences:Fg.optional(),systemPrompt:f().optional(),includeContext:ve(["none","thisServer","allServers"]).optional(),temperature:U().optional(),maxTokens:U().int(),stopSequences:D(f()).optional(),metadata:oe.optional(),tools:D(sd).optional(),toolChoice:Vg.optional()}),Gg=ie.extend({method:x("sampling/createMessage"),params:Wg}),zr=ae.extend({model:f(),stopReason:ee(ve(["endTurn","stopSequence","maxTokens"]).or(f())),role:Sr,content:Bg}),Cs=ae.extend({model:f(),stopReason:ee(ve(["endTurn","stopSequence","maxTokens","toolUse"]).or(f())),role:Sr,content:G([So,D(So)])}),Jg=w({type:x("boolean"),title:f().optional(),description:f().optional(),default:ne().optional()}),Yg=w({type:x("string"),title:f().optional(),description:f().optional(),minLength:U().optional(),maxLength:U().optional(),format:ve(["email","uri","date","date-time"]).optional(),default:f().optional()}),Xg=w({type:ve(["number","integer"]),title:f().optional(),description:f().optional(),minimum:U().optional(),maximum:U().optional(),default:U().optional()}),Qg=w({type:x("string"),title:f().optional(),description:f().optional(),enum:D(f()),default:f().optional()}),e_=w({type:x("string"),title:f().optional(),description:f().optional(),oneOf:D(w({const:f(),title:f()})),default:f().optional()}),t_=w({type:x("string"),title:f().optional(),description:f().optional(),enum:D(f()),enumNames:D(f()).optional(),default:f().optional()}),r_=G([Qg,e_]),o_=w({type:x("array"),title:f().optional(),description:f().optional(),minItems:U().optional(),maxItems:U().optional(),items:w({type:x("string"),enum:D(f())}),default:D(f()).optional()}),n_=w({type:x("array"),title:f().optional(),description:f().optional(),minItems:U().optional(),maxItems:U().optional(),items:w({anyOf:D(w({const:f(),title:f()}))}),default:D(f()).optional()}),s_=G([o_,n_]),i_=G([t_,r_,s_]),a_=G([i_,Jg,Yg,Xg]),c_=hr.extend({mode:x("form").optional(),message:f(),requestedSchema:w({type:x("object"),properties:K(f(),a_),required:D(f()).optional()})}),u_=hr.extend({mode:x("url"),message:f(),elicitationId:f(),url:f().url()}),l_=G([c_,u_]),d_=ie.extend({method:x("elicitation/create"),params:l_}),p_=ke.extend({elicitationId:f()}),f_=Te.extend({method:x("notifications/elicitation/complete"),params:p_}),Ct=ae.extend({action:ve(["accept","decline","cancel"]),content:ys(t=>t===null?void 0:t,K(f(),G([f(),U(),ne(),D(f())])).optional())}),m_=w({type:x("ref/resource"),uri:f()});var h_=w({type:x("ref/prompt"),name:f()}),g_=xe.extend({ref:G([h_,m_]),argument:w({name:f(),value:f()}),context:w({arguments:K(f(),f()).optional()}).optional()}),__=ie.extend({method:x("completion/complete"),params:g_});var y_=ae.extend({completion:ge({values:D(f()).max(100),total:ee(U().int()),hasMore:ee(ne())})}),v_=w({uri:f().startsWith("file://"),name:f().optional(),_meta:K(f(),Q()).optional()}),$_=ie.extend({method:x("roots/list"),params:xe.optional()}),Ds=ae.extend({roots:D(v_)}),b_=Te.extend({method:x("notifications/roots/list_changed"),params:ke.optional()}),Ox=G([ko,zs,__,As,kg,xg,cg,lg,fg,_g,vg,wr,Ns,Po,Io,Ro,Ao]),Ix=G([Eo,To,Es,b_,br]),Rx=G([zo,zr,Cs,Ct,Ds,Oo,No,Nt]),Nx=G([ko,Gg,d_,$_,Po,Io,Ro,Ao]),Ax=G([Eo,To,qg,bg,hg,jg,Ng,br,f_]),Cx=G([zo,tg,y_,Rg,zg,ug,dg,mg,Co,Dg,Oo,No,Nt]),O=class t extends Error{constructor(e,r,o){super(`MCP error ${e}: ${r}`),this.code=e,this.data=o,this.name="McpError"}static fromError(e,r,o){if(e===C.UrlElicitationRequired&&o){let n=o;if(n.elicitations)return new vs(n.elicitations,r)}return new t(e,r,o)}},vs=class extends O{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(C.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function ot(t){return t==="completed"||t==="failed"||t==="cancelled"}var mz=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Ls(t){let r=vo(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let o=bl(r);if(typeof o!="string")throw new Error("Schema method literal must be a string");return o}function js(t,e){let r=tt(t,e);if(!r.success)throw r.error;return r.data}var k_=6e4,Do=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(Eo,r=>{this._oncancel(r)}),this.setNotificationHandler(To,r=>{this._onprogress(r)}),this.setRequestHandler(ko,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Po,async(r,o)=>{let n=await this._taskStore.getTask(r.params.taskId,o.sessionId);if(!n)throw new O(C.InvalidParams,"Failed to retrieve task: Task not found");return{...n}}),this.setRequestHandler(Io,async(r,o)=>{let n=async()=>{let s=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,o.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{let d=c,p=new O(d.error.code,d.error.message,d.error.data);l(p)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:o.requestId})}}let i=await this._taskStore.getTask(s,o.sessionId);if(!i)throw new O(C.InvalidParams,`Task not found: ${s}`);if(!ot(i.status))return await this._waitForTaskUpdate(s,o.signal),await n();if(ot(i.status)){let a=await this._taskStore.getTaskResult(s,o.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[rt]:{taskId:s}}}}return await n()};return await n()}),this.setRequestHandler(Ro,async(r,o)=>{try{let{tasks:n,nextCursor:s}=await this._taskStore.listTasks(r.params?.cursor,o.sessionId);return{tasks:n,nextCursor:s,_meta:{}}}catch(n){throw new O(C.InvalidParams,`Failed to list tasks: ${n instanceof Error?n.message:String(n)}`)}}),this.setRequestHandler(Ao,async(r,o)=>{try{let n=await this._taskStore.getTask(r.params.taskId,o.sessionId);if(!n)throw new O(C.InvalidParams,`Task not found: ${r.params.taskId}`);if(ot(n.status))throw new O(C.InvalidParams,`Cannot cancel task in terminal status: ${n.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",o.sessionId),this._clearTaskQueue(r.params.taskId);let s=await this._taskStore.getTask(r.params.taskId,o.sessionId);if(!s)throw new O(C.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...s}}catch(n){throw n instanceof O?n:new O(C.InvalidRequest,`Failed to cancel task: ${n instanceof Error?n.message:String(n)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,o,n,s=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(n,r),startTime:Date.now(),timeout:r,maxTotalTimeout:o,resetTimeoutOnProgress:s,onTimeout:n})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let o=Date.now()-r.startTime;if(r.maxTotalTimeout&&o>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),O.fromError(C.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:o});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let o=this.transport?.onerror;this._transport.onerror=s=>{o?.(s),this._onerror(s)};let n=this._transport?.onmessage;this._transport.onmessage=(s,i)=>{n?.(s,i),gr(s)||Yl(s)?this._onresponse(s):Ss(s)?this._onrequest(s,i):Jl(s)?this._onnotification(s):this._onerror(new Error(`Unknown message type: ${JSON.stringify(s)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let o of this._timeoutInfo.values())clearTimeout(o.timeoutId);this._timeoutInfo.clear();for(let o of this._requestHandlerAbortControllers.values())o.abort();this._requestHandlerAbortControllers.clear();let r=O.fromError(C.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let o of e.values())o(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(o=>this._onerror(new Error(`Uncaught error in notification handler: ${o}`)))}_onrequest(e,r){let o=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,n=this._transport,s=e.params?._meta?.[rt]?.taskId;if(o===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:C.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},n?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):n?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let i=new AbortController;this._requestHandlerAbortControllers.set(e.id,i);let a=Kl(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,n?.sessionId):void 0,u={signal:i.signal,sessionId:n?.sessionId,_meta:e.params?._meta,sendNotification:async l=>{if(i.signal.aborted)return;let d={relatedRequestId:e.id};s&&(d.relatedTask={taskId:s}),await this.notification(l,d)},sendRequest:async(l,d,p)=>{if(i.signal.aborted)throw new O(C.ConnectionClosed,"Request was cancelled");let m={...p,relatedRequestId:e.id};s&&!m.relatedTask&&(m.relatedTask={taskId:s});let g=m.relatedTask?.taskId??s;return g&&c&&await c.updateTaskStatus(g,"input_required"),await this.request(l,d,m)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:s,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>o(e,u)).then(async l=>{if(i.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:e.id};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"response",message:d,timestamp:Date.now()},n?.sessionId):await n?.send(d)},async l=>{if(i.signal.aborted)return;let d={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(l.code)?l.code:C.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"error",message:d,timestamp:Date.now()},n?.sessionId):await n?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===i&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...o}=e.params,n=Number(r),s=this._progressHandlers.get(n);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let i=this._responseHandlers.get(n),a=this._timeoutInfo.get(n);if(a&&i&&a.resetTimeoutOnProgress)try{this._resetTimeout(n)}catch(c){this._responseHandlers.delete(n),this._progressHandlers.delete(n),this._cleanupTimeout(n),i(c);return}s(o)}_onresponse(e){let r=Number(e.id),o=this._requestResolvers.get(r);if(o){if(this._requestResolvers.delete(r),gr(e))o(e);else{let i=new O(e.error.code,e.error.message,e.error.data);o(i)}return}let n=this._responseHandlers.get(r);if(n===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let s=!1;if(gr(e)&&e.result&&typeof e.result=="object"){let i=e.result;if(i.task&&typeof i.task=="object"){let a=i.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,r))}}if(s||this._progressHandlers.delete(r),gr(e))n(e);else{let i=O.fromError(e.error.code,e.error.message,e.error.data);n(i)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,o){let{task:n}=o??{};if(!n){try{yield{type:"result",result:await this.request(e,r,o)}}catch(i){yield{type:"error",error:i instanceof O?i:new O(C.InternalError,String(i))}}return}let s;try{let i=await this.request(e,Nt,o);if(i.task)s=i.task.taskId,yield{type:"taskCreated",task:i.task};else throw new O(C.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},o);if(yield{type:"taskStatus",task:a},ot(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},r,o)}:a.status==="failed"?yield{type:"error",error:new O(C.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new O(C.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},r,o)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),o?.signal?.throwIfAborted()}}catch(i){yield{type:"error",error:i instanceof O?i:new O(C.InternalError,String(i))}}}request(e,r,o){let{relatedRequestId:n,resumptionToken:s,onresumptiontoken:i,task:a,relatedTask:c}=o??{};return new Promise((u,l)=>{let d=b=>{l(b)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch(b){d(b);return}o?.signal?.throwIfAborted();let p=this._requestMessageId++,m={...e,jsonrpc:"2.0",id:p};o?.onprogress&&(this._progressHandlers.set(p,o.onprogress),m.params={...e.params,_meta:{...e.params?._meta||{},progressToken:p}}),a&&(m.params={...m.params,task:a}),c&&(m.params={...m.params,_meta:{...m.params?._meta||{},[rt]:c}});let g=b=>{this._responseHandlers.delete(p),this._progressHandlers.delete(p),this._cleanupTimeout(p),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:p,reason:String(b)}},{relatedRequestId:n,resumptionToken:s,onresumptiontoken:i}).catch(E=>this._onerror(new Error(`Failed to send cancellation: ${E}`)));let $=b instanceof O?b:new O(C.RequestTimeout,String(b));l($)};this._responseHandlers.set(p,b=>{if(!o?.signal?.aborted){if(b instanceof Error)return l(b);try{let $=tt(r,b.result);$.success?u($.data):l($.error)}catch($){l($)}}}),o?.signal?.addEventListener("abort",()=>{g(o?.signal?.reason)});let _=o?.timeout??k_,y=()=>g(O.fromError(C.RequestTimeout,"Request timed out",{timeout:_}));this._setupTimeout(p,_,o?.maxTotalTimeout,y,o?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let b=$=>{let E=this._responseHandlers.get(p);E?E($):this._onerror(new Error(`Response handler missing for side-channeled request ${p}`))};this._requestResolvers.set(p,b),this._enqueueTaskMessage(v,{type:"request",message:m,timestamp:Date.now()}).catch($=>{this._cleanupTimeout(p),l($)})}else this._transport.send(m,{relatedRequestId:n,resumptionToken:s,onresumptiontoken:i}).catch(b=>{this._cleanupTimeout(p),l(b)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},Oo,r)}async getTaskResult(e,r,o){return this.request({method:"tasks/result",params:e},r,o)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},No,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},ed,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let o=r?.relatedTask?.taskId;if(o){let a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[rt]:r.relatedTask}}};await this._enqueueTaskMessage(o,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[rt]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let i={...e,jsonrpc:"2.0"};r?.relatedTask&&(i={...i,params:{...i.params,_meta:{...i.params?._meta||{},[rt]:r.relatedTask}}}),await this._transport.send(i,r)}setRequestHandler(e,r){let o=Ls(e);this.assertRequestHandlerCapability(o),this._requestHandlers.set(o,(n,s)=>{let i=js(e,n);return Promise.resolve(r(i,s))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let o=Ls(e);this._notificationHandlers.set(o,n=>{let s=js(e,n);return Promise.resolve(r(s))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,o){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let n=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,o,n)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let o=await this._taskMessageQueue.dequeueAll(e,r);for(let n of o)if(n.type==="request"&&Ss(n.message)){let s=n.message.id,i=this._requestResolvers.get(s);i?(i(new O(C.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let o=this._options?.defaultTaskPollInterval??1e3;try{let n=await this._taskStore?.getTask(e);n?.pollInterval&&(o=n.pollInterval)}catch{}return new Promise((n,s)=>{if(r.aborted){s(new O(C.InvalidRequest,"Request cancelled"));return}let i=setTimeout(n,o);r.addEventListener("abort",()=>{clearTimeout(i),s(new O(C.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let o=this._taskStore;if(!o)throw new Error("No task store configured");return{createTask:async n=>{if(!e)throw new Error("No request provided");return await o.createTask(n,e.id,{method:e.method,params:e.params},r)},getTask:async n=>{let s=await o.getTask(n,r);if(!s)throw new O(C.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(n,s,i)=>{await o.storeTaskResult(n,s,i,r);let a=await o.getTask(n,r);if(a){let c=br.parse({method:"notifications/tasks/status",params:a});await this.notification(c),ot(a.status)&&this._cleanupTaskProgressHandler(n)}},getTaskResult:n=>o.getTaskResult(n,r),updateTaskStatus:async(n,s,i)=>{let a=await o.getTask(n,r);if(!a)throw new O(C.InvalidParams,`Task "${n}" not found - it may have been cleaned up`);if(ot(a.status))throw new O(C.InvalidParams,`Cannot update task "${n}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await o.updateTaskStatus(n,s,i,r);let c=await o.getTask(n,r);if(c){let u=br.parse({method:"notifications/tasks/status",params:c});await this.notification(u),ot(c.status)&&this._cleanupTaskProgressHandler(n)}},listTasks:n=>o.listTasks(n,r)}}};function id(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function ad(t,e){let r={...t};for(let o in e){let n=o,s=e[n];if(s===void 0)continue;let i=r[n];id(i)&&id(s)?r[n]={...i,...s}:r[n]=s}return r}var Qf=oo(xa(),1),em=oo(Xf(),1);function OS(){let t=new Qf.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,em.default)(t),t}var yn=class{constructor(e){this._ajv=e??OS()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return o=>r(o)?{valid:!0,data:o,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var vn=class{constructor(e){this._server=e}requestStream(e,r,o){return this._server.requestStream(e,r,o)}createMessageStream(e,r){let o=this._server.getClientCapabilities();if((e.tools||e.toolChoice)&&!o?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let n=e.messages[e.messages.length-1],s=Array.isArray(n.content)?n.content:[n.content],i=s.some(l=>l.type==="tool_result"),a=e.messages.length>1?e.messages[e.messages.length-2]:void 0,c=a?Array.isArray(a.content)?a.content:[a.content]:[],u=c.some(l=>l.type==="tool_use");if(i){if(s.some(l=>l.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!u)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(u){let l=new Set(c.filter(p=>p.type==="tool_use").map(p=>p.id)),d=new Set(s.filter(p=>p.type==="tool_result").map(p=>p.toolUseId));if(l.size!==d.size||![...l].every(p=>d.has(p)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:e},zr,r)}elicitInputStream(e,r){let o=this._server.getClientCapabilities(),n=e.mode??"form";switch(n){case"url":{if(!o?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!o?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let s=n==="form"&&e.mode===void 0?{...e,mode:"form"}:e;return this.requestStream({method:"elicitation/create",params:s},Ct,r)}async getTask(e,r){return this._server.getTask({taskId:e},r)}async getTaskResult(e,r,o){return this._server.getTaskResult({taskId:e},r,o)}async listTasks(e,r){return this._server.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._server.cancelTask({taskId:e},r)}};function tm(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function rm(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}var $n=class extends Do{constructor(e,r){super(r),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(xr.options.map((o,n)=>[o,n])),this.isMessageIgnored=(o,n)=>{let s=this._loggingLevels.get(n);return s?this.LOG_LEVEL_SEVERITY.get(o)this._oninitialize(o)),this.setNotificationHandler(Es,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(As,async(o,n)=>{let s=n.sessionId||n.requestInfo?.headers["mcp-session-id"]||void 0,{level:i}=o.params,a=xr.safeParse(i);return a.success&&this._loggingLevels.set(s,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new vn(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=ad(this._capabilities,e)}setRequestHandler(e,r){let n=vo(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let s;if(It(n)){let a=n;s=a._zod?.def?.value??a.value}else{let a=n;s=a._def?.value??a.value}if(typeof s!="string")throw new Error("Schema method literal must be a string");if(s==="tools/call"){let a=async(c,u)=>{let l=tt(wr,c);if(!l.success){let g=l.error instanceof Error?l.error.message:String(l.error);throw new O(C.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:d}=l.data,p=await Promise.resolve(r(c,u));if(d.task){let g=tt(Nt,p);if(!g.success){let _=g.error instanceof Error?g.error.message:String(g.error);throw new O(C.InvalidParams,`Invalid task creation result: ${_}`)}return g.data}let m=tt(Co,p);if(!m.success){let g=m.error instanceof Error?m.error.message:String(m.error);throw new O(C.InvalidParams,`Invalid tools/call result: ${g}`)}return m.data};return super.setRequestHandler(e,a)}return super.setRequestHandler(e,r)}assertCapabilityForMethod(e){switch(e){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${e})`);break;case"ping":case"initialize":break}}assertTaskCapability(e){rm(this._clientCapabilities?.tasks?.requests,e,"Client")}assertTaskHandlerCapability(e){this._capabilities&&tm(this._capabilities.tasks?.requests,e,"Server")}async _oninitialize(e){let r=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:Vl.includes(r)?r:$s,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},zo)}async createMessage(e,r){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let o=e.messages[e.messages.length-1],n=Array.isArray(o.content)?o.content:[o.content],s=n.some(u=>u.type==="tool_result"),i=e.messages.length>1?e.messages[e.messages.length-2]:void 0,a=i?Array.isArray(i.content)?i.content:[i.content]:[],c=a.some(u=>u.type==="tool_use");if(s){if(n.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!c)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(c){let u=new Set(a.filter(d=>d.type==="tool_use").map(d=>d.id)),l=new Set(n.filter(d=>d.type==="tool_result").map(d=>d.toolUseId));if(u.size!==l.size||![...u].every(d=>l.has(d)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return e.tools?this.request({method:"sampling/createMessage",params:e},Cs,r):this.request({method:"sampling/createMessage",params:e},zr,r)}async elicitInput(e,r){switch(e.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let n=e;return this.request({method:"elicitation/create",params:n},Ct,r)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let n=e.mode==="form"?e:{...e,mode:"form"},s=await this.request({method:"elicitation/create",params:n},Ct,r);if(s.action==="accept"&&s.content&&n.requestedSchema)try{let a=this._jsonSchemaValidator.getValidator(n.requestedSchema)(s.content);if(!a.valid)throw new O(C.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(i){throw i instanceof O?i:new O(C.InternalError,`Error validating elicitation response: ${i instanceof Error?i.message:String(i)}`)}return s}}}createElicitationCompletionNotifier(e,r){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:e}},r)}async listRoots(e,r){return this.request({method:"roots/list",params:e},Ds,r)}async sendLoggingMessage(e,r){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,r))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};var Ra=oo(require("node:process"),1);var bn=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` `);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),IS(r)}clear(){this._buffer=void 0}};function IS(t){return Xl.parse(JSON.parse(t))}function om(t){return JSON.stringify(t)+` -`}var Sn=class{constructor(e=Ra.default.stdin,r=Ra.default.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new bn,this._started=!1,this._ondata=o=>{this._readBuffer.append(o),this.processReadBuffer()},this._onerror=o=>{this.onerror?.(o)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(e){return new Promise(r=>{let o=om(e);this._stdout.write(o)?r():this._stdout.once("drain",r)})}};var Na=oo(require("path"),1);var Ze=require("fs"),wn=require("path"),im=require("os");var nm="bugfix,feature,refactor,discovery,decision,change",sm="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var Et=class{static DEFAULTS={CLAUDE_PILOT_MODEL:"haiku",CLAUDE_PILOT_CONTEXT_OBSERVATIONS:"50",CLAUDE_PILOT_WORKER_PORT:"41777",CLAUDE_PILOT_WORKER_HOST:"127.0.0.1",CLAUDE_PILOT_WORKER_BIND:"127.0.0.1",CLAUDE_PILOT_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_PILOT_DATA_DIR:(0,wn.join)((0,im.homedir)(),".pilot/memory"),CLAUDE_PILOT_LOG_LEVEL:"INFO",CLAUDE_PILOT_PYTHON_VERSION:"3.12",CLAUDE_CODE_PATH:"",CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT:!1,CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES:nm,CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS:sm,CLAUDE_PILOT_CONTEXT_FULL_COUNT:"10",CLAUDE_PILOT_CONTEXT_FULL_FIELD:"facts",CLAUDE_PILOT_CONTEXT_SESSION_COUNT:"10",CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY:!0,CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE:!0,CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED:!1,CLAUDE_PILOT_FOLDER_MD_EXCLUDE:"[]",CLAUDE_PILOT_CHROMA_ENABLED:!0,CLAUDE_PILOT_VECTOR_DB:"chroma",CLAUDE_PILOT_EMBEDDING_MODEL:"Xenova/all-MiniLM-L6-v2",CLAUDE_PILOT_EXCLUDE_PROJECTS:"[]",CLAUDE_PILOT_REMOTE_TOKEN:"",CLAUDE_PILOT_RETENTION_ENABLED:!0,CLAUDE_PILOT_RETENTION_MAX_AGE_DAYS:"31",CLAUDE_PILOT_RETENTION_MAX_COUNT:"5000",CLAUDE_PILOT_RETENTION_EXCLUDE_TYPES:'["summary"]',CLAUDE_PILOT_RETENTION_SOFT_DELETE:!1,CLAUDE_PILOT_BATCH_SIZE:"5",CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB:"2048",CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB:"51200"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,Ze.existsSync)(e)){let c=this.getAllDefaults();try{let u=(0,wn.dirname)(e);(0,Ze.existsSync)(u)||(0,Ze.mkdirSync)(u,{recursive:!0}),(0,Ze.writeFileSync)(e,JSON.stringify(c,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(u){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,u)}return c}let r=(0,Ze.readFileSync)(e,"utf-8"),o=JSON.parse(r),n=o;if(o.env&&typeof o.env=="object"){n=o.env;try{(0,Ze.writeFileSync)(e,JSON.stringify(n,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,c)}}let s=["CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE","CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED","CLAUDE_PILOT_CHROMA_ENABLED","CLAUDE_PILOT_RETENTION_ENABLED","CLAUDE_PILOT_RETENTION_SOFT_DELETE"],i={...this.DEFAULTS},a=!1;for(let c of Object.keys(this.DEFAULTS))if(n[c]!==void 0)if(s.includes(c)){let u=n[c];typeof u=="string"?(i[c]=u==="true",a=!0):i[c]=u}else i[c]=n[c];if(a)try{(0,Ze.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Migrated boolean settings from strings to actual booleans:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate boolean settings:",e,c)}return i}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.getAllDefaults()}}};var xn=null,zn=null;function am(){if(xn!==null)return xn;let t=Na.default.join(Et.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=Et.loadFromFile(t);return xn=parseInt(e.CLAUDE_PILOT_WORKER_PORT,10),xn}function cm(){if(zn!==null)return zn;let t=Na.default.join(Et.get("CLAUDE_PILOT_DATA_DIR"),"settings.json");return zn=Et.loadFromFile(t).CLAUDE_PILOT_WORKER_HOST,zn}var RS="8.10.4";console.log=(...t)=>{se.error("CONSOLE","Intercepted console output (MCP protocol protection)",void 0,{args:t})};var NS=am(),AS=cm(),ro=`http://${AS}:${NS}`,um={search:"/api/search",timeline:"/api/timeline"};async function lm(t,e){se.debug("SYSTEM","\u2192 Worker API",void 0,{endpoint:t,params:e});try{let r=new URLSearchParams;for(let[i,a]of Object.entries(e))a!=null&&r.append(i,String(a));let o=`${ro}${t}?${r}`,n=await fetch(o);if(!n.ok){let i=await n.text();throw new Error(`Worker API error (${n.status}): ${i}`)}let s=await n.json();return se.debug("SYSTEM","\u2190 Worker API success",void 0,{endpoint:t}),s}catch(r){return se.error("SYSTEM","\u2190 Worker API error",{endpoint:t},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function dm(t,e){se.debug("HTTP","Worker API request (POST)",void 0,{endpoint:t});try{let r=`${ro}${t}`,o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!o.ok){let s=await o.text();throw new Error(`Worker API error (${o.status}): ${s}`)}let n=await o.json();return se.debug("HTTP","Worker API success (POST)",void 0,{endpoint:t}),{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}catch(r){return se.error("HTTP","Worker API error (POST)",{endpoint:t},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function CS(){try{return(await fetch(`${ro}/api/health`)).ok}catch(t){return se.debug("SYSTEM","Worker health check failed",{},t),!1}}var pm=[{name:"__IMPORTANT",description:`3-LAYER WORKFLOW (ALWAYS FOLLOW): +`}var Sn=class{constructor(e=Ra.default.stdin,r=Ra.default.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new bn,this._started=!1,this._ondata=o=>{this._readBuffer.append(o),this.processReadBuffer()},this._onerror=o=>{this.onerror?.(o)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(e){return new Promise(r=>{let o=om(e);this._stdout.write(o)?r():this._stdout.once("drain",r)})}};var Na=oo(require("path"),1);var Ze=require("fs"),wn=require("path"),im=require("os");var nm="bugfix,feature,refactor,discovery,decision,change",sm="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var Et=class{static DEFAULTS={CLAUDE_PILOT_MODEL:"haiku",CLAUDE_PILOT_CONTEXT_OBSERVATIONS:"50",CLAUDE_PILOT_WORKER_PORT:"41777",CLAUDE_PILOT_WORKER_HOST:"127.0.0.1",CLAUDE_PILOT_WORKER_BIND:"127.0.0.1",CLAUDE_PILOT_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_PILOT_DATA_DIR:(0,wn.join)((0,im.homedir)(),".pilot/memory"),CLAUDE_PILOT_LOG_LEVEL:"INFO",CLAUDE_PILOT_PYTHON_VERSION:"3.12",CLAUDE_CODE_PATH:"",CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT:!1,CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES:nm,CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS:sm,CLAUDE_PILOT_CONTEXT_FULL_COUNT:"10",CLAUDE_PILOT_CONTEXT_FULL_FIELD:"facts",CLAUDE_PILOT_CONTEXT_SESSION_COUNT:"10",CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY:!0,CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE:!0,CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED:!1,CLAUDE_PILOT_FOLDER_MD_EXCLUDE:"[]",CLAUDE_PILOT_CHROMA_ENABLED:!0,CLAUDE_PILOT_VECTOR_DB:"chroma",CLAUDE_PILOT_EMBEDDING_MODEL:"Xenova/all-MiniLM-L6-v2",CLAUDE_PILOT_EXCLUDE_PROJECTS:"[]",CLAUDE_PILOT_REMOTE_TOKEN:"",CLAUDE_PILOT_RETENTION_ENABLED:!0,CLAUDE_PILOT_RETENTION_MAX_AGE_DAYS:"31",CLAUDE_PILOT_RETENTION_MAX_COUNT:"5000",CLAUDE_PILOT_RETENTION_EXCLUDE_TYPES:'["summary"]',CLAUDE_PILOT_RETENTION_SOFT_DELETE:!1,CLAUDE_PILOT_BATCH_SIZE:"5",CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB:"2048",CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB:"51200"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,Ze.existsSync)(e)){let c=this.getAllDefaults();try{let u=(0,wn.dirname)(e);(0,Ze.existsSync)(u)||(0,Ze.mkdirSync)(u,{recursive:!0}),(0,Ze.writeFileSync)(e,JSON.stringify(c,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(u){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,u)}return c}let r=(0,Ze.readFileSync)(e,"utf-8"),o=JSON.parse(r),n=o;if(o.env&&typeof o.env=="object"){n=o.env;try{(0,Ze.writeFileSync)(e,JSON.stringify(n,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,c)}}let s=["CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE","CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED","CLAUDE_PILOT_CHROMA_ENABLED","CLAUDE_PILOT_RETENTION_ENABLED","CLAUDE_PILOT_RETENTION_SOFT_DELETE"],i={...this.DEFAULTS},a=!1;for(let c of Object.keys(this.DEFAULTS))if(n[c]!==void 0)if(s.includes(c)){let u=n[c];typeof u=="string"?(i[c]=u==="true",a=!0):i[c]=u}else i[c]=n[c];if(a)try{(0,Ze.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Migrated boolean settings from strings to actual booleans:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate boolean settings:",e,c)}return i}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.getAllDefaults()}}};var xn=null,zn=null;function am(){if(xn!==null)return xn;let t=Na.default.join(Et.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=Et.loadFromFile(t);return xn=parseInt(e.CLAUDE_PILOT_WORKER_PORT,10),xn}function cm(){if(zn!==null)return zn;let t=Na.default.join(Et.get("CLAUDE_PILOT_DATA_DIR"),"settings.json");return zn=Et.loadFromFile(t).CLAUDE_PILOT_WORKER_HOST,zn}var RS="8.10.5";console.log=(...t)=>{se.error("CONSOLE","Intercepted console output (MCP protocol protection)",void 0,{args:t})};var NS=am(),AS=cm(),ro=`http://${AS}:${NS}`,um={search:"/api/search",timeline:"/api/timeline"};async function lm(t,e){se.debug("SYSTEM","\u2192 Worker API",void 0,{endpoint:t,params:e});try{let r=new URLSearchParams;for(let[i,a]of Object.entries(e))a!=null&&r.append(i,String(a));let o=`${ro}${t}?${r}`,n=await fetch(o);if(!n.ok){let i=await n.text();throw new Error(`Worker API error (${n.status}): ${i}`)}let s=await n.json();return se.debug("SYSTEM","\u2190 Worker API success",void 0,{endpoint:t}),s}catch(r){return se.error("SYSTEM","\u2190 Worker API error",{endpoint:t},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function dm(t,e){se.debug("HTTP","Worker API request (POST)",void 0,{endpoint:t});try{let r=`${ro}${t}`,o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!o.ok){let s=await o.text();throw new Error(`Worker API error (${o.status}): ${s}`)}let n=await o.json();return se.debug("HTTP","Worker API success (POST)",void 0,{endpoint:t}),{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}catch(r){return se.error("HTTP","Worker API error (POST)",{endpoint:t},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function CS(){try{return(await fetch(`${ro}/api/health`)).ok}catch(t){return se.debug("SYSTEM","Worker health check failed",{},t),!1}}var pm=[{name:"__IMPORTANT",description:`3-LAYER WORKFLOW (ALWAYS FOLLOW): 1. search(query) \u2192 Get index with IDs (~50-100 tokens/result) 2. timeline(anchor=ID) \u2192 Get context around interesting results 3. get_observations([IDs]) \u2192 Fetch full details ONLY for filtered IDs diff --git a/pilot/scripts/worker-service.cjs b/pilot/scripts/worker-service.cjs index fea79905..86234b67 100755 --- a/pilot/scripts/worker-service.cjs +++ b/pilot/scripts/worker-service.cjs @@ -1,53 +1,53 @@ #!/usr/bin/env bun -"use strict";var YG=Object.create;var Um=Object.defineProperty;var XG=Object.getOwnPropertyDescriptor;var eV=Object.getOwnPropertyNames;var tV=Object.getPrototypeOf,rV=Object.prototype.hasOwnProperty;var ye=(t,e)=>()=>(t&&(e=t(t=0)),e);var P=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),es=(t,e)=>{for(var r in e)Um(t,r,{get:e[r],enumerable:!0})},IP=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of eV(e))!rV.call(t,s)&&s!==r&&Um(t,s,{get:()=>e[s],enumerable:!(n=XG(e,s))||n.enumerable});return t};var Q=(t,e,r)=>(r=t!=null?YG(tV(t)):{},IP(e||!t||!t.__esModule?Um(r,"default",{value:t,enumerable:!0}):r,t)),Fl=t=>IP(Um({},"__esModule",{value:!0}),t);var CP,OP,AP=ye(()=>{"use strict";CP="bugfix,feature,refactor,discovery,decision,change",OP="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off"});var ts,qm,jP,Ae,Or=ye(()=>{"use strict";ts=require("fs"),qm=require("path"),jP=require("os");AP();Ae=class{static DEFAULTS={CLAUDE_PILOT_MODEL:"haiku",CLAUDE_PILOT_CONTEXT_OBSERVATIONS:"50",CLAUDE_PILOT_WORKER_PORT:"41777",CLAUDE_PILOT_WORKER_HOST:"127.0.0.1",CLAUDE_PILOT_WORKER_BIND:"127.0.0.1",CLAUDE_PILOT_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_PILOT_DATA_DIR:(0,qm.join)((0,jP.homedir)(),".pilot/memory"),CLAUDE_PILOT_LOG_LEVEL:"INFO",CLAUDE_PILOT_PYTHON_VERSION:"3.12",CLAUDE_CODE_PATH:"",CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT:!1,CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES:CP,CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS:OP,CLAUDE_PILOT_CONTEXT_FULL_COUNT:"10",CLAUDE_PILOT_CONTEXT_FULL_FIELD:"facts",CLAUDE_PILOT_CONTEXT_SESSION_COUNT:"10",CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY:!0,CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE:!0,CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED:!1,CLAUDE_PILOT_FOLDER_MD_EXCLUDE:"[]",CLAUDE_PILOT_CHROMA_ENABLED:!0,CLAUDE_PILOT_VECTOR_DB:"chroma",CLAUDE_PILOT_EMBEDDING_MODEL:"Xenova/all-MiniLM-L6-v2",CLAUDE_PILOT_EXCLUDE_PROJECTS:"[]",CLAUDE_PILOT_REMOTE_TOKEN:"",CLAUDE_PILOT_RETENTION_ENABLED:!0,CLAUDE_PILOT_RETENTION_MAX_AGE_DAYS:"31",CLAUDE_PILOT_RETENTION_MAX_COUNT:"5000",CLAUDE_PILOT_RETENTION_EXCLUDE_TYPES:'["summary"]',CLAUDE_PILOT_RETENTION_SOFT_DELETE:!1,CLAUDE_PILOT_BATCH_SIZE:"5",CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB:"2048",CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB:"51200"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,ts.existsSync)(e)){let c=this.getAllDefaults();try{let l=(0,qm.dirname)(e);(0,ts.existsSync)(l)||(0,ts.mkdirSync)(l,{recursive:!0}),(0,ts.writeFileSync)(e,JSON.stringify(c,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(l){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,l)}return c}let r=(0,ts.readFileSync)(e,"utf-8"),n=JSON.parse(r),s=n;if(n.env&&typeof n.env=="object"){s=n.env;try{(0,ts.writeFileSync)(e,JSON.stringify(s,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,c)}}let i=["CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE","CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED","CLAUDE_PILOT_CHROMA_ENABLED","CLAUDE_PILOT_RETENTION_ENABLED","CLAUDE_PILOT_RETENTION_SOFT_DELETE"],a={...this.DEFAULTS},o=!1;for(let c of Object.keys(this.DEFAULTS))if(s[c]!==void 0)if(i.includes(c)){let l=s[c];typeof l=="string"?(a[c]=l==="true",o=!0):a[c]=l}else a[c]=s[c];if(o)try{(0,ts.writeFileSync)(e,JSON.stringify(a,null,2),"utf-8"),console.log("[SETTINGS] Migrated boolean settings from strings to actual booleans:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate boolean settings:",e,c)}return a}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.getAllDefaults()}}}});var FP={};es(FP,{ARCHIVES_DIR:()=>ax,BACKUPS_DIR:()=>LP,CLAUDE_CONFIG_DIR:()=>Bl,CLAUDE_CREDENTIALS_PATH:()=>ox,CLAUDE_MD_PATH:()=>aV,CLAUDE_SETTINGS_PATH:()=>iV,DATA_DIR:()=>nn,DB_PATH:()=>Wl,LOGS_DIR:()=>zP,MARKETPLACE_ROOT:()=>oV,MODES_DIR:()=>UP,PLUGINS_DIR:()=>qP,TRASH_DIR:()=>$P,USER_SETTINGS_PATH:()=>Ht,VECTOR_DB_DIR:()=>Zl,ensureAllDataDirs:()=>lV,ensureDir:()=>rs,getCurrentProjectName:()=>uV,getPackageRoot:()=>la,getProjectArchiveDir:()=>cV,getVersion:()=>To,resolveGitRoot:()=>zr});function nV(){return typeof __dirname<"u"?__dirname:(0,Nt.dirname)((0,MP.fileURLToPath)(pV.url))}function cV(t){return(0,Nt.join)(ax,t)}function rs(t){(0,Eo.mkdirSync)(t,{recursive:!0})}function lV(){rs(nn),rs(ax),rs(zP),rs($P),rs(LP),rs(UP)}function zr(t){try{return(0,DP.execSync)("git rev-parse --show-toplevel",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0,timeout:3e3}).trim()||t}catch{return t}}function uV(){return(0,Nt.basename)(zr(process.cwd()))}function la(){return(0,Nt.join)(sV,"..")}function To(){if(Hl)return Hl;let t=la(),e=[(0,Nt.join)(t,"package.json"),(0,Nt.join)(t,".claude-plugin","plugin.json"),(0,Nt.join)(t,"..","package.json")];for(let r of e)try{if((0,Eo.existsSync)(r)){let n=JSON.parse((0,Eo.readFileSync)(r,"utf-8"));if(n.version)return Hl=n.version,n.version}}catch{}return Hl=`0.0.0-${Date.now()}`,Hl}var Nt,NP,Eo,DP,MP,pV,Hl,sV,nn,Bl,ax,zP,$P,LP,UP,Ht,Wl,Zl,iV,aV,ox,qP,oV,er=ye(()=>{"use strict";Nt=require("path"),NP=require("os"),Eo=require("fs"),DP=require("child_process"),MP=require("url");Or();pV={},Hl=null;sV=nV(),nn=Ae.get("CLAUDE_PILOT_DATA_DIR"),Bl=process.env.CLAUDE_CONFIG_DIR||(0,Nt.join)((0,NP.homedir)(),".claude"),ax=(0,Nt.join)(nn,"archives"),zP=(0,Nt.join)(nn,"logs"),$P=(0,Nt.join)(nn,"trash"),LP=(0,Nt.join)(nn,"backups"),UP=(0,Nt.join)(nn,"modes"),Ht=(0,Nt.join)(nn,"settings.json"),Wl=(0,Nt.join)(nn,"pilot-memory.db"),Zl=(0,Nt.join)(nn,"vector-db"),iV=(0,Nt.join)(Bl,"settings.json"),aV=(0,Nt.join)(Bl,"CLAUDE.md"),ox=(0,Nt.join)(Bl,".credentials.json"),qP=(0,Nt.join)(Bl,"plugins"),oV=(0,Nt.join)(qP,"marketplaces","pilot")});var vu=P(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.regexpCode=Xe.getEsmExportName=Xe.getProperty=Xe.safeStringify=Xe.stringify=Xe.strConcat=Xe.addCodeArg=Xe.str=Xe._=Xe.nil=Xe._Code=Xe.Name=Xe.IDENTIFIER=Xe._CodeOrName=void 0;var hu=class{};Xe._CodeOrName=hu;Xe.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var ha=class extends hu{constructor(e){if(super(),!Xe.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Xe.Name=ha;var Dn=class extends hu{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof ha&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Xe._Code=Dn;Xe.nil=new Dn("");function mA(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(on,"__esModule",{value:!0});on.ValueScope=on.ValueScopeName=on.Scope=on.varKinds=on.UsedValueState=void 0;var an=vu(),P_=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},bf;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(bf||(on.UsedValueState=bf={}));on.varKinds={const:new an.Name("const"),let:new an.Name("let"),var:new an.Name("var")};var xf=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof an.Name?e:this.name(e)}name(e){return new an.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};on.Scope=xf;var _f=class extends an.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,an._)`.${new an.Name(r)}[${n}]`}};on.ValueScopeName=_f;var xJ=(0,an._)`\n`,I_=class extends xf{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?xJ:an.nil}}get(){return this._scope}name(e){return new _f(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let s=this.toName(e),{prefix:i}=s,a=(n=r.key)!==null&&n!==void 0?n:r.ref,o=this._values[i];if(o){let u=o.get(a);if(u)return u}else o=this._values[i]=new Map;o.set(a,s);let c=this._scope[i]||(this._scope[i]=[]),l=c.length;return c[l]=r.ref,s.setValue(r,{property:i,itemIndex:l}),s}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,an._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,s=>{if(s.value===void 0)throw new Error(`CodeGen: name "${s}" has no value`);return s.value.code},r,n)}_reduceValues(e,r,n={},s){let i=an.nil;for(let a in e){let o=e[a];if(!o)continue;let c=n[a]=n[a]||new Map;o.forEach(l=>{if(c.has(l))return;c.set(l,bf.Started);let u=r(l);if(u){let p=this.opts.es5?on.varKinds.var:on.varKinds.const;i=(0,an._)`${i}${p} ${l} = ${u};${this.opts._n}`}else if(u=s?.(l))i=(0,an._)`${i}${u}${this.opts._n}`;else throw new P_(l);c.set(l,bf.Completed)})}return i}};on.ValueScope=I_});var je=P(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.or=Ne.and=Ne.not=Ne.CodeGen=Ne.operators=Ne.varKinds=Ne.ValueScopeName=Ne.ValueScope=Ne.Scope=Ne.Name=Ne.regexpCode=Ne.stringify=Ne.getProperty=Ne.nil=Ne.strConcat=Ne.str=Ne._=void 0;var Ge=vu(),is=C_(),Si=vu();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return Si._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return Si.str}});Object.defineProperty(Ne,"strConcat",{enumerable:!0,get:function(){return Si.strConcat}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return Si.nil}});Object.defineProperty(Ne,"getProperty",{enumerable:!0,get:function(){return Si.getProperty}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return Si.stringify}});Object.defineProperty(Ne,"regexpCode",{enumerable:!0,get:function(){return Si.regexpCode}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return Si.Name}});var Ef=C_();Object.defineProperty(Ne,"Scope",{enumerable:!0,get:function(){return Ef.Scope}});Object.defineProperty(Ne,"ValueScope",{enumerable:!0,get:function(){return Ef.ValueScope}});Object.defineProperty(Ne,"ValueScopeName",{enumerable:!0,get:function(){return Ef.ValueScopeName}});Object.defineProperty(Ne,"varKinds",{enumerable:!0,get:function(){return Ef.varKinds}});Ne.operators={GT:new Ge._Code(">"),GTE:new Ge._Code(">="),LT:new Ge._Code("<"),LTE:new Ge._Code("<="),EQ:new Ge._Code("==="),NEQ:new Ge._Code("!=="),NOT:new Ge._Code("!"),OR:new Ge._Code("||"),AND:new Ge._Code("&&"),ADD:new Ge._Code("+")};var Js=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},O_=class extends Js{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?is.varKinds.var:this.varKind,s=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${s};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=Do(this.rhs,e,r)),this}get names(){return this.rhs instanceof Ge._CodeOrName?this.rhs.names:{}}},wf=class extends Js{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof Ge.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Do(this.rhs,e,r),this}get names(){let e=this.lhs instanceof Ge.Name?{}:{...this.lhs.names};return kf(e,this.rhs)}},A_=class extends wf{constructor(e,r,n,s){super(e,n,s),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},j_=class extends Js{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},N_=class extends Js{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},D_=class extends Js{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},M_=class extends Js{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=Do(this.code,e,r),this}get names(){return this.code instanceof Ge._CodeOrName?this.code.names:{}}},yu=class extends Js{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,s=n.length;for(;s--;){let i=n[s];i.optimizeNames(e,r)||(_J(e,i.names),n.splice(s,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>ya(e,r.names),{})}},Qs=class extends yu{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},z_=class extends yu{},No=class extends Qs{};No.kind="else";var ga=class t extends Qs{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new No(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(hA(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=Do(this.condition,e,r),this}get names(){let e=super.names;return kf(e,this.condition),this.else&&ya(e,this.else.names),e}};ga.kind="if";var va=class extends Qs{};va.kind="for";var $_=class extends va{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=Do(this.iteration,e,r),this}get names(){return ya(super.names,this.iteration.names)}},L_=class extends va{constructor(e,r,n,s){super(),this.varKind=e,this.name=r,this.from=n,this.to=s}render(e){let r=e.es5?is.varKinds.var:this.varKind,{name:n,from:s,to:i}=this;return`for(${r} ${n}=${s}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=kf(super.names,this.from);return kf(e,this.to)}},Sf=class extends va{constructor(e,r,n,s){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=s}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=Do(this.iterable,e,r),this}get names(){return ya(super.names,this.iterable.names)}},bu=class extends Qs{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};bu.kind="func";var xu=class extends yu{render(e){return"return "+super.render(e)}};xu.kind="return";var U_=class extends Qs{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,s;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(s=this.finally)===null||s===void 0||s.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&ya(e,this.catch.names),this.finally&&ya(e,this.finally.names),e}},_u=class extends Qs{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};_u.kind="catch";var wu=class extends Qs{render(e){return"finally"+super.render(e)}};wu.kind="finally";var q_=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` -`:""},this._extScope=e,this._scope=new is.Scope({parent:e}),this._nodes=[new z_]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,s){let i=this._scope.toName(r);return n!==void 0&&s&&(this._constants[i.str]=n),this._leafNode(new O_(e,i,n)),i}const(e,r,n){return this._def(is.varKinds.const,e,r,n)}let(e,r,n){return this._def(is.varKinds.let,e,r,n)}var(e,r,n){return this._def(is.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new wf(e,r,n))}add(e,r){return this._leafNode(new A_(e,Ne.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==Ge.nil&&this._leafNode(new M_(e)),this}object(...e){let r=["{"];for(let[n,s]of e)r.length>1&&r.push(","),r.push(n),(n!==s||this.opts.es5)&&(r.push(":"),(0,Ge.addCodeArg)(r,s));return r.push("}"),new Ge._Code(r)}if(e,r,n){if(this._blockNode(new ga(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new ga(e))}else(){return this._elseNode(new No)}endIf(){return this._endBlockNode(ga,No)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new $_(e),r)}forRange(e,r,n,s,i=this.opts.es5?is.varKinds.var:is.varKinds.let){let a=this._scope.toName(e);return this._for(new L_(i,a,r,n),()=>s(a))}forOf(e,r,n,s=is.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let a=r instanceof Ge.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,Ge._)`${a}.length`,o=>{this.var(i,(0,Ge._)`${a}[${o}]`),n(i)})}return this._for(new Sf("of",s,i,r),()=>n(i))}forIn(e,r,n,s=this.opts.es5?is.varKinds.var:is.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,Ge._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new Sf("in",s,i,r),()=>n(i))}endFor(){return this._endBlockNode(va)}label(e){return this._leafNode(new j_(e))}break(e){return this._leafNode(new N_(e))}return(e){let r=new xu;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(xu)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let s=new U_;if(this._blockNode(s),this.code(e),r){let i=this.name("e");this._currNode=s.catch=new _u(i),r(i)}return n&&(this._currNode=s.finally=new wu,this.code(n)),this._endBlockNode(_u,wu)}throw(e){return this._leafNode(new D_(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=Ge.nil,n,s){return this._blockNode(new bu(e,r,n)),s&&this.code(s).endFunc(),this}endFunc(){return this._endBlockNode(bu)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof ga))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};Ne.CodeGen=q_;function ya(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function kf(t,e){return e instanceof Ge._CodeOrName?ya(t,e.names):t}function Do(t,e,r){if(t instanceof Ge.Name)return n(t);if(!s(t))return t;return new Ge._Code(t._items.reduce((i,a)=>(a instanceof Ge.Name&&(a=n(a)),a instanceof Ge._Code?i.push(...a._items):i.push(a),i),[]));function n(i){let a=r[i.str];return a===void 0||e[i.str]!==1?i:(delete e[i.str],a)}function s(i){return i instanceof Ge._Code&&i._items.some(a=>a instanceof Ge.Name&&e[a.str]===1&&r[a.str]!==void 0)}}function _J(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function hA(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,Ge._)`!${F_(t)}`}Ne.not=hA;var wJ=gA(Ne.operators.AND);function SJ(...t){return t.reduce(wJ)}Ne.and=SJ;var kJ=gA(Ne.operators.OR);function EJ(...t){return t.reduce(kJ)}Ne.or=EJ;function gA(t){return(e,r)=>e===Ge.nil?r:r===Ge.nil?e:(0,Ge._)`${F_(e)} ${t} ${F_(r)}`}function F_(t){return t instanceof Ge.Name?t:(0,Ge._)`(${t})`}});var Ke=P(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.checkStrictMode=Ue.getErrorPath=Ue.Type=Ue.useFunc=Ue.setEvaluated=Ue.evaluatedPropsToName=Ue.mergeEvaluated=Ue.eachItem=Ue.unescapeJsonPointer=Ue.escapeJsonPointer=Ue.escapeFragment=Ue.unescapeFragment=Ue.schemaRefOrVal=Ue.schemaHasRulesButRef=Ue.schemaHasRules=Ue.checkUnknownRules=Ue.alwaysValidSchema=Ue.toHash=void 0;var bt=je(),TJ=vu();function RJ(t){let e={};for(let r of t)e[r]=!0;return e}Ue.toHash=RJ;function PJ(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(bA(t,e),!xA(e,t.self.RULES.all))}Ue.alwaysValidSchema=PJ;function bA(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let s=n.RULES.keywords;for(let i in e)s[i]||SA(t,`unknown keyword: "${i}"`)}Ue.checkUnknownRules=bA;function xA(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}Ue.schemaHasRules=xA;function IJ(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}Ue.schemaHasRulesButRef=IJ;function CJ({topSchemaRef:t,schemaPath:e},r,n,s){if(!s){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,bt._)`${r}`}return(0,bt._)`${t}${e}${(0,bt.getProperty)(n)}`}Ue.schemaRefOrVal=CJ;function OJ(t){return _A(decodeURIComponent(t))}Ue.unescapeFragment=OJ;function AJ(t){return encodeURIComponent(B_(t))}Ue.escapeFragment=AJ;function B_(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}Ue.escapeJsonPointer=B_;function _A(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}Ue.unescapeJsonPointer=_A;function jJ(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}Ue.eachItem=jJ;function vA({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(s,i,a,o)=>{let c=a===void 0?i:a instanceof bt.Name?(i instanceof bt.Name?t(s,i,a):e(s,i,a),a):i instanceof bt.Name?(e(s,a,i),i):r(i,a);return o===bt.Name&&!(c instanceof bt.Name)?n(s,c):c}}Ue.mergeEvaluated={props:vA({mergeNames:(t,e,r)=>t.if((0,bt._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,bt._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,bt._)`${r} || {}`).code((0,bt._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,bt._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,bt._)`${r} || {}`),W_(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:wA}),items:vA({mergeNames:(t,e,r)=>t.if((0,bt._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,bt._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,bt._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,bt._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function wA(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,bt._)`{}`);return e!==void 0&&W_(t,r,e),r}Ue.evaluatedPropsToName=wA;function W_(t,e,r){Object.keys(r).forEach(n=>t.assign((0,bt._)`${e}${(0,bt.getProperty)(n)}`,!0))}Ue.setEvaluated=W_;var yA={};function NJ(t,e){return t.scopeValue("func",{ref:e,code:yA[e.code]||(yA[e.code]=new TJ._Code(e.code))})}Ue.useFunc=NJ;var H_;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(H_||(Ue.Type=H_={}));function DJ(t,e,r){if(t instanceof bt.Name){let n=e===H_.Num;return r?n?(0,bt._)`"[" + ${t} + "]"`:(0,bt._)`"['" + ${t} + "']"`:n?(0,bt._)`"/" + ${t}`:(0,bt._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,bt.getProperty)(t).toString():"/"+B_(t)}Ue.getErrorPath=DJ;function SA(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}Ue.checkStrictMode=SA});var Ys=P(Z_=>{"use strict";Object.defineProperty(Z_,"__esModule",{value:!0});var jr=je(),MJ={data:new jr.Name("data"),valCxt:new jr.Name("valCxt"),instancePath:new jr.Name("instancePath"),parentData:new jr.Name("parentData"),parentDataProperty:new jr.Name("parentDataProperty"),rootData:new jr.Name("rootData"),dynamicAnchors:new jr.Name("dynamicAnchors"),vErrors:new jr.Name("vErrors"),errors:new jr.Name("errors"),this:new jr.Name("this"),self:new jr.Name("self"),scope:new jr.Name("scope"),json:new jr.Name("json"),jsonPos:new jr.Name("jsonPos"),jsonLen:new jr.Name("jsonLen"),jsonPart:new jr.Name("jsonPart")};Z_.default=MJ});var Su=P(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.extendErrors=Nr.resetErrorsCount=Nr.reportExtraError=Nr.reportError=Nr.keyword$DataError=Nr.keywordError=void 0;var Je=je(),Tf=Ke(),Lr=Ys();Nr.keywordError={message:({keyword:t})=>(0,Je.str)`must pass "${t}" keyword validation`};Nr.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,Je.str)`"${t}" keyword must be ${e} ($data)`:(0,Je.str)`"${t}" keyword is invalid ($data)`};function zJ(t,e=Nr.keywordError,r,n){let{it:s}=t,{gen:i,compositeRule:a,allErrors:o}=s,c=TA(t,e,r);n??(a||o)?kA(i,c):EA(s,(0,Je._)`[${c}]`)}Nr.reportError=zJ;function $J(t,e=Nr.keywordError,r){let{it:n}=t,{gen:s,compositeRule:i,allErrors:a}=n,o=TA(t,e,r);kA(s,o),i||a||EA(n,Lr.default.vErrors)}Nr.reportExtraError=$J;function LJ(t,e){t.assign(Lr.default.errors,e),t.if((0,Je._)`${Lr.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,Je._)`${Lr.default.vErrors}.length`,e),()=>t.assign(Lr.default.vErrors,null)))}Nr.resetErrorsCount=LJ;function UJ({gen:t,keyword:e,schemaValue:r,data:n,errsCount:s,it:i}){if(s===void 0)throw new Error("ajv implementation error");let a=t.name("err");t.forRange("i",s,Lr.default.errors,o=>{t.const(a,(0,Je._)`${Lr.default.vErrors}[${o}]`),t.if((0,Je._)`${a}.instancePath === undefined`,()=>t.assign((0,Je._)`${a}.instancePath`,(0,Je.strConcat)(Lr.default.instancePath,i.errorPath))),t.assign((0,Je._)`${a}.schemaPath`,(0,Je.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,Je._)`${a}.schema`,r),t.assign((0,Je._)`${a}.data`,n))})}Nr.extendErrors=UJ;function kA(t,e){let r=t.const("err",e);t.if((0,Je._)`${Lr.default.vErrors} === null`,()=>t.assign(Lr.default.vErrors,(0,Je._)`[${r}]`),(0,Je._)`${Lr.default.vErrors}.push(${r})`),t.code((0,Je._)`${Lr.default.errors}++`)}function EA(t,e){let{gen:r,validateName:n,schemaEnv:s}=t;s.$async?r.throw((0,Je._)`new ${t.ValidationError}(${e})`):(r.assign((0,Je._)`${n}.errors`,e),r.return(!1))}var ba={keyword:new Je.Name("keyword"),schemaPath:new Je.Name("schemaPath"),params:new Je.Name("params"),propertyName:new Je.Name("propertyName"),message:new Je.Name("message"),schema:new Je.Name("schema"),parentSchema:new Je.Name("parentSchema")};function TA(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,Je._)`{}`:qJ(t,e,r)}function qJ(t,e,r={}){let{gen:n,it:s}=t,i=[FJ(s,r),HJ(t,r)];return BJ(t,e,i),n.object(...i)}function FJ({errorPath:t},{instancePath:e}){let r=e?(0,Je.str)`${t}${(0,Tf.getErrorPath)(e,Tf.Type.Str)}`:t;return[Lr.default.instancePath,(0,Je.strConcat)(Lr.default.instancePath,r)]}function HJ({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let s=n?e:(0,Je.str)`${e}/${t}`;return r&&(s=(0,Je.str)`${s}${(0,Tf.getErrorPath)(r,Tf.Type.Str)}`),[ba.schemaPath,s]}function BJ(t,{params:e,message:r},n){let{keyword:s,data:i,schemaValue:a,it:o}=t,{opts:c,propertyName:l,topSchemaRef:u,schemaPath:p}=o;n.push([ba.keyword,s],[ba.params,typeof e=="function"?e(t):e||(0,Je._)`{}`]),c.messages&&n.push([ba.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([ba.schema,a],[ba.parentSchema,(0,Je._)`${u}${p}`],[Lr.default.data,i]),l&&n.push([ba.propertyName,l])}});var PA=P(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.boolOrEmptySchema=Mo.topBoolOrEmptySchema=void 0;var WJ=Su(),ZJ=je(),GJ=Ys(),VJ={message:"boolean schema is false"};function KJ(t){let{gen:e,schema:r,validateName:n}=t;r===!1?RA(t,!1):typeof r=="object"&&r.$async===!0?e.return(GJ.default.data):(e.assign((0,ZJ._)`${n}.errors`,null),e.return(!0))}Mo.topBoolOrEmptySchema=KJ;function JJ(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),RA(t)):r.var(e,!0)}Mo.boolOrEmptySchema=JJ;function RA(t,e){let{gen:r,data:n}=t,s={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,WJ.reportError)(s,VJ,void 0,e)}});var G_=P(zo=>{"use strict";Object.defineProperty(zo,"__esModule",{value:!0});zo.getRules=zo.isJSONType=void 0;var QJ=["string","number","integer","boolean","null","object","array"],YJ=new Set(QJ);function XJ(t){return typeof t=="string"&&YJ.has(t)}zo.isJSONType=XJ;function eQ(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}zo.getRules=eQ});var V_=P(ki=>{"use strict";Object.defineProperty(ki,"__esModule",{value:!0});ki.shouldUseRule=ki.shouldUseGroup=ki.schemaHasRulesForType=void 0;function tQ({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&IA(t,n)}ki.schemaHasRulesForType=tQ;function IA(t,e){return e.rules.some(r=>CA(t,r))}ki.shouldUseGroup=IA;function CA(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}ki.shouldUseRule=CA});var ku=P(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr.reportTypeError=Dr.checkDataTypes=Dr.checkDataType=Dr.coerceAndCheckDataType=Dr.getJSONTypes=Dr.getSchemaTypes=Dr.DataType=void 0;var rQ=G_(),nQ=V_(),sQ=Su(),Ce=je(),OA=Ke(),$o;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})($o||(Dr.DataType=$o={}));function iQ(t){let e=AA(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}Dr.getSchemaTypes=iQ;function AA(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(rQ.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Dr.getJSONTypes=AA;function aQ(t,e){let{gen:r,data:n,opts:s}=t,i=oQ(e,s.coerceTypes),a=e.length>0&&!(i.length===0&&e.length===1&&(0,nQ.schemaHasRulesForType)(t,e[0]));if(a){let o=J_(e,n,s.strictNumbers,$o.Wrong);r.if(o,()=>{i.length?cQ(t,e,i):Q_(t)})}return a}Dr.coerceAndCheckDataType=aQ;var jA=new Set(["string","number","integer","boolean","null"]);function oQ(t,e){return e?t.filter(r=>jA.has(r)||e==="array"&&r==="array"):[]}function cQ(t,e,r){let{gen:n,data:s,opts:i}=t,a=n.let("dataType",(0,Ce._)`typeof ${s}`),o=n.let("coerced",(0,Ce._)`undefined`);i.coerceTypes==="array"&&n.if((0,Ce._)`${a} == 'object' && Array.isArray(${s}) && ${s}.length == 1`,()=>n.assign(s,(0,Ce._)`${s}[0]`).assign(a,(0,Ce._)`typeof ${s}`).if(J_(e,s,i.strictNumbers),()=>n.assign(o,s))),n.if((0,Ce._)`${o} !== undefined`);for(let l of r)(jA.has(l)||l==="array"&&i.coerceTypes==="array")&&c(l);n.else(),Q_(t),n.endIf(),n.if((0,Ce._)`${o} !== undefined`,()=>{n.assign(s,o),lQ(t,o)});function c(l){switch(l){case"string":n.elseIf((0,Ce._)`${a} == "number" || ${a} == "boolean"`).assign(o,(0,Ce._)`"" + ${s}`).elseIf((0,Ce._)`${s} === null`).assign(o,(0,Ce._)`""`);return;case"number":n.elseIf((0,Ce._)`${a} == "boolean" || ${s} === null +"use strict";var ZG=Object.create;var $m=Object.defineProperty;var GG=Object.getOwnPropertyDescriptor;var VG=Object.getOwnPropertyNames;var KG=Object.getPrototypeOf,JG=Object.prototype.hasOwnProperty;var ye=(t,e)=>()=>(t&&(e=t(t=0)),e);var P=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),es=(t,e)=>{for(var r in e)$m(t,r,{get:e[r],enumerable:!0})},kP=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of VG(e))!JG.call(t,s)&&s!==r&&$m(t,s,{get:()=>e[s],enumerable:!(n=GG(e,s))||n.enumerable});return t};var Q=(t,e,r)=>(r=t!=null?ZG(KG(t)):{},kP(e||!t||!t.__esModule?$m(r,"default",{value:t,enumerable:!0}):r,t)),ql=t=>kP($m({},"__esModule",{value:!0}),t);var TP,RP,PP=ye(()=>{"use strict";TP="bugfix,feature,refactor,discovery,decision,change",RP="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off"});var ts,Lm,IP,Ae,Or=ye(()=>{"use strict";ts=require("fs"),Lm=require("path"),IP=require("os");PP();Ae=class{static DEFAULTS={CLAUDE_PILOT_MODEL:"haiku",CLAUDE_PILOT_CONTEXT_OBSERVATIONS:"50",CLAUDE_PILOT_WORKER_PORT:"41777",CLAUDE_PILOT_WORKER_HOST:"127.0.0.1",CLAUDE_PILOT_WORKER_BIND:"127.0.0.1",CLAUDE_PILOT_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_PILOT_DATA_DIR:(0,Lm.join)((0,IP.homedir)(),".pilot/memory"),CLAUDE_PILOT_LOG_LEVEL:"INFO",CLAUDE_PILOT_PYTHON_VERSION:"3.12",CLAUDE_CODE_PATH:"",CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT:!1,CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES:TP,CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS:RP,CLAUDE_PILOT_CONTEXT_FULL_COUNT:"10",CLAUDE_PILOT_CONTEXT_FULL_FIELD:"facts",CLAUDE_PILOT_CONTEXT_SESSION_COUNT:"10",CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY:!0,CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE:!0,CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED:!1,CLAUDE_PILOT_FOLDER_MD_EXCLUDE:"[]",CLAUDE_PILOT_CHROMA_ENABLED:!0,CLAUDE_PILOT_VECTOR_DB:"chroma",CLAUDE_PILOT_EMBEDDING_MODEL:"Xenova/all-MiniLM-L6-v2",CLAUDE_PILOT_EXCLUDE_PROJECTS:"[]",CLAUDE_PILOT_REMOTE_TOKEN:"",CLAUDE_PILOT_RETENTION_ENABLED:!0,CLAUDE_PILOT_RETENTION_MAX_AGE_DAYS:"31",CLAUDE_PILOT_RETENTION_MAX_COUNT:"5000",CLAUDE_PILOT_RETENTION_EXCLUDE_TYPES:'["summary"]',CLAUDE_PILOT_RETENTION_SOFT_DELETE:!1,CLAUDE_PILOT_BATCH_SIZE:"5",CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB:"2048",CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB:"51200"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,ts.existsSync)(e)){let c=this.getAllDefaults();try{let l=(0,Lm.dirname)(e);(0,ts.existsSync)(l)||(0,ts.mkdirSync)(l,{recursive:!0}),(0,ts.writeFileSync)(e,JSON.stringify(c,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(l){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,l)}return c}let r=(0,ts.readFileSync)(e,"utf-8"),n=JSON.parse(r),s=n;if(n.env&&typeof n.env=="object"){s=n.env;try{(0,ts.writeFileSync)(e,JSON.stringify(s,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,c)}}let i=["CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE","CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED","CLAUDE_PILOT_CHROMA_ENABLED","CLAUDE_PILOT_RETENTION_ENABLED","CLAUDE_PILOT_RETENTION_SOFT_DELETE"],a={...this.DEFAULTS},o=!1;for(let c of Object.keys(this.DEFAULTS))if(s[c]!==void 0)if(i.includes(c)){let l=s[c];typeof l=="string"?(a[c]=l==="true",o=!0):a[c]=l}else a[c]=s[c];if(o)try{(0,ts.writeFileSync)(e,JSON.stringify(a,null,2),"utf-8"),console.log("[SETTINGS] Migrated boolean settings from strings to actual booleans:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate boolean settings:",e,c)}return a}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.getAllDefaults()}}}});var $P={};es($P,{ARCHIVES_DIR:()=>nx,BACKUPS_DIR:()=>DP,CLAUDE_CONFIG_DIR:()=>Hl,CLAUDE_CREDENTIALS_PATH:()=>sx,CLAUDE_MD_PATH:()=>eV,CLAUDE_SETTINGS_PATH:()=>XG,DATA_DIR:()=>nn,DB_PATH:()=>Bl,LOGS_DIR:()=>jP,MARKETPLACE_ROOT:()=>tV,MODES_DIR:()=>MP,PLUGINS_DIR:()=>zP,TRASH_DIR:()=>NP,USER_SETTINGS_PATH:()=>Ht,VECTOR_DB_DIR:()=>Wl,ensureAllDataDirs:()=>nV,ensureDir:()=>rs,getCurrentProjectName:()=>sV,getPackageRoot:()=>ca,getProjectArchiveDir:()=>rV,getVersion:()=>ko,resolveGitRoot:()=>zr});function QG(){return typeof __dirname<"u"?__dirname:(0,Nt.dirname)((0,AP.fileURLToPath)(iV.url))}function rV(t){return(0,Nt.join)(nx,t)}function rs(t){(0,Eo.mkdirSync)(t,{recursive:!0})}function nV(){rs(nn),rs(nx),rs(jP),rs(NP),rs(DP),rs(MP)}function zr(t){try{return(0,OP.execSync)("git rev-parse --show-toplevel",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0,timeout:3e3}).trim()||t}catch{return t}}function sV(){return(0,Nt.basename)(zr(process.cwd()))}function ca(){return(0,Nt.join)(YG,"..")}function ko(){if(Fl)return Fl;let t=ca(),e=[(0,Nt.join)(t,"package.json"),(0,Nt.join)(t,".claude-plugin","plugin.json"),(0,Nt.join)(t,"..","package.json")];for(let r of e)try{if((0,Eo.existsSync)(r)){let n=JSON.parse((0,Eo.readFileSync)(r,"utf-8"));if(n.version)return Fl=n.version,n.version}}catch{}return Fl=`0.0.0-${Date.now()}`,Fl}var Nt,CP,Eo,OP,AP,iV,Fl,YG,nn,Hl,nx,jP,NP,DP,MP,Ht,Bl,Wl,XG,eV,sx,zP,tV,er=ye(()=>{"use strict";Nt=require("path"),CP=require("os"),Eo=require("fs"),OP=require("child_process"),AP=require("url");Or();iV={},Fl=null;YG=QG(),nn=Ae.get("CLAUDE_PILOT_DATA_DIR"),Hl=process.env.CLAUDE_CONFIG_DIR||(0,Nt.join)((0,CP.homedir)(),".claude"),nx=(0,Nt.join)(nn,"archives"),jP=(0,Nt.join)(nn,"logs"),NP=(0,Nt.join)(nn,"trash"),DP=(0,Nt.join)(nn,"backups"),MP=(0,Nt.join)(nn,"modes"),Ht=(0,Nt.join)(nn,"settings.json"),Bl=(0,Nt.join)(nn,"pilot-memory.db"),Wl=(0,Nt.join)(nn,"vector-db"),XG=(0,Nt.join)(Hl,"settings.json"),eV=(0,Nt.join)(Hl,"CLAUDE.md"),sx=(0,Nt.join)(Hl,".credentials.json"),zP=(0,Nt.join)(Hl,"plugins"),tV=(0,Nt.join)(zP,"marketplaces","pilot")});var gu=P(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.regexpCode=Xe.getEsmExportName=Xe.getProperty=Xe.safeStringify=Xe.stringify=Xe.strConcat=Xe.addCodeArg=Xe.str=Xe._=Xe.nil=Xe._Code=Xe.Name=Xe.IDENTIFIER=Xe._CodeOrName=void 0;var fu=class{};Xe._CodeOrName=fu;Xe.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var fa=class extends fu{constructor(e){if(super(),!Xe.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Xe.Name=fa;var Dn=class extends fu{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof fa&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Xe._Code=Dn;Xe.nil=new Dn("");function lA(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(on,"__esModule",{value:!0});on.ValueScope=on.ValueScopeName=on.Scope=on.varKinds=on.UsedValueState=void 0;var an=gu(),k_=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},vf;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(vf||(on.UsedValueState=vf={}));on.varKinds={const:new an.Name("const"),let:new an.Name("let"),var:new an.Name("var")};var yf=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof an.Name?e:this.name(e)}name(e){return new an.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};on.Scope=yf;var bf=class extends an.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,an._)`.${new an.Name(r)}[${n}]`}};on.ValueScopeName=bf;var fJ=(0,an._)`\n`,T_=class extends yf{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?fJ:an.nil}}get(){return this._scope}name(e){return new bf(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let s=this.toName(e),{prefix:i}=s,a=(n=r.key)!==null&&n!==void 0?n:r.ref,o=this._values[i];if(o){let u=o.get(a);if(u)return u}else o=this._values[i]=new Map;o.set(a,s);let c=this._scope[i]||(this._scope[i]=[]),l=c.length;return c[l]=r.ref,s.setValue(r,{property:i,itemIndex:l}),s}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,an._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,s=>{if(s.value===void 0)throw new Error(`CodeGen: name "${s}" has no value`);return s.value.code},r,n)}_reduceValues(e,r,n={},s){let i=an.nil;for(let a in e){let o=e[a];if(!o)continue;let c=n[a]=n[a]||new Map;o.forEach(l=>{if(c.has(l))return;c.set(l,vf.Started);let u=r(l);if(u){let p=this.opts.es5?on.varKinds.var:on.varKinds.const;i=(0,an._)`${i}${p} ${l} = ${u};${this.opts._n}`}else if(u=s?.(l))i=(0,an._)`${i}${u}${this.opts._n}`;else throw new k_(l);c.set(l,vf.Completed)})}return i}};on.ValueScope=T_});var je=P(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.or=Ne.and=Ne.not=Ne.CodeGen=Ne.operators=Ne.varKinds=Ne.ValueScopeName=Ne.ValueScope=Ne.Scope=Ne.Name=Ne.regexpCode=Ne.stringify=Ne.getProperty=Ne.nil=Ne.strConcat=Ne.str=Ne._=void 0;var Ge=gu(),is=R_(),Si=gu();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return Si._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return Si.str}});Object.defineProperty(Ne,"strConcat",{enumerable:!0,get:function(){return Si.strConcat}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return Si.nil}});Object.defineProperty(Ne,"getProperty",{enumerable:!0,get:function(){return Si.getProperty}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return Si.stringify}});Object.defineProperty(Ne,"regexpCode",{enumerable:!0,get:function(){return Si.regexpCode}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return Si.Name}});var Sf=R_();Object.defineProperty(Ne,"Scope",{enumerable:!0,get:function(){return Sf.Scope}});Object.defineProperty(Ne,"ValueScope",{enumerable:!0,get:function(){return Sf.ValueScope}});Object.defineProperty(Ne,"ValueScopeName",{enumerable:!0,get:function(){return Sf.ValueScopeName}});Object.defineProperty(Ne,"varKinds",{enumerable:!0,get:function(){return Sf.varKinds}});Ne.operators={GT:new Ge._Code(">"),GTE:new Ge._Code(">="),LT:new Ge._Code("<"),LTE:new Ge._Code("<="),EQ:new Ge._Code("==="),NEQ:new Ge._Code("!=="),NOT:new Ge._Code("!"),OR:new Ge._Code("||"),AND:new Ge._Code("&&"),ADD:new Ge._Code("+")};var Js=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},P_=class extends Js{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?is.varKinds.var:this.varKind,s=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${s};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=No(this.rhs,e,r)),this}get names(){return this.rhs instanceof Ge._CodeOrName?this.rhs.names:{}}},xf=class extends Js{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof Ge.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=No(this.rhs,e,r),this}get names(){let e=this.lhs instanceof Ge.Name?{}:{...this.lhs.names};return wf(e,this.rhs)}},I_=class extends xf{constructor(e,r,n,s){super(e,n,s),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},C_=class extends Js{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},O_=class extends Js{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},A_=class extends Js{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},j_=class extends Js{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=No(this.code,e,r),this}get names(){return this.code instanceof Ge._CodeOrName?this.code.names:{}}},vu=class extends Js{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,s=n.length;for(;s--;){let i=n[s];i.optimizeNames(e,r)||(hJ(e,i.names),n.splice(s,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>va(e,r.names),{})}},Qs=class extends vu{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},N_=class extends vu{},jo=class extends Qs{};jo.kind="else";var ha=class t extends Qs{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new jo(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(pA(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=No(this.condition,e,r),this}get names(){let e=super.names;return wf(e,this.condition),this.else&&va(e,this.else.names),e}};ha.kind="if";var ga=class extends Qs{};ga.kind="for";var D_=class extends ga{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=No(this.iteration,e,r),this}get names(){return va(super.names,this.iteration.names)}},M_=class extends ga{constructor(e,r,n,s){super(),this.varKind=e,this.name=r,this.from=n,this.to=s}render(e){let r=e.es5?is.varKinds.var:this.varKind,{name:n,from:s,to:i}=this;return`for(${r} ${n}=${s}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=wf(super.names,this.from);return wf(e,this.to)}},_f=class extends ga{constructor(e,r,n,s){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=s}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=No(this.iterable,e,r),this}get names(){return va(super.names,this.iterable.names)}},yu=class extends Qs{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};yu.kind="func";var bu=class extends vu{render(e){return"return "+super.render(e)}};bu.kind="return";var z_=class extends Qs{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,s;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(s=this.finally)===null||s===void 0||s.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&va(e,this.catch.names),this.finally&&va(e,this.finally.names),e}},xu=class extends Qs{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};xu.kind="catch";var _u=class extends Qs{render(e){return"finally"+super.render(e)}};_u.kind="finally";var $_=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` +`:""},this._extScope=e,this._scope=new is.Scope({parent:e}),this._nodes=[new N_]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,s){let i=this._scope.toName(r);return n!==void 0&&s&&(this._constants[i.str]=n),this._leafNode(new P_(e,i,n)),i}const(e,r,n){return this._def(is.varKinds.const,e,r,n)}let(e,r,n){return this._def(is.varKinds.let,e,r,n)}var(e,r,n){return this._def(is.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new xf(e,r,n))}add(e,r){return this._leafNode(new I_(e,Ne.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==Ge.nil&&this._leafNode(new j_(e)),this}object(...e){let r=["{"];for(let[n,s]of e)r.length>1&&r.push(","),r.push(n),(n!==s||this.opts.es5)&&(r.push(":"),(0,Ge.addCodeArg)(r,s));return r.push("}"),new Ge._Code(r)}if(e,r,n){if(this._blockNode(new ha(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new ha(e))}else(){return this._elseNode(new jo)}endIf(){return this._endBlockNode(ha,jo)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new D_(e),r)}forRange(e,r,n,s,i=this.opts.es5?is.varKinds.var:is.varKinds.let){let a=this._scope.toName(e);return this._for(new M_(i,a,r,n),()=>s(a))}forOf(e,r,n,s=is.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let a=r instanceof Ge.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,Ge._)`${a}.length`,o=>{this.var(i,(0,Ge._)`${a}[${o}]`),n(i)})}return this._for(new _f("of",s,i,r),()=>n(i))}forIn(e,r,n,s=this.opts.es5?is.varKinds.var:is.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,Ge._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new _f("in",s,i,r),()=>n(i))}endFor(){return this._endBlockNode(ga)}label(e){return this._leafNode(new C_(e))}break(e){return this._leafNode(new O_(e))}return(e){let r=new bu;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(bu)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let s=new z_;if(this._blockNode(s),this.code(e),r){let i=this.name("e");this._currNode=s.catch=new xu(i),r(i)}return n&&(this._currNode=s.finally=new _u,this.code(n)),this._endBlockNode(xu,_u)}throw(e){return this._leafNode(new A_(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=Ge.nil,n,s){return this._blockNode(new yu(e,r,n)),s&&this.code(s).endFunc(),this}endFunc(){return this._endBlockNode(yu)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof ha))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};Ne.CodeGen=$_;function va(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function wf(t,e){return e instanceof Ge._CodeOrName?va(t,e.names):t}function No(t,e,r){if(t instanceof Ge.Name)return n(t);if(!s(t))return t;return new Ge._Code(t._items.reduce((i,a)=>(a instanceof Ge.Name&&(a=n(a)),a instanceof Ge._Code?i.push(...a._items):i.push(a),i),[]));function n(i){let a=r[i.str];return a===void 0||e[i.str]!==1?i:(delete e[i.str],a)}function s(i){return i instanceof Ge._Code&&i._items.some(a=>a instanceof Ge.Name&&e[a.str]===1&&r[a.str]!==void 0)}}function hJ(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function pA(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,Ge._)`!${L_(t)}`}Ne.not=pA;var gJ=dA(Ne.operators.AND);function vJ(...t){return t.reduce(gJ)}Ne.and=vJ;var yJ=dA(Ne.operators.OR);function bJ(...t){return t.reduce(yJ)}Ne.or=bJ;function dA(t){return(e,r)=>e===Ge.nil?r:r===Ge.nil?e:(0,Ge._)`${L_(e)} ${t} ${L_(r)}`}function L_(t){return t instanceof Ge.Name?t:(0,Ge._)`(${t})`}});var Ke=P(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.checkStrictMode=Ue.getErrorPath=Ue.Type=Ue.useFunc=Ue.setEvaluated=Ue.evaluatedPropsToName=Ue.mergeEvaluated=Ue.eachItem=Ue.unescapeJsonPointer=Ue.escapeJsonPointer=Ue.escapeFragment=Ue.unescapeFragment=Ue.schemaRefOrVal=Ue.schemaHasRulesButRef=Ue.schemaHasRules=Ue.checkUnknownRules=Ue.alwaysValidSchema=Ue.toHash=void 0;var bt=je(),xJ=gu();function _J(t){let e={};for(let r of t)e[r]=!0;return e}Ue.toHash=_J;function wJ(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(hA(t,e),!gA(e,t.self.RULES.all))}Ue.alwaysValidSchema=wJ;function hA(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let s=n.RULES.keywords;for(let i in e)s[i]||bA(t,`unknown keyword: "${i}"`)}Ue.checkUnknownRules=hA;function gA(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}Ue.schemaHasRules=gA;function SJ(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}Ue.schemaHasRulesButRef=SJ;function EJ({topSchemaRef:t,schemaPath:e},r,n,s){if(!s){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,bt._)`${r}`}return(0,bt._)`${t}${e}${(0,bt.getProperty)(n)}`}Ue.schemaRefOrVal=EJ;function kJ(t){return vA(decodeURIComponent(t))}Ue.unescapeFragment=kJ;function TJ(t){return encodeURIComponent(q_(t))}Ue.escapeFragment=TJ;function q_(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}Ue.escapeJsonPointer=q_;function vA(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}Ue.unescapeJsonPointer=vA;function RJ(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}Ue.eachItem=RJ;function mA({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(s,i,a,o)=>{let c=a===void 0?i:a instanceof bt.Name?(i instanceof bt.Name?t(s,i,a):e(s,i,a),a):i instanceof bt.Name?(e(s,a,i),i):r(i,a);return o===bt.Name&&!(c instanceof bt.Name)?n(s,c):c}}Ue.mergeEvaluated={props:mA({mergeNames:(t,e,r)=>t.if((0,bt._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,bt._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,bt._)`${r} || {}`).code((0,bt._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,bt._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,bt._)`${r} || {}`),F_(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:yA}),items:mA({mergeNames:(t,e,r)=>t.if((0,bt._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,bt._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,bt._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,bt._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function yA(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,bt._)`{}`);return e!==void 0&&F_(t,r,e),r}Ue.evaluatedPropsToName=yA;function F_(t,e,r){Object.keys(r).forEach(n=>t.assign((0,bt._)`${e}${(0,bt.getProperty)(n)}`,!0))}Ue.setEvaluated=F_;var fA={};function PJ(t,e){return t.scopeValue("func",{ref:e,code:fA[e.code]||(fA[e.code]=new xJ._Code(e.code))})}Ue.useFunc=PJ;var U_;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(U_||(Ue.Type=U_={}));function IJ(t,e,r){if(t instanceof bt.Name){let n=e===U_.Num;return r?n?(0,bt._)`"[" + ${t} + "]"`:(0,bt._)`"['" + ${t} + "']"`:n?(0,bt._)`"/" + ${t}`:(0,bt._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,bt.getProperty)(t).toString():"/"+q_(t)}Ue.getErrorPath=IJ;function bA(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}Ue.checkStrictMode=bA});var Ys=P(H_=>{"use strict";Object.defineProperty(H_,"__esModule",{value:!0});var jr=je(),CJ={data:new jr.Name("data"),valCxt:new jr.Name("valCxt"),instancePath:new jr.Name("instancePath"),parentData:new jr.Name("parentData"),parentDataProperty:new jr.Name("parentDataProperty"),rootData:new jr.Name("rootData"),dynamicAnchors:new jr.Name("dynamicAnchors"),vErrors:new jr.Name("vErrors"),errors:new jr.Name("errors"),this:new jr.Name("this"),self:new jr.Name("self"),scope:new jr.Name("scope"),json:new jr.Name("json"),jsonPos:new jr.Name("jsonPos"),jsonLen:new jr.Name("jsonLen"),jsonPart:new jr.Name("jsonPart")};H_.default=CJ});var wu=P(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.extendErrors=Nr.resetErrorsCount=Nr.reportExtraError=Nr.reportError=Nr.keyword$DataError=Nr.keywordError=void 0;var Je=je(),Ef=Ke(),Lr=Ys();Nr.keywordError={message:({keyword:t})=>(0,Je.str)`must pass "${t}" keyword validation`};Nr.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,Je.str)`"${t}" keyword must be ${e} ($data)`:(0,Je.str)`"${t}" keyword is invalid ($data)`};function OJ(t,e=Nr.keywordError,r,n){let{it:s}=t,{gen:i,compositeRule:a,allErrors:o}=s,c=wA(t,e,r);n??(a||o)?xA(i,c):_A(s,(0,Je._)`[${c}]`)}Nr.reportError=OJ;function AJ(t,e=Nr.keywordError,r){let{it:n}=t,{gen:s,compositeRule:i,allErrors:a}=n,o=wA(t,e,r);xA(s,o),i||a||_A(n,Lr.default.vErrors)}Nr.reportExtraError=AJ;function jJ(t,e){t.assign(Lr.default.errors,e),t.if((0,Je._)`${Lr.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,Je._)`${Lr.default.vErrors}.length`,e),()=>t.assign(Lr.default.vErrors,null)))}Nr.resetErrorsCount=jJ;function NJ({gen:t,keyword:e,schemaValue:r,data:n,errsCount:s,it:i}){if(s===void 0)throw new Error("ajv implementation error");let a=t.name("err");t.forRange("i",s,Lr.default.errors,o=>{t.const(a,(0,Je._)`${Lr.default.vErrors}[${o}]`),t.if((0,Je._)`${a}.instancePath === undefined`,()=>t.assign((0,Je._)`${a}.instancePath`,(0,Je.strConcat)(Lr.default.instancePath,i.errorPath))),t.assign((0,Je._)`${a}.schemaPath`,(0,Je.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,Je._)`${a}.schema`,r),t.assign((0,Je._)`${a}.data`,n))})}Nr.extendErrors=NJ;function xA(t,e){let r=t.const("err",e);t.if((0,Je._)`${Lr.default.vErrors} === null`,()=>t.assign(Lr.default.vErrors,(0,Je._)`[${r}]`),(0,Je._)`${Lr.default.vErrors}.push(${r})`),t.code((0,Je._)`${Lr.default.errors}++`)}function _A(t,e){let{gen:r,validateName:n,schemaEnv:s}=t;s.$async?r.throw((0,Je._)`new ${t.ValidationError}(${e})`):(r.assign((0,Je._)`${n}.errors`,e),r.return(!1))}var ya={keyword:new Je.Name("keyword"),schemaPath:new Je.Name("schemaPath"),params:new Je.Name("params"),propertyName:new Je.Name("propertyName"),message:new Je.Name("message"),schema:new Je.Name("schema"),parentSchema:new Je.Name("parentSchema")};function wA(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,Je._)`{}`:DJ(t,e,r)}function DJ(t,e,r={}){let{gen:n,it:s}=t,i=[MJ(s,r),zJ(t,r)];return $J(t,e,i),n.object(...i)}function MJ({errorPath:t},{instancePath:e}){let r=e?(0,Je.str)`${t}${(0,Ef.getErrorPath)(e,Ef.Type.Str)}`:t;return[Lr.default.instancePath,(0,Je.strConcat)(Lr.default.instancePath,r)]}function zJ({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let s=n?e:(0,Je.str)`${e}/${t}`;return r&&(s=(0,Je.str)`${s}${(0,Ef.getErrorPath)(r,Ef.Type.Str)}`),[ya.schemaPath,s]}function $J(t,{params:e,message:r},n){let{keyword:s,data:i,schemaValue:a,it:o}=t,{opts:c,propertyName:l,topSchemaRef:u,schemaPath:p}=o;n.push([ya.keyword,s],[ya.params,typeof e=="function"?e(t):e||(0,Je._)`{}`]),c.messages&&n.push([ya.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([ya.schema,a],[ya.parentSchema,(0,Je._)`${u}${p}`],[Lr.default.data,i]),l&&n.push([ya.propertyName,l])}});var EA=P(Do=>{"use strict";Object.defineProperty(Do,"__esModule",{value:!0});Do.boolOrEmptySchema=Do.topBoolOrEmptySchema=void 0;var LJ=wu(),UJ=je(),qJ=Ys(),FJ={message:"boolean schema is false"};function HJ(t){let{gen:e,schema:r,validateName:n}=t;r===!1?SA(t,!1):typeof r=="object"&&r.$async===!0?e.return(qJ.default.data):(e.assign((0,UJ._)`${n}.errors`,null),e.return(!0))}Do.topBoolOrEmptySchema=HJ;function BJ(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),SA(t)):r.var(e,!0)}Do.boolOrEmptySchema=BJ;function SA(t,e){let{gen:r,data:n}=t,s={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,LJ.reportError)(s,FJ,void 0,e)}});var B_=P(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.getRules=Mo.isJSONType=void 0;var WJ=["string","number","integer","boolean","null","object","array"],ZJ=new Set(WJ);function GJ(t){return typeof t=="string"&&ZJ.has(t)}Mo.isJSONType=GJ;function VJ(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}Mo.getRules=VJ});var W_=P(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.shouldUseRule=Ei.shouldUseGroup=Ei.schemaHasRulesForType=void 0;function KJ({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&kA(t,n)}Ei.schemaHasRulesForType=KJ;function kA(t,e){return e.rules.some(r=>TA(t,r))}Ei.shouldUseGroup=kA;function TA(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}Ei.shouldUseRule=TA});var Su=P(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr.reportTypeError=Dr.checkDataTypes=Dr.checkDataType=Dr.coerceAndCheckDataType=Dr.getJSONTypes=Dr.getSchemaTypes=Dr.DataType=void 0;var JJ=B_(),QJ=W_(),YJ=wu(),Ce=je(),RA=Ke(),zo;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(zo||(Dr.DataType=zo={}));function XJ(t){let e=PA(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}Dr.getSchemaTypes=XJ;function PA(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(JJ.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Dr.getJSONTypes=PA;function eQ(t,e){let{gen:r,data:n,opts:s}=t,i=tQ(e,s.coerceTypes),a=e.length>0&&!(i.length===0&&e.length===1&&(0,QJ.schemaHasRulesForType)(t,e[0]));if(a){let o=G_(e,n,s.strictNumbers,zo.Wrong);r.if(o,()=>{i.length?rQ(t,e,i):V_(t)})}return a}Dr.coerceAndCheckDataType=eQ;var IA=new Set(["string","number","integer","boolean","null"]);function tQ(t,e){return e?t.filter(r=>IA.has(r)||e==="array"&&r==="array"):[]}function rQ(t,e,r){let{gen:n,data:s,opts:i}=t,a=n.let("dataType",(0,Ce._)`typeof ${s}`),o=n.let("coerced",(0,Ce._)`undefined`);i.coerceTypes==="array"&&n.if((0,Ce._)`${a} == 'object' && Array.isArray(${s}) && ${s}.length == 1`,()=>n.assign(s,(0,Ce._)`${s}[0]`).assign(a,(0,Ce._)`typeof ${s}`).if(G_(e,s,i.strictNumbers),()=>n.assign(o,s))),n.if((0,Ce._)`${o} !== undefined`);for(let l of r)(IA.has(l)||l==="array"&&i.coerceTypes==="array")&&c(l);n.else(),V_(t),n.endIf(),n.if((0,Ce._)`${o} !== undefined`,()=>{n.assign(s,o),nQ(t,o)});function c(l){switch(l){case"string":n.elseIf((0,Ce._)`${a} == "number" || ${a} == "boolean"`).assign(o,(0,Ce._)`"" + ${s}`).elseIf((0,Ce._)`${s} === null`).assign(o,(0,Ce._)`""`);return;case"number":n.elseIf((0,Ce._)`${a} == "boolean" || ${s} === null || (${a} == "string" && ${s} && ${s} == +${s})`).assign(o,(0,Ce._)`+${s}`);return;case"integer":n.elseIf((0,Ce._)`${a} === "boolean" || ${s} === null || (${a} === "string" && ${s} && ${s} == +${s} && !(${s} % 1))`).assign(o,(0,Ce._)`+${s}`);return;case"boolean":n.elseIf((0,Ce._)`${s} === "false" || ${s} === 0 || ${s} === null`).assign(o,!1).elseIf((0,Ce._)`${s} === "true" || ${s} === 1`).assign(o,!0);return;case"null":n.elseIf((0,Ce._)`${s} === "" || ${s} === 0 || ${s} === false`),n.assign(o,null);return;case"array":n.elseIf((0,Ce._)`${a} === "string" || ${a} === "number" - || ${a} === "boolean" || ${s} === null`).assign(o,(0,Ce._)`[${s}]`)}}}function lQ({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,Ce._)`${e} !== undefined`,()=>t.assign((0,Ce._)`${e}[${r}]`,n))}function K_(t,e,r,n=$o.Correct){let s=n===$o.Correct?Ce.operators.EQ:Ce.operators.NEQ,i;switch(t){case"null":return(0,Ce._)`${e} ${s} null`;case"array":i=(0,Ce._)`Array.isArray(${e})`;break;case"object":i=(0,Ce._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=a((0,Ce._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=a();break;default:return(0,Ce._)`typeof ${e} ${s} ${t}`}return n===$o.Correct?i:(0,Ce.not)(i);function a(o=Ce.nil){return(0,Ce.and)((0,Ce._)`typeof ${e} == "number"`,o,r?(0,Ce._)`isFinite(${e})`:Ce.nil)}}Dr.checkDataType=K_;function J_(t,e,r,n){if(t.length===1)return K_(t[0],e,r,n);let s,i=(0,OA.toHash)(t);if(i.array&&i.object){let a=(0,Ce._)`typeof ${e} != "object"`;s=i.null?a:(0,Ce._)`!${e} || ${a}`,delete i.null,delete i.array,delete i.object}else s=Ce.nil;i.number&&delete i.integer;for(let a in i)s=(0,Ce.and)(s,K_(a,e,r,n));return s}Dr.checkDataTypes=J_;var uQ={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,Ce._)`{type: ${t}}`:(0,Ce._)`{type: ${e}}`};function Q_(t){let e=pQ(t);(0,sQ.reportError)(e,uQ)}Dr.reportTypeError=Q_;function pQ(t){let{gen:e,data:r,schema:n}=t,s=(0,OA.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:s,schemaValue:s,parentSchema:n,params:{},it:t}}});var DA=P(Rf=>{"use strict";Object.defineProperty(Rf,"__esModule",{value:!0});Rf.assignDefaults=void 0;var Lo=je(),dQ=Ke();function mQ(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let s in r)NA(t,s,r[s].default);else e==="array"&&Array.isArray(n)&&n.forEach((s,i)=>NA(t,i,s.default))}Rf.assignDefaults=mQ;function NA(t,e,r){let{gen:n,compositeRule:s,data:i,opts:a}=t;if(r===void 0)return;let o=(0,Lo._)`${i}${(0,Lo.getProperty)(e)}`;if(s){(0,dQ.checkStrictMode)(t,`default is ignored for: ${o}`);return}let c=(0,Lo._)`${o} === undefined`;a.useDefaults==="empty"&&(c=(0,Lo._)`${c} || ${o} === null || ${o} === ""`),n.if(c,(0,Lo._)`${o} = ${(0,Lo.stringify)(r)}`)}});var Mn=P(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.validateUnion=ht.validateArray=ht.usePattern=ht.callValidateCode=ht.schemaProperties=ht.allSchemaProperties=ht.noPropertyInData=ht.propertyInData=ht.isOwnProperty=ht.hasPropFunc=ht.reportMissingProp=ht.checkMissingProp=ht.checkReportMissingProp=void 0;var It=je(),Y_=Ke(),Ei=Ys(),fQ=Ke();function hQ(t,e){let{gen:r,data:n,it:s}=t;r.if(e0(r,n,e,s.opts.ownProperties),()=>{t.setParams({missingProperty:(0,It._)`${e}`},!0),t.error()})}ht.checkReportMissingProp=hQ;function gQ({gen:t,data:e,it:{opts:r}},n,s){return(0,It.or)(...n.map(i=>(0,It.and)(e0(t,e,i,r.ownProperties),(0,It._)`${s} = ${i}`)))}ht.checkMissingProp=gQ;function vQ(t,e){t.setParams({missingProperty:e},!0),t.error()}ht.reportMissingProp=vQ;function MA(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,It._)`Object.prototype.hasOwnProperty`})}ht.hasPropFunc=MA;function X_(t,e,r){return(0,It._)`${MA(t)}.call(${e}, ${r})`}ht.isOwnProperty=X_;function yQ(t,e,r,n){let s=(0,It._)`${e}${(0,It.getProperty)(r)} !== undefined`;return n?(0,It._)`${s} && ${X_(t,e,r)}`:s}ht.propertyInData=yQ;function e0(t,e,r,n){let s=(0,It._)`${e}${(0,It.getProperty)(r)} === undefined`;return n?(0,It.or)(s,(0,It.not)(X_(t,e,r))):s}ht.noPropertyInData=e0;function zA(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ht.allSchemaProperties=zA;function bQ(t,e){return zA(e).filter(r=>!(0,Y_.alwaysValidSchema)(t,e[r]))}ht.schemaProperties=bQ;function xQ({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:s,errorPath:i},it:a},o,c,l){let u=l?(0,It._)`${t}, ${e}, ${n}${s}`:e,p=[[Ei.default.instancePath,(0,It.strConcat)(Ei.default.instancePath,i)],[Ei.default.parentData,a.parentData],[Ei.default.parentDataProperty,a.parentDataProperty],[Ei.default.rootData,Ei.default.rootData]];a.opts.dynamicRef&&p.push([Ei.default.dynamicAnchors,Ei.default.dynamicAnchors]);let d=(0,It._)`${u}, ${r.object(...p)}`;return c!==It.nil?(0,It._)`${o}.call(${c}, ${d})`:(0,It._)`${o}(${d})`}ht.callValidateCode=xQ;var _Q=(0,It._)`new RegExp`;function wQ({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:s}=e.code,i=s(r,n);return t.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,It._)`${s.code==="new RegExp"?_Q:(0,fQ.useFunc)(t,s)}(${r}, ${n})`})}ht.usePattern=wQ;function SQ(t){let{gen:e,data:r,keyword:n,it:s}=t,i=e.name("valid");if(s.allErrors){let o=e.let("valid",!0);return a(()=>e.assign(o,!1)),o}return e.var(i,!0),a(()=>e.break()),i;function a(o){let c=e.const("len",(0,It._)`${r}.length`);e.forRange("i",0,c,l=>{t.subschema({keyword:n,dataProp:l,dataPropType:Y_.Type.Num},i),e.if((0,It.not)(i),o)})}}ht.validateArray=SQ;function kQ(t){let{gen:e,schema:r,keyword:n,it:s}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,Y_.alwaysValidSchema)(s,c))&&!s.opts.unevaluated)return;let a=e.let("valid",!1),o=e.name("_valid");e.block(()=>r.forEach((c,l)=>{let u=t.subschema({keyword:n,schemaProp:l,compositeRule:!0},o);e.assign(a,(0,It._)`${a} || ${o}`),t.mergeValidEvaluated(u,o)||e.if((0,It.not)(a))})),t.result(a,()=>t.reset(),()=>t.error(!0))}ht.validateUnion=kQ});var UA=P(Rs=>{"use strict";Object.defineProperty(Rs,"__esModule",{value:!0});Rs.validateKeywordUsage=Rs.validSchemaType=Rs.funcKeywordCode=Rs.macroKeywordCode=void 0;var Ur=je(),xa=Ys(),EQ=Mn(),TQ=Su();function RQ(t,e){let{gen:r,keyword:n,schema:s,parentSchema:i,it:a}=t,o=e.macro.call(a.self,s,i,a),c=LA(r,n,o);a.opts.validateSchema!==!1&&a.self.validateSchema(o,!0);let l=r.name("valid");t.subschema({schema:o,schemaPath:Ur.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),t.pass(l,()=>t.error(!0))}Rs.macroKeywordCode=RQ;function PQ(t,e){var r;let{gen:n,keyword:s,schema:i,parentSchema:a,$data:o,it:c}=t;CQ(c,e);let l=!o&&e.compile?e.compile.call(c.self,i,a,c):e.validate,u=LA(n,s,l),p=n.let("valid");t.block$data(p,d),t.ok((r=e.valid)!==null&&r!==void 0?r:p);function d(){if(e.errors===!1)g(),e.modifying&&$A(t),v(()=>t.error());else{let h=e.async?m():f();e.modifying&&$A(t),v(()=>IQ(t,h))}}function m(){let h=n.let("ruleErrs",null);return n.try(()=>g((0,Ur._)`await `),y=>n.assign(p,!1).if((0,Ur._)`${y} instanceof ${c.ValidationError}`,()=>n.assign(h,(0,Ur._)`${y}.errors`),()=>n.throw(y))),h}function f(){let h=(0,Ur._)`${u}.errors`;return n.assign(h,null),g(Ur.nil),h}function g(h=e.async?(0,Ur._)`await `:Ur.nil){let y=c.opts.passContext?xa.default.this:xa.default.self,b=!("compile"in e&&!o||e.schema===!1);n.assign(p,(0,Ur._)`${h}${(0,EQ.callValidateCode)(t,u,y,b)}`,e.modifying)}function v(h){var y;n.if((0,Ur.not)((y=e.valid)!==null&&y!==void 0?y:p),h)}}Rs.funcKeywordCode=PQ;function $A(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Ur._)`${n.parentData}[${n.parentDataProperty}]`))}function IQ(t,e){let{gen:r}=t;r.if((0,Ur._)`Array.isArray(${e})`,()=>{r.assign(xa.default.vErrors,(0,Ur._)`${xa.default.vErrors} === null ? ${e} : ${xa.default.vErrors}.concat(${e})`).assign(xa.default.errors,(0,Ur._)`${xa.default.vErrors}.length`),(0,TQ.extendErrors)(t)},()=>t.error())}function CQ({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function LA(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Ur.stringify)(r)})}function OQ(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}Rs.validSchemaType=OQ;function AQ({schema:t,opts:e,self:r,errSchemaPath:n},s,i){if(Array.isArray(s.keyword)?!s.keyword.includes(i):s.keyword!==i)throw new Error("ajv implementation error");let a=s.dependencies;if(a?.some(o=>!Object.prototype.hasOwnProperty.call(t,o)))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(s.validateSchema&&!s.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(s.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Rs.validateKeywordUsage=AQ});var FA=P(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});Ti.extendSubschemaMode=Ti.extendSubschemaData=Ti.getSubschema=void 0;var Ps=je(),qA=Ke();function jQ(t,{keyword:e,schemaProp:r,schema:n,schemaPath:s,errSchemaPath:i,topSchemaRef:a}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let o=t.schema[e];return r===void 0?{schema:o,schemaPath:(0,Ps._)`${t.schemaPath}${(0,Ps.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:o[r],schemaPath:(0,Ps._)`${t.schemaPath}${(0,Ps.getProperty)(e)}${(0,Ps.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,qA.escapeFragment)(r)}`}}if(n!==void 0){if(s===void 0||i===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:s,topSchemaRef:a,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Ti.getSubschema=jQ;function NQ(t,e,{dataProp:r,dataPropType:n,data:s,dataTypes:i,propertyName:a}){if(s!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=e;if(r!==void 0){let{errorPath:l,dataPathArr:u,opts:p}=e,d=o.let("data",(0,Ps._)`${e.data}${(0,Ps.getProperty)(r)}`,!0);c(d),t.errorPath=(0,Ps.str)`${l}${(0,qA.getErrorPath)(r,n,p.jsPropertySyntax)}`,t.parentDataProperty=(0,Ps._)`${r}`,t.dataPathArr=[...u,t.parentDataProperty]}if(s!==void 0){let l=s instanceof Ps.Name?s:o.let("data",s,!0);c(l),a!==void 0&&(t.propertyName=a)}i&&(t.dataTypes=i);function c(l){t.data=l,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,l]}}Ti.extendSubschemaData=NQ;function DQ(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:s,allErrors:i}){n!==void 0&&(t.compositeRule=n),s!==void 0&&(t.createErrors=s),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}Ti.extendSubschemaMode=DQ});var t0=P((KOe,HA)=>{"use strict";HA.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,s,i;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(s=n;s--!==0;)if(!t(e[s],r[s]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(r).length)return!1;for(s=n;s--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[s]))return!1;for(s=n;s--!==0;){var a=i[s];if(!t(e[a],r[a]))return!1}return!0}return e!==e&&r!==r}});var WA=P((JOe,BA)=>{"use strict";var Ri=BA.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},s=r.post||function(){};Pf(e,n,s,t,"",t)};Ri.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Ri.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Ri.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Ri.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Pf(t,e,r,n,s,i,a,o,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,s,i,a,o,c,l);for(var u in n){var p=n[u];if(Array.isArray(p)){if(u in Ri.arrayKeywords)for(var d=0;d{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.getSchemaRefs=cn.resolveUrl=cn.normalizeId=cn._getFullPath=cn.getFullPath=cn.inlineRef=void 0;var zQ=Ke(),$Q=t0(),LQ=WA(),UQ=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function qQ(t,e=!0){return typeof t=="boolean"?!0:e===!0?!r0(t):e?ZA(t)<=e:!1}cn.inlineRef=qQ;var FQ=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function r0(t){for(let e in t){if(FQ.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(r0)||typeof r=="object"&&r0(r))return!0}return!1}function ZA(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!UQ.has(r)&&(typeof t[r]=="object"&&(0,zQ.eachItem)(t[r],n=>e+=ZA(n)),e===1/0))return 1/0}return e}function GA(t,e="",r){r!==!1&&(e=Uo(e));let n=t.parse(e);return VA(t,n)}cn.getFullPath=GA;function VA(t,e){return t.serialize(e).split("#")[0]+"#"}cn._getFullPath=VA;var HQ=/#\/?$/;function Uo(t){return t?t.replace(HQ,""):""}cn.normalizeId=Uo;function BQ(t,e,r){return r=Uo(r),t.resolve(e,r)}cn.resolveUrl=BQ;var WQ=/^[a-z_][-a-z0-9._]*$/i;function ZQ(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,s=Uo(t[r]||e),i={"":s},a=GA(n,s,!1),o={},c=new Set;return LQ(t,{allKeys:!0},(p,d,m,f)=>{if(f===void 0)return;let g=a+d,v=i[f];typeof p[r]=="string"&&(v=h.call(this,p[r])),y.call(this,p.$anchor),y.call(this,p.$dynamicAnchor),i[d]=v;function h(b){let x=this.opts.uriResolver.resolve;if(b=Uo(v?x(v,b):b),c.has(b))throw u(b);c.add(b);let w=this.refs[b];return typeof w=="string"&&(w=this.refs[w]),typeof w=="object"?l(p,w.schema,b):b!==Uo(g)&&(b[0]==="#"?(l(p,o[b],b),o[b]=p):this.refs[b]=g),b}function y(b){if(typeof b=="string"){if(!WQ.test(b))throw new Error(`invalid anchor "${b}"`);h.call(this,`#${b}`)}}}),o;function l(p,d,m){if(d!==void 0&&!$Q(p,d))throw u(m)}function u(p){return new Error(`reference "${p}" resolves to more than one schema`)}}cn.getSchemaRefs=ZQ});var Pu=P(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.getData=Pi.KeywordCxt=Pi.validateFunctionCode=void 0;var XA=PA(),KA=ku(),s0=V_(),If=ku(),GQ=DA(),Ru=UA(),n0=FA(),fe=je(),Ee=Ys(),VQ=Eu(),Xs=Ke(),Tu=Su();function KQ(t){if(rj(t)&&(nj(t),tj(t))){YQ(t);return}ej(t,()=>(0,XA.topBoolOrEmptySchema)(t))}Pi.validateFunctionCode=KQ;function ej({gen:t,validateName:e,schema:r,schemaEnv:n,opts:s},i){s.code.es5?t.func(e,(0,fe._)`${Ee.default.data}, ${Ee.default.valCxt}`,n.$async,()=>{t.code((0,fe._)`"use strict"; ${JA(r,s)}`),QQ(t,s),t.code(i)}):t.func(e,(0,fe._)`${Ee.default.data}, ${JQ(s)}`,n.$async,()=>t.code(JA(r,s)).code(i))}function JQ(t){return(0,fe._)`{${Ee.default.instancePath}="", ${Ee.default.parentData}, ${Ee.default.parentDataProperty}, ${Ee.default.rootData}=${Ee.default.data}${t.dynamicRef?(0,fe._)`, ${Ee.default.dynamicAnchors}={}`:fe.nil}}={}`}function QQ(t,e){t.if(Ee.default.valCxt,()=>{t.var(Ee.default.instancePath,(0,fe._)`${Ee.default.valCxt}.${Ee.default.instancePath}`),t.var(Ee.default.parentData,(0,fe._)`${Ee.default.valCxt}.${Ee.default.parentData}`),t.var(Ee.default.parentDataProperty,(0,fe._)`${Ee.default.valCxt}.${Ee.default.parentDataProperty}`),t.var(Ee.default.rootData,(0,fe._)`${Ee.default.valCxt}.${Ee.default.rootData}`),e.dynamicRef&&t.var(Ee.default.dynamicAnchors,(0,fe._)`${Ee.default.valCxt}.${Ee.default.dynamicAnchors}`)},()=>{t.var(Ee.default.instancePath,(0,fe._)`""`),t.var(Ee.default.parentData,(0,fe._)`undefined`),t.var(Ee.default.parentDataProperty,(0,fe._)`undefined`),t.var(Ee.default.rootData,Ee.default.data),e.dynamicRef&&t.var(Ee.default.dynamicAnchors,(0,fe._)`{}`)})}function YQ(t){let{schema:e,opts:r,gen:n}=t;ej(t,()=>{r.$comment&&e.$comment&&ij(t),nY(t),n.let(Ee.default.vErrors,null),n.let(Ee.default.errors,0),r.unevaluated&&XQ(t),sj(t),aY(t)})}function XQ(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,fe._)`${r}.evaluated`),e.if((0,fe._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,fe._)`${t.evaluated}.props`,(0,fe._)`undefined`)),e.if((0,fe._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,fe._)`${t.evaluated}.items`,(0,fe._)`undefined`))}function JA(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,fe._)`/*# sourceURL=${r} */`:fe.nil}function eY(t,e){if(rj(t)&&(nj(t),tj(t))){tY(t,e);return}(0,XA.boolOrEmptySchema)(t,e)}function tj({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let r in t)if(e.RULES.all[r])return!0;return!1}function rj(t){return typeof t.schema!="boolean"}function tY(t,e){let{schema:r,gen:n,opts:s}=t;s.$comment&&r.$comment&&ij(t),sY(t),iY(t);let i=n.const("_errs",Ee.default.errors);sj(t,i),n.var(e,(0,fe._)`${i} === ${Ee.default.errors}`)}function nj(t){(0,Xs.checkUnknownRules)(t),rY(t)}function sj(t,e){if(t.opts.jtd)return QA(t,[],!1,e);let r=(0,KA.getSchemaTypes)(t.schema),n=(0,KA.coerceAndCheckDataType)(t,r);QA(t,r,!n,e)}function rY(t){let{schema:e,errSchemaPath:r,opts:n,self:s}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,Xs.schemaHasRulesButRef)(e,s.RULES)&&s.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function nY(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Xs.checkStrictMode)(t,"default is ignored in the schema root")}function sY(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,VQ.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function iY(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function ij({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:s}){let i=r.$comment;if(s.$comment===!0)t.code((0,fe._)`${Ee.default.self}.logger.log(${i})`);else if(typeof s.$comment=="function"){let a=(0,fe.str)`${n}/$comment`,o=t.scopeValue("root",{ref:e.root});t.code((0,fe._)`${Ee.default.self}.opts.$comment(${i}, ${a}, ${o}.schema)`)}}function aY(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:s,opts:i}=t;r.$async?e.if((0,fe._)`${Ee.default.errors} === 0`,()=>e.return(Ee.default.data),()=>e.throw((0,fe._)`new ${s}(${Ee.default.vErrors})`)):(e.assign((0,fe._)`${n}.errors`,Ee.default.vErrors),i.unevaluated&&oY(t),e.return((0,fe._)`${Ee.default.errors} === 0`))}function oY({gen:t,evaluated:e,props:r,items:n}){r instanceof fe.Name&&t.assign((0,fe._)`${e}.props`,r),n instanceof fe.Name&&t.assign((0,fe._)`${e}.items`,n)}function QA(t,e,r,n){let{gen:s,schema:i,data:a,allErrors:o,opts:c,self:l}=t,{RULES:u}=l;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,Xs.schemaHasRulesButRef)(i,u))){s.block(()=>oj(t,"$ref",u.all.$ref.definition));return}c.jtd||cY(t,e),s.block(()=>{for(let d of u.rules)p(d);p(u.post)});function p(d){(0,s0.shouldUseGroup)(i,d)&&(d.type?(s.if((0,If.checkDataType)(d.type,a,c.strictNumbers)),YA(t,d),e.length===1&&e[0]===d.type&&r&&(s.else(),(0,If.reportTypeError)(t)),s.endIf()):YA(t,d),o||s.if((0,fe._)`${Ee.default.errors} === ${n||0}`))}}function YA(t,e){let{gen:r,schema:n,opts:{useDefaults:s}}=t;s&&(0,GQ.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,s0.shouldUseRule)(n,i)&&oj(t,i.keyword,i.definition,e.type)})}function cY(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(lY(t,e),t.opts.allowUnionTypes||uY(t,e),pY(t,t.dataTypes))}function lY(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{aj(t.dataTypes,r)||i0(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),mY(t,e)}}function uY(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&i0(t,"use allowUnionTypes to allow union type keyword")}function pY(t,e){let r=t.self.RULES.all;for(let n in r){let s=r[n];if(typeof s=="object"&&(0,s0.shouldUseRule)(t.schema,s)){let{type:i}=s.definition;i.length&&!i.some(a=>dY(e,a))&&i0(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function dY(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function aj(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function mY(t,e){let r=[];for(let n of t.dataTypes)aj(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function i0(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,Xs.checkStrictMode)(t,e,t.opts.strictTypes)}var Cf=class{constructor(e,r,n){if((0,Ru.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Xs.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",cj(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,Ru.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",Ee.default.errors))}result(e,r,n){this.failResult((0,fe.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,fe.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,fe._)`${r} !== undefined && (${(0,fe.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?Tu.reportExtraError:Tu.reportError)(this,this.def.error,r)}$dataError(){(0,Tu.reportError)(this,this.def.$dataError||Tu.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,Tu.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=fe.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=fe.nil,r=fe.nil){if(!this.$data)return;let{gen:n,schemaCode:s,schemaType:i,def:a}=this;n.if((0,fe.or)((0,fe._)`${s} === undefined`,r)),e!==fe.nil&&n.assign(e,!0),(i.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==fe.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:s,it:i}=this;return(0,fe.or)(a(),o());function a(){if(n.length){if(!(r instanceof fe.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,fe._)`${(0,If.checkDataTypes)(c,r,i.opts.strictNumbers,If.DataType.Wrong)}`}return fe.nil}function o(){if(s.validateSchema){let c=e.scopeValue("validate$data",{ref:s.validateSchema});return(0,fe._)`!${c}(${r})`}return fe.nil}}subschema(e,r){let n=(0,n0.getSubschema)(this.it,e);(0,n0.extendSubschemaData)(n,this.it,e),(0,n0.extendSubschemaMode)(n,e);let s={...this.it,...n,items:void 0,props:void 0};return eY(s,r),s}mergeEvaluated(e,r){let{it:n,gen:s}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=Xs.mergeEvaluated.props(s,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=Xs.mergeEvaluated.items(s,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:s}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return s.if(r,()=>this.mergeEvaluated(e,fe.Name)),!0}};Pi.KeywordCxt=Cf;function oj(t,e,r,n){let s=new Cf(t,r,e);"code"in r?r.code(s,n):s.$data&&r.validate?(0,Ru.funcKeywordCode)(s,r):"macro"in r?(0,Ru.macroKeywordCode)(s,r):(r.compile||r.validate)&&(0,Ru.funcKeywordCode)(s,r)}var fY=/^\/(?:[^~]|~0|~1)*$/,hY=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function cj(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let s,i;if(t==="")return Ee.default.rootData;if(t[0]==="/"){if(!fY.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);s=t,i=Ee.default.rootData}else{let l=hY.exec(t);if(!l)throw new Error(`Invalid JSON-pointer: ${t}`);let u=+l[1];if(s=l[2],s==="#"){if(u>=e)throw new Error(c("property/index",u));return n[e-u]}if(u>e)throw new Error(c("data",u));if(i=r[e-u],!s)return i}let a=i,o=s.split("/");for(let l of o)l&&(i=(0,fe._)`${i}${(0,fe.getProperty)((0,Xs.unescapeJsonPointer)(l))}`,a=(0,fe._)`${a} && ${i}`);return a;function c(l,u){return`Cannot access ${l} ${u} levels up, current level is ${e}`}}Pi.getData=cj});var Of=P(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});var a0=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};o0.default=a0});var Iu=P(u0=>{"use strict";Object.defineProperty(u0,"__esModule",{value:!0});var c0=Eu(),l0=class extends Error{constructor(e,r,n,s){super(s||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,c0.resolveUrl)(e,r,n),this.missingSchema=(0,c0.normalizeId)((0,c0.getFullPath)(e,this.missingRef))}};u0.default=l0});var jf=P(zn=>{"use strict";Object.defineProperty(zn,"__esModule",{value:!0});zn.resolveSchema=zn.getCompilingSchema=zn.resolveRef=zn.compileSchema=zn.SchemaEnv=void 0;var as=je(),gY=Of(),_a=Ys(),os=Eu(),lj=Ke(),vY=Pu(),qo=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,os.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};zn.SchemaEnv=qo;function d0(t){let e=uj.call(this,t);if(e)return e;let r=(0,os.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:s}=this.opts.code,{ownProperties:i}=this.opts,a=new as.CodeGen(this.scope,{es5:n,lines:s,ownProperties:i}),o;t.$async&&(o=a.scopeValue("Error",{ref:gY.default,code:(0,as._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");t.validateName=c;let l={gen:a,allErrors:this.opts.allErrors,data:_a.default.data,parentData:_a.default.parentData,parentDataProperty:_a.default.parentDataProperty,dataNames:[_a.default.data],dataPathArr:[as.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,as.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:o,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:as.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,as._)`""`,opts:this.opts,self:this},u;try{this._compilations.add(t),(0,vY.validateFunctionCode)(l),a.optimize(this.opts.code.optimize);let p=a.toString();u=`${a.scopeRefs(_a.default.scope)}return ${p}`,this.opts.code.process&&(u=this.opts.code.process(u,t));let m=new Function(`${_a.default.self}`,`${_a.default.scope}`,u)(this,this.scope.get());if(this.scope.value(c,{ref:m}),m.errors=null,m.schema=t.schema,m.schemaEnv=t,t.$async&&(m.$async=!0),this.opts.code.source===!0&&(m.source={validateName:c,validateCode:p,scopeValues:a._values}),this.opts.unevaluated){let{props:f,items:g}=l;m.evaluated={props:f instanceof as.Name?void 0:f,items:g instanceof as.Name?void 0:g,dynamicProps:f instanceof as.Name,dynamicItems:g instanceof as.Name},m.source&&(m.source.evaluated=(0,as.stringify)(m.evaluated))}return t.validate=m,t}catch(p){throw delete t.validate,delete t.validateName,u&&this.logger.error("Error compiling schema, function code:",u),p}finally{this._compilations.delete(t)}}zn.compileSchema=d0;function yY(t,e,r){var n;r=(0,os.resolveUrl)(this.opts.uriResolver,e,r);let s=t.refs[r];if(s)return s;let i=_Y.call(this,t,r);if(i===void 0){let a=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:o}=this.opts;a&&(i=new qo({schema:a,schemaId:o,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=bY.call(this,i)}zn.resolveRef=yY;function bY(t){return(0,os.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:d0.call(this,t)}function uj(t){for(let e of this._compilations)if(xY(e,t))return e}zn.getCompilingSchema=uj;function xY(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function _Y(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Af.call(this,t,e)}function Af(t,e){let r=this.opts.uriResolver.parse(e),n=(0,os._getFullPath)(this.opts.uriResolver,r),s=(0,os.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===s)return p0.call(this,r,t);let i=(0,os.normalizeId)(n),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){let o=Af.call(this,t,a);return typeof o?.schema!="object"?void 0:p0.call(this,r,o)}if(typeof a?.schema=="object"){if(a.validate||d0.call(this,a),i===(0,os.normalizeId)(e)){let{schema:o}=a,{schemaId:c}=this.opts,l=o[c];return l&&(s=(0,os.resolveUrl)(this.opts.uriResolver,s,l)),new qo({schema:o,schemaId:c,root:t,baseId:s})}return p0.call(this,r,a)}}zn.resolveSchema=Af;var wY=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function p0(t,{baseId:e,schema:r,root:n}){var s;if(((s=t.fragment)===null||s===void 0?void 0:s[0])!=="/")return;for(let o of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,lj.unescapeFragment)(o)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!wY.has(o)&&l&&(e=(0,os.resolveUrl)(this.opts.uriResolver,e,l))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,lj.schemaHasRulesButRef)(r,this.RULES)){let o=(0,os.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Af.call(this,n,o)}let{schemaId:a}=this.opts;if(i=i||new qo({schema:r,schemaId:a,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var pj=P((rAe,SY)=>{SY.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var h0=P((nAe,vj)=>{"use strict";var kY=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),mj=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),m0=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),fj=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),EY=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function f0(t){let e="",r=0,n=0;for(n=0;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var TY=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function dj(t){return t.length=0,!0}function RY(t,e,r){if(t.length){let n=f0(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function PY(t){let e=0,r={error:!1,address:"",zone:""},n=[],s=[],i=!1,a=!1,o=RY;for(let c=0;c7){r.error=!0;break}c>0&&t[c-1]===":"&&(i=!0),n.push(":");continue}else if(l==="%"){if(!o(s,n,r))break;o=dj}else{s.push(l);continue}}return s.length&&(o===dj?r.zone=s.join(""):a?n.push(s.join("")):n.push(f0(s))),r.address=n.join(""),r}function hj(t){if(IY(t,":")<2)return{host:t,isIPV6:!1};let e=PY(t);if(e.error)return{host:t,isIPV6:!1};{let r=e.address,n=e.address;return e.zone&&(r+="%"+e.zone,n+="%25"+e.zone),{host:r,isIPV6:!0,escapedHost:n}}}function IY(t,e){let r=0;for(let n=0;nOY[n])}function NY(t,e=!1){if(t.indexOf("%")===-1)return t;let r="";for(let n=0;n{"use strict";var{isUUID:$Y}=h0(),LY=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,UY=["http","https","ws","wss","urn","urn:uuid"];function qY(t){return UY.indexOf(t)!==-1}function g0(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function yj(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function bj(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function FY(t){return t.secure=g0(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function HY(t){if((t.port===(g0(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function BY(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(LY);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let s=`${n}:${e.nid||t.nid}`,i=v0(s);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function WY(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),s=`${r}:${e.nid||n}`,i=v0(s);i&&(t=i.serialize(t,e));let a=t,o=t.nss;return a.path=`${n||e.nid}:${o}`,e.skipEscape=!0,a}function ZY(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!$Y(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function GY(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var xj={scheme:"http",domainHost:!0,parse:yj,serialize:bj},VY={scheme:"https",domainHost:xj.domainHost,parse:yj,serialize:bj},Nf={scheme:"ws",domainHost:!0,parse:FY,serialize:HY},KY={scheme:"wss",domainHost:Nf.domainHost,parse:Nf.parse,serialize:Nf.serialize},JY={scheme:"urn",parse:BY,serialize:WY,skipNormalize:!0},QY={scheme:"urn:uuid",parse:ZY,serialize:GY,skipNormalize:!0},Df={http:xj,https:VY,ws:Nf,wss:KY,urn:JY,"urn:uuid":QY};Object.setPrototypeOf(Df,null);function v0(t){return t&&(Df[t]||Df[t.toLowerCase()])||void 0}_j.exports={wsIsSecure:g0,SCHEMES:Df,isValidSchemeName:qY,getSchemeHandler:v0}});var Pj=P((iAe,Mf)=>{"use strict";var{normalizeIPv6:YY,removeDotSegments:Cu,recomposeAuthority:XY,normalizePercentEncoding:eX,normalizePathEncoding:tX,escapePreservingEscapes:rX,reescapeHostDelimiters:nX,isIPv4:sX,nonSimpleDomain:iX}=h0(),{SCHEMES:aX,getSchemeHandler:kj}=wj();function oX(t,e){return typeof t=="string"?t=dX(t,e):typeof t=="object"&&(t=Fo(wa(t,e),e)),t}function cX(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},s=Ej(Fo(t,n),Fo(e,n),n,!0);return n.skipEscape=!0,wa(s,n)}function Ej(t,e,r,n){let s={};return n||(t=Fo(wa(t,r),r),e=Fo(wa(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(s.scheme=e.scheme,s.userinfo=e.userinfo,s.host=e.host,s.port=e.port,s.path=Cu(e.path||""),s.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(s.userinfo=e.userinfo,s.host=e.host,s.port=e.port,s.path=Cu(e.path||""),s.query=e.query):(e.path?(e.path[0]==="/"?s.path=Cu(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?s.path="/"+e.path:t.path?s.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:s.path=e.path,s.path=Cu(s.path)),s.query=e.query):(s.path=t.path,e.query!==void 0?s.query=e.query:s.query=t.query),s.userinfo=t.userinfo,s.host=t.host,s.port=t.port),s.scheme=t.scheme),s.fragment=e.fragment,s}function lX(t,e,r){let n=Sj(t,r),s=Sj(e,r);return n!==void 0&&s!==void 0&&n.toLowerCase()===s.toLowerCase()}function wa(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),s=[],i=kj(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=eX(r.path):(r.path=rX(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&s.push(r.scheme,":");let a=XY(r);if(a!==void 0&&(n.reference!=="suffix"&&s.push("//"),s.push(a),r.path&&r.path[0]!=="/"&&s.push("/")),r.path!==void 0){let o=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(o=Cu(o)),a===void 0&&o[0]==="/"&&o[1]==="/"&&(o="/%2F"+o.slice(2)),s.push(o)}return r.query!==void 0&&s.push("?",r.query),r.fragment!==void 0&&s.push("#",r.fragment),s.join("")}var uX=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function pX(t,e){if(e[2]!==void 0&&t.path&&t.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof t.port=="number"&&(t.port<0||t.port>65535))return"URI port is malformed."}function Tj(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},s=!1,i=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let a=t.match(uX);if(a){n.scheme=a[1],n.userinfo=a[3],n.host=a[4],n.port=parseInt(a[5],10),n.path=a[6]||"",n.query=a[7],n.fragment=a[8],isNaN(n.port)&&(n.port=a[5]);let o=pX(n,a);if(o!==void 0&&(n.error=n.error||o,s=!0),n.host)if(sX(n.host)===!1){let u=YY(n.host);n.host=u.host.toLowerCase(),i=u.isIPV6}else i=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let c=kj(r.scheme||n.scheme);if(!r.unicodeSupport&&(!c||!c.unicodeSupport)&&n.host&&(r.domainHost||c&&c.domainHost)&&i===!1&&iX(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(l){n.error=n.error||"Host's domain name can not be converted to ASCII: "+l}if((!c||c&&!c.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=nX(unescape(n.host),i))),n.path&&(n.path=tX(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}c&&c.parse&&c.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:s}}function Fo(t,e){return Tj(t,e).parsed}function dX(t,e){return Rj(t,e).normalized}function Rj(t,e){let{parsed:r,malformedAuthorityOrPort:n}=Tj(t,e);return{normalized:n?t:wa(r,e),malformedAuthorityOrPort:n}}function Sj(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=Rj(t,e);return n?void 0:r}if(typeof t=="object")return wa(t,e)}var y0={SCHEMES:aX,normalize:oX,resolve:cX,resolveComponent:Ej,equal:lX,serialize:wa,parse:Fo};Mf.exports=y0;Mf.exports.default=y0;Mf.exports.fastUri=y0});var Cj=P(b0=>{"use strict";Object.defineProperty(b0,"__esModule",{value:!0});var Ij=Pj();Ij.code='require("ajv/dist/runtime/uri").default';b0.default=Ij});var $j=P(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.CodeGen=Sr.Name=Sr.nil=Sr.stringify=Sr.str=Sr._=Sr.KeywordCxt=void 0;var mX=Pu();Object.defineProperty(Sr,"KeywordCxt",{enumerable:!0,get:function(){return mX.KeywordCxt}});var Ho=je();Object.defineProperty(Sr,"_",{enumerable:!0,get:function(){return Ho._}});Object.defineProperty(Sr,"str",{enumerable:!0,get:function(){return Ho.str}});Object.defineProperty(Sr,"stringify",{enumerable:!0,get:function(){return Ho.stringify}});Object.defineProperty(Sr,"nil",{enumerable:!0,get:function(){return Ho.nil}});Object.defineProperty(Sr,"Name",{enumerable:!0,get:function(){return Ho.Name}});Object.defineProperty(Sr,"CodeGen",{enumerable:!0,get:function(){return Ho.CodeGen}});var fX=Of(),Dj=Iu(),hX=G_(),Ou=jf(),gX=je(),Au=Eu(),zf=ku(),_0=Ke(),Oj=pj(),vX=Cj(),Mj=(t,e)=>new RegExp(t,e);Mj.code="new RegExp";var yX=["removeAdditional","useDefaults","coerceTypes"],bX=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),xX={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},_X={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Aj=200;function wX(t){var e,r,n,s,i,a,o,c,l,u,p,d,m,f,g,v,h,y,b,x,w,S,k,E,R;let O=t.strict,C=(e=t.code)===null||e===void 0?void 0:e.optimize,U=C===!0||C===void 0?1:C||0,q=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:Mj,Z=(s=t.uriResolver)!==null&&s!==void 0?s:vX.default;return{strictSchema:(a=(i=t.strictSchema)!==null&&i!==void 0?i:O)!==null&&a!==void 0?a:!0,strictNumbers:(c=(o=t.strictNumbers)!==null&&o!==void 0?o:O)!==null&&c!==void 0?c:!0,strictTypes:(u=(l=t.strictTypes)!==null&&l!==void 0?l:O)!==null&&u!==void 0?u:"log",strictTuples:(d=(p=t.strictTuples)!==null&&p!==void 0?p:O)!==null&&d!==void 0?d:"log",strictRequired:(f=(m=t.strictRequired)!==null&&m!==void 0?m:O)!==null&&f!==void 0?f:!1,code:t.code?{...t.code,optimize:U,regExp:q}:{optimize:U,regExp:q},loopRequired:(g=t.loopRequired)!==null&&g!==void 0?g:Aj,loopEnum:(v=t.loopEnum)!==null&&v!==void 0?v:Aj,meta:(h=t.meta)!==null&&h!==void 0?h:!0,messages:(y=t.messages)!==null&&y!==void 0?y:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(x=t.schemaId)!==null&&x!==void 0?x:"$id",addUsedSchema:(w=t.addUsedSchema)!==null&&w!==void 0?w:!0,validateSchema:(S=t.validateSchema)!==null&&S!==void 0?S:!0,validateFormats:(k=t.validateFormats)!==null&&k!==void 0?k:!0,unicodeRegExp:(E=t.unicodeRegExp)!==null&&E!==void 0?E:!0,int32range:(R=t.int32range)!==null&&R!==void 0?R:!0,uriResolver:Z}}var ju=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...wX(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new gX.ValueScope({scope:{},prefixes:bX,es5:r,lines:n}),this.logger=PX(e.logger);let s=e.validateFormats;e.validateFormats=!1,this.RULES=(0,hX.getRules)(),jj.call(this,xX,e,"NOT SUPPORTED"),jj.call(this,_X,e,"DEPRECATED","warn"),this._metaOpts=TX.call(this),e.formats&&kX.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&EX.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),SX.call(this),e.validateFormats=s}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,s=Oj;n==="id"&&(s={...Oj},s.id=s.$id,delete s.$id),r&&e&&this.addMetaSchema(s,s[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let s=n(r);return"$async"in n||(this.errors=n.errors),s}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return s.call(this,e,r);async function s(u,p){await i.call(this,u.$schema);let d=this._addSchema(u,p);return d.validate||a.call(this,d)}async function i(u){u&&!this.getSchema(u)&&await s.call(this,{$ref:u},!0)}async function a(u){try{return this._compileSchemaEnv(u)}catch(p){if(!(p instanceof Dj.default))throw p;return o.call(this,p),await c.call(this,p.missingSchema),a.call(this,u)}}function o({missingSchema:u,missingRef:p}){if(this.refs[u])throw new Error(`AnySchema ${u} is loaded but ${p} cannot be resolved`)}async function c(u){let p=await l.call(this,u);this.refs[u]||await i.call(this,p.$schema),this.refs[u]||this.addSchema(p,u,r)}async function l(u){let p=this._loading[u];if(p)return p;try{return await(this._loading[u]=n(u))}finally{delete this._loading[u]}}}addSchema(e,r,n,s=this.opts.validateSchema){if(Array.isArray(e)){for(let a of e)this.addSchema(a,void 0,n,s);return this}let i;if(typeof e=="object"){let{schemaId:a}=this.opts;if(i=e[a],i!==void 0&&typeof i!="string")throw new Error(`schema ${a} must be string`)}return r=(0,Au.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,s,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let s=this.validate(n,e);if(!s&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return s}getSchema(e){let r;for(;typeof(r=Nj.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,s=new Ou.SchemaEnv({schema:{},schemaId:n});if(r=Ou.resolveSchema.call(this,s,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=Nj.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,Au.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(CX.call(this,n,r),!r)return(0,_0.eachItem)(n,i=>x0.call(this,i)),this;AX.call(this,r);let s={...r,type:(0,zf.getJSONTypes)(r.type),schemaType:(0,zf.getJSONTypes)(r.schemaType)};return(0,_0.eachItem)(n,s.type.length===0?i=>x0.call(this,i,s):i=>s.type.forEach(a=>x0.call(this,i,s,a))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let s=n.rules.findIndex(i=>i.keyword===e);s>=0&&n.rules.splice(s,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(s=>`${n}${s.instancePath} ${s.message}`).reduce((s,i)=>s+r+i)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let s of r){let i=s.split("/").slice(1),a=e;for(let o of i)a=a[o];for(let o in n){let c=n[o];if(typeof c!="object")continue;let{$data:l}=c.definition,u=a[o];l&&u&&(a[o]=zj(u))}}return e}_removeAllSchemas(e,r){for(let n in e){let s=e[n];(!r||r.test(n))&&(typeof s=="string"?delete e[n]:s&&!s.meta&&(this._cache.delete(s.schema),delete e[n]))}}_addSchema(e,r,n,s=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:o}=this.opts;if(typeof e=="object")a=e[o];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,Au.normalizeId)(a||n);let l=Au.getSchemaRefs.call(this,e,n);return c=new Ou.SchemaEnv({schema:e,schemaId:o,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),s&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):Ou.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{Ou.compileSchema.call(this,e)}finally{this.opts=r}}};ju.ValidationError=fX.default;ju.MissingRefError=Dj.default;Sr.default=ju;function jj(t,e,r,n="error"){for(let s in t){let i=s;i in e&&this.logger[n](`${r}: option ${s}. ${t[i]}`)}}function Nj(t){return t=(0,Au.normalizeId)(t),this.schemas[t]||this.refs[t]}function SX(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function kX(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function EX(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let r=t[e];r.keyword||(r.keyword=e),this.addKeyword(r)}}function TX(){let t={...this.opts};for(let e of yX)delete t[e];return t}var RX={log(){},warn(){},error(){}};function PX(t){if(t===!1)return RX;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var IX=/^[a-z_$][a-z0-9_$:-]*$/i;function CX(t,e){let{RULES:r}=this;if((0,_0.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!IX.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function x0(t,e,r){var n;let s=e?.post;if(r&&s)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,a=s?i.post:i.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},i.rules.push(a)),i.keywords[t]=!0,!e)return;let o={keyword:t,definition:{...e,type:(0,zf.getJSONTypes)(e.type),schemaType:(0,zf.getJSONTypes)(e.schemaType)}};e.before?OX.call(this,a,o,e.before):a.rules.push(o),i.all[t]=o,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function OX(t,e,r){let n=t.rules.findIndex(s=>s.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function AX(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=zj(e)),t.validateSchema=this.compile(e,!0))}var jX={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function zj(t){return{anyOf:[t,jX]}}});var Lj=P(w0=>{"use strict";Object.defineProperty(w0,"__esModule",{value:!0});var NX={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};w0.default=NX});var Hj=P(Sa=>{"use strict";Object.defineProperty(Sa,"__esModule",{value:!0});Sa.callRef=Sa.getValidate=void 0;var DX=Iu(),Uj=Mn(),ln=je(),Bo=Ys(),qj=jf(),$f=Ke(),MX={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:s,schemaEnv:i,validateName:a,opts:o,self:c}=n,{root:l}=i;if((r==="#"||r==="#/")&&s===l.baseId)return p();let u=qj.resolveRef.call(c,l,s,r);if(u===void 0)throw new DX.default(n.opts.uriResolver,s,r);if(u instanceof qj.SchemaEnv)return d(u);return m(u);function p(){if(i===l)return Lf(t,a,i,i.$async);let f=e.scopeValue("root",{ref:l});return Lf(t,(0,ln._)`${f}.validate`,l,l.$async)}function d(f){let g=Fj(t,f);Lf(t,g,f,f.$async)}function m(f){let g=e.scopeValue("schema",o.code.source===!0?{ref:f,code:(0,ln.stringify)(f)}:{ref:f}),v=e.name("valid"),h=t.subschema({schema:f,dataTypes:[],schemaPath:ln.nil,topSchemaRef:g,errSchemaPath:r},v);t.mergeEvaluated(h),t.ok(v)}}};function Fj(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,ln._)`${r.scopeValue("wrapper",{ref:e})}.validate`}Sa.getValidate=Fj;function Lf(t,e,r,n){let{gen:s,it:i}=t,{allErrors:a,schemaEnv:o,opts:c}=i,l=c.passContext?Bo.default.this:ln.nil;n?u():p();function u(){if(!o.$async)throw new Error("async schema referenced by sync schema");let f=s.let("valid");s.try(()=>{s.code((0,ln._)`await ${(0,Uj.callValidateCode)(t,e,l)}`),m(e),a||s.assign(f,!0)},g=>{s.if((0,ln._)`!(${g} instanceof ${i.ValidationError})`,()=>s.throw(g)),d(g),a||s.assign(f,!1)}),t.ok(f)}function p(){t.result((0,Uj.callValidateCode)(t,e,l),()=>m(e),()=>d(e))}function d(f){let g=(0,ln._)`${f}.errors`;s.assign(Bo.default.vErrors,(0,ln._)`${Bo.default.vErrors} === null ? ${g} : ${Bo.default.vErrors}.concat(${g})`),s.assign(Bo.default.errors,(0,ln._)`${Bo.default.vErrors}.length`)}function m(f){var g;if(!i.opts.unevaluated)return;let v=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(i.props!==!0)if(v&&!v.dynamicProps)v.props!==void 0&&(i.props=$f.mergeEvaluated.props(s,v.props,i.props));else{let h=s.var("props",(0,ln._)`${f}.evaluated.props`);i.props=$f.mergeEvaluated.props(s,h,i.props,ln.Name)}if(i.items!==!0)if(v&&!v.dynamicItems)v.items!==void 0&&(i.items=$f.mergeEvaluated.items(s,v.items,i.items));else{let h=s.var("items",(0,ln._)`${f}.evaluated.items`);i.items=$f.mergeEvaluated.items(s,h,i.items,ln.Name)}}}Sa.callRef=Lf;Sa.default=MX});var Bj=P(S0=>{"use strict";Object.defineProperty(S0,"__esModule",{value:!0});var zX=Lj(),$X=Hj(),LX=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",zX.default,$X.default];S0.default=LX});var Wj=P(k0=>{"use strict";Object.defineProperty(k0,"__esModule",{value:!0});var Uf=je(),Ii=Uf.operators,qf={maximum:{okStr:"<=",ok:Ii.LTE,fail:Ii.GT},minimum:{okStr:">=",ok:Ii.GTE,fail:Ii.LT},exclusiveMaximum:{okStr:"<",ok:Ii.LT,fail:Ii.GTE},exclusiveMinimum:{okStr:">",ok:Ii.GT,fail:Ii.LTE}},UX={message:({keyword:t,schemaCode:e})=>(0,Uf.str)`must be ${qf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Uf._)`{comparison: ${qf[t].okStr}, limit: ${e}}`},qX={keyword:Object.keys(qf),type:"number",schemaType:"number",$data:!0,error:UX,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Uf._)`${r} ${qf[e].fail} ${n} || isNaN(${r})`)}};k0.default=qX});var Zj=P(E0=>{"use strict";Object.defineProperty(E0,"__esModule",{value:!0});var Nu=je(),FX={message:({schemaCode:t})=>(0,Nu.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,Nu._)`{multipleOf: ${t}}`},HX={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:FX,code(t){let{gen:e,data:r,schemaCode:n,it:s}=t,i=s.opts.multipleOfPrecision,a=e.let("res"),o=i?(0,Nu._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${i}`:(0,Nu._)`${a} !== parseInt(${a})`;t.fail$data((0,Nu._)`(${n} === 0 || (${a} = ${r}/${n}, ${o}))`)}};E0.default=HX});var Vj=P(T0=>{"use strict";Object.defineProperty(T0,"__esModule",{value:!0});function Gj(t){let e=t.length,r=0,n=0,s;for(;n=55296&&s<=56319&&n{"use strict";Object.defineProperty(R0,"__esModule",{value:!0});var ka=je(),BX=Ke(),WX=Vj(),ZX={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,ka.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,ka._)`{limit: ${t}}`},GX={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:ZX,code(t){let{keyword:e,data:r,schemaCode:n,it:s}=t,i=e==="maxLength"?ka.operators.GT:ka.operators.LT,a=s.opts.unicode===!1?(0,ka._)`${r}.length`:(0,ka._)`${(0,BX.useFunc)(t.gen,WX.default)}(${r})`;t.fail$data((0,ka._)`${a} ${i} ${n}`)}};R0.default=GX});var Jj=P(P0=>{"use strict";Object.defineProperty(P0,"__esModule",{value:!0});var VX=Mn(),KX=Ke(),Wo=je(),JX={message:({schemaCode:t})=>(0,Wo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Wo._)`{pattern: ${t}}`},QX={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:JX,code(t){let{gen:e,data:r,$data:n,schema:s,schemaCode:i,it:a}=t,o=a.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=a.opts.code,l=c.code==="new RegExp"?(0,Wo._)`new RegExp`:(0,KX.useFunc)(e,c),u=e.let("valid");e.try(()=>e.assign(u,(0,Wo._)`${l}(${i}, ${o}).test(${r})`),()=>e.assign(u,!1)),t.fail$data((0,Wo._)`!${u}`)}else{let c=(0,VX.usePattern)(t,s);t.fail$data((0,Wo._)`!${c}.test(${r})`)}}};P0.default=QX});var Qj=P(I0=>{"use strict";Object.defineProperty(I0,"__esModule",{value:!0});var Du=je(),YX={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Du.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Du._)`{limit: ${t}}`},XX={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:YX,code(t){let{keyword:e,data:r,schemaCode:n}=t,s=e==="maxProperties"?Du.operators.GT:Du.operators.LT;t.fail$data((0,Du._)`Object.keys(${r}).length ${s} ${n}`)}};I0.default=XX});var Yj=P(C0=>{"use strict";Object.defineProperty(C0,"__esModule",{value:!0});var Mu=Mn(),zu=je(),eee=Ke(),tee={message:({params:{missingProperty:t}})=>(0,zu.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,zu._)`{missingProperty: ${t}}`},ree={keyword:"required",type:"object",schemaType:"array",$data:!0,error:tee,code(t){let{gen:e,schema:r,schemaCode:n,data:s,$data:i,it:a}=t,{opts:o}=a;if(!i&&r.length===0)return;let c=r.length>=o.loopRequired;if(a.allErrors?l():u(),o.strictRequired){let m=t.parentSchema.properties,{definedProperties:f}=t.it;for(let g of r)if(m?.[g]===void 0&&!f.has(g)){let v=a.schemaEnv.baseId+a.errSchemaPath,h=`required property "${g}" is not defined at "${v}" (strictRequired)`;(0,eee.checkStrictMode)(a,h,a.opts.strictRequired)}}function l(){if(c||i)t.block$data(zu.nil,p);else for(let m of r)(0,Mu.checkReportMissingProp)(t,m)}function u(){let m=e.let("missing");if(c||i){let f=e.let("valid",!0);t.block$data(f,()=>d(m,f)),t.ok(f)}else e.if((0,Mu.checkMissingProp)(t,r,m)),(0,Mu.reportMissingProp)(t,m),e.else()}function p(){e.forOf("prop",n,m=>{t.setParams({missingProperty:m}),e.if((0,Mu.noPropertyInData)(e,s,m,o.ownProperties),()=>t.error())})}function d(m,f){t.setParams({missingProperty:m}),e.forOf(m,n,()=>{e.assign(f,(0,Mu.propertyInData)(e,s,m,o.ownProperties)),e.if((0,zu.not)(f),()=>{t.error(),e.break()})},zu.nil)}}};C0.default=ree});var Xj=P(O0=>{"use strict";Object.defineProperty(O0,"__esModule",{value:!0});var $u=je(),nee={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,$u.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,$u._)`{limit: ${t}}`},see={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:nee,code(t){let{keyword:e,data:r,schemaCode:n}=t,s=e==="maxItems"?$u.operators.GT:$u.operators.LT;t.fail$data((0,$u._)`${r}.length ${s} ${n}`)}};O0.default=see});var Ff=P(A0=>{"use strict";Object.defineProperty(A0,"__esModule",{value:!0});var eN=t0();eN.code='require("ajv/dist/runtime/equal").default';A0.default=eN});var tN=P(N0=>{"use strict";Object.defineProperty(N0,"__esModule",{value:!0});var j0=ku(),kr=je(),iee=Ke(),aee=Ff(),oee={message:({params:{i:t,j:e}})=>(0,kr.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,kr._)`{i: ${t}, j: ${e}}`},cee={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:oee,code(t){let{gen:e,data:r,$data:n,schema:s,parentSchema:i,schemaCode:a,it:o}=t;if(!n&&!s)return;let c=e.let("valid"),l=i.items?(0,j0.getSchemaTypes)(i.items):[];t.block$data(c,u,(0,kr._)`${a} === false`),t.ok(c);function u(){let f=e.let("i",(0,kr._)`${r}.length`),g=e.let("j");t.setParams({i:f,j:g}),e.assign(c,!0),e.if((0,kr._)`${f} > 1`,()=>(p()?d:m)(f,g))}function p(){return l.length>0&&!l.some(f=>f==="object"||f==="array")}function d(f,g){let v=e.name("item"),h=(0,j0.checkDataTypes)(l,v,o.opts.strictNumbers,j0.DataType.Wrong),y=e.const("indices",(0,kr._)`{}`);e.for((0,kr._)`;${f}--;`,()=>{e.let(v,(0,kr._)`${r}[${f}]`),e.if(h,(0,kr._)`continue`),l.length>1&&e.if((0,kr._)`typeof ${v} == "string"`,(0,kr._)`${v} += "_"`),e.if((0,kr._)`typeof ${y}[${v}] == "number"`,()=>{e.assign(g,(0,kr._)`${y}[${v}]`),t.error(),e.assign(c,!1).break()}).code((0,kr._)`${y}[${v}] = ${f}`)})}function m(f,g){let v=(0,iee.useFunc)(e,aee.default),h=e.name("outer");e.label(h).for((0,kr._)`;${f}--;`,()=>e.for((0,kr._)`${g} = ${f}; ${g}--;`,()=>e.if((0,kr._)`${v}(${r}[${f}], ${r}[${g}])`,()=>{t.error(),e.assign(c,!1).break(h)})))}}};N0.default=cee});var rN=P(M0=>{"use strict";Object.defineProperty(M0,"__esModule",{value:!0});var D0=je(),lee=Ke(),uee=Ff(),pee={message:"must be equal to constant",params:({schemaCode:t})=>(0,D0._)`{allowedValue: ${t}}`},dee={keyword:"const",$data:!0,error:pee,code(t){let{gen:e,data:r,$data:n,schemaCode:s,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,D0._)`!${(0,lee.useFunc)(e,uee.default)}(${r}, ${s})`):t.fail((0,D0._)`${i} !== ${r}`)}};M0.default=dee});var nN=P(z0=>{"use strict";Object.defineProperty(z0,"__esModule",{value:!0});var Lu=je(),mee=Ke(),fee=Ff(),hee={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Lu._)`{allowedValues: ${t}}`},gee={keyword:"enum",schemaType:"array",$data:!0,error:hee,code(t){let{gen:e,data:r,$data:n,schema:s,schemaCode:i,it:a}=t;if(!n&&s.length===0)throw new Error("enum must have non-empty array");let o=s.length>=a.opts.loopEnum,c,l=()=>c??(c=(0,mee.useFunc)(e,fee.default)),u;if(o||n)u=e.let("valid"),t.block$data(u,p);else{if(!Array.isArray(s))throw new Error("ajv implementation error");let m=e.const("vSchema",i);u=(0,Lu.or)(...s.map((f,g)=>d(m,g)))}t.pass(u);function p(){e.assign(u,!1),e.forOf("v",i,m=>e.if((0,Lu._)`${l()}(${r}, ${m})`,()=>e.assign(u,!0).break()))}function d(m,f){let g=s[f];return typeof g=="object"&&g!==null?(0,Lu._)`${l()}(${r}, ${m}[${f}])`:(0,Lu._)`${r} === ${g}`}}};z0.default=gee});var sN=P($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});var vee=Wj(),yee=Zj(),bee=Kj(),xee=Jj(),_ee=Qj(),wee=Yj(),See=Xj(),kee=tN(),Eee=rN(),Tee=nN(),Ree=[vee.default,yee.default,bee.default,xee.default,_ee.default,wee.default,See.default,kee.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Eee.default,Tee.default];$0.default=Ree});var U0=P(Uu=>{"use strict";Object.defineProperty(Uu,"__esModule",{value:!0});Uu.validateAdditionalItems=void 0;var Ea=je(),L0=Ke(),Pee={message:({params:{len:t}})=>(0,Ea.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Ea._)`{limit: ${t}}`},Iee={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Pee,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,L0.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}iN(t,n)}};function iN(t,e){let{gen:r,schema:n,data:s,keyword:i,it:a}=t;a.items=!0;let o=r.const("len",(0,Ea._)`${s}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Ea._)`${o} <= ${e.length}`);else if(typeof n=="object"&&!(0,L0.alwaysValidSchema)(a,n)){let l=r.var("valid",(0,Ea._)`${o} <= ${e.length}`);r.if((0,Ea.not)(l),()=>c(l)),t.ok(l)}function c(l){r.forRange("i",e.length,o,u=>{t.subschema({keyword:i,dataProp:u,dataPropType:L0.Type.Num},l),a.allErrors||r.if((0,Ea.not)(l),()=>r.break())})}}Uu.validateAdditionalItems=iN;Uu.default=Iee});var q0=P(qu=>{"use strict";Object.defineProperty(qu,"__esModule",{value:!0});qu.validateTuple=void 0;var aN=je(),Hf=Ke(),Cee=Mn(),Oee={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return oN(t,"additionalItems",e);r.items=!0,!(0,Hf.alwaysValidSchema)(r,e)&&t.ok((0,Cee.validateArray)(t))}};function oN(t,e,r=t.schema){let{gen:n,parentSchema:s,data:i,keyword:a,it:o}=t;u(s),o.opts.unevaluated&&r.length&&o.items!==!0&&(o.items=Hf.mergeEvaluated.items(n,r.length,o.items));let c=n.name("valid"),l=n.const("len",(0,aN._)`${i}.length`);r.forEach((p,d)=>{(0,Hf.alwaysValidSchema)(o,p)||(n.if((0,aN._)`${l} > ${d}`,()=>t.subschema({keyword:a,schemaProp:d,dataProp:d},c)),t.ok(c))});function u(p){let{opts:d,errSchemaPath:m}=o,f=r.length,g=f===p.minItems&&(f===p.maxItems||p[e]===!1);if(d.strictTuples&&!g){let v=`"${a}" is ${f}-tuple, but minItems or maxItems/${e} are not specified or different at path "${m}"`;(0,Hf.checkStrictMode)(o,v,d.strictTuples)}}}qu.validateTuple=oN;qu.default=Oee});var cN=P(F0=>{"use strict";Object.defineProperty(F0,"__esModule",{value:!0});var Aee=q0(),jee={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,Aee.validateTuple)(t,"items")};F0.default=jee});var uN=P(H0=>{"use strict";Object.defineProperty(H0,"__esModule",{value:!0});var lN=je(),Nee=Ke(),Dee=Mn(),Mee=U0(),zee={message:({params:{len:t}})=>(0,lN.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,lN._)`{limit: ${t}}`},$ee={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:zee,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:s}=r;n.items=!0,!(0,Nee.alwaysValidSchema)(n,e)&&(s?(0,Mee.validateAdditionalItems)(t,s):t.ok((0,Dee.validateArray)(t)))}};H0.default=$ee});var pN=P(B0=>{"use strict";Object.defineProperty(B0,"__esModule",{value:!0});var $n=je(),Bf=Ke(),Lee={message:({params:{min:t,max:e}})=>e===void 0?(0,$n.str)`must contain at least ${t} valid item(s)`:(0,$n.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,$n._)`{minContains: ${t}}`:(0,$n._)`{minContains: ${t}, maxContains: ${e}}`},Uee={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Lee,code(t){let{gen:e,schema:r,parentSchema:n,data:s,it:i}=t,a,o,{minContains:c,maxContains:l}=n;i.opts.next?(a=c===void 0?1:c,o=l):a=1;let u=e.const("len",(0,$n._)`${s}.length`);if(t.setParams({min:a,max:o}),o===void 0&&a===0){(0,Bf.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&a>o){(0,Bf.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Bf.alwaysValidSchema)(i,r)){let g=(0,$n._)`${u} >= ${a}`;o!==void 0&&(g=(0,$n._)`${g} && ${u} <= ${o}`),t.pass(g);return}i.items=!0;let p=e.name("valid");o===void 0&&a===1?m(p,()=>e.if(p,()=>e.break())):a===0?(e.let(p,!0),o!==void 0&&e.if((0,$n._)`${s}.length > 0`,d)):(e.let(p,!1),d()),t.result(p,()=>t.reset());function d(){let g=e.name("_valid"),v=e.let("count",0);m(g,()=>e.if(g,()=>f(v)))}function m(g,v){e.forRange("i",0,u,h=>{t.subschema({keyword:"contains",dataProp:h,dataPropType:Bf.Type.Num,compositeRule:!0},g),v()})}function f(g){e.code((0,$n._)`${g}++`),o===void 0?e.if((0,$n._)`${g} >= ${a}`,()=>e.assign(p,!0).break()):(e.if((0,$n._)`${g} > ${o}`,()=>e.assign(p,!1).break()),a===1?e.assign(p,!0):e.if((0,$n._)`${g} >= ${a}`,()=>e.assign(p,!0)))}}};B0.default=Uee});var fN=P(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});Is.validateSchemaDeps=Is.validatePropertyDeps=Is.error=void 0;var W0=je(),qee=Ke(),Fu=Mn();Is.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,W0.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,W0._)`{property: ${t}, + || ${a} === "boolean" || ${s} === null`).assign(o,(0,Ce._)`[${s}]`)}}}function nQ({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,Ce._)`${e} !== undefined`,()=>t.assign((0,Ce._)`${e}[${r}]`,n))}function Z_(t,e,r,n=zo.Correct){let s=n===zo.Correct?Ce.operators.EQ:Ce.operators.NEQ,i;switch(t){case"null":return(0,Ce._)`${e} ${s} null`;case"array":i=(0,Ce._)`Array.isArray(${e})`;break;case"object":i=(0,Ce._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=a((0,Ce._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=a();break;default:return(0,Ce._)`typeof ${e} ${s} ${t}`}return n===zo.Correct?i:(0,Ce.not)(i);function a(o=Ce.nil){return(0,Ce.and)((0,Ce._)`typeof ${e} == "number"`,o,r?(0,Ce._)`isFinite(${e})`:Ce.nil)}}Dr.checkDataType=Z_;function G_(t,e,r,n){if(t.length===1)return Z_(t[0],e,r,n);let s,i=(0,RA.toHash)(t);if(i.array&&i.object){let a=(0,Ce._)`typeof ${e} != "object"`;s=i.null?a:(0,Ce._)`!${e} || ${a}`,delete i.null,delete i.array,delete i.object}else s=Ce.nil;i.number&&delete i.integer;for(let a in i)s=(0,Ce.and)(s,Z_(a,e,r,n));return s}Dr.checkDataTypes=G_;var sQ={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,Ce._)`{type: ${t}}`:(0,Ce._)`{type: ${e}}`};function V_(t){let e=iQ(t);(0,YJ.reportError)(e,sQ)}Dr.reportTypeError=V_;function iQ(t){let{gen:e,data:r,schema:n}=t,s=(0,RA.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:s,schemaValue:s,parentSchema:n,params:{},it:t}}});var OA=P(kf=>{"use strict";Object.defineProperty(kf,"__esModule",{value:!0});kf.assignDefaults=void 0;var $o=je(),aQ=Ke();function oQ(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let s in r)CA(t,s,r[s].default);else e==="array"&&Array.isArray(n)&&n.forEach((s,i)=>CA(t,i,s.default))}kf.assignDefaults=oQ;function CA(t,e,r){let{gen:n,compositeRule:s,data:i,opts:a}=t;if(r===void 0)return;let o=(0,$o._)`${i}${(0,$o.getProperty)(e)}`;if(s){(0,aQ.checkStrictMode)(t,`default is ignored for: ${o}`);return}let c=(0,$o._)`${o} === undefined`;a.useDefaults==="empty"&&(c=(0,$o._)`${c} || ${o} === null || ${o} === ""`),n.if(c,(0,$o._)`${o} = ${(0,$o.stringify)(r)}`)}});var Mn=P(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.validateUnion=ht.validateArray=ht.usePattern=ht.callValidateCode=ht.schemaProperties=ht.allSchemaProperties=ht.noPropertyInData=ht.propertyInData=ht.isOwnProperty=ht.hasPropFunc=ht.reportMissingProp=ht.checkMissingProp=ht.checkReportMissingProp=void 0;var It=je(),K_=Ke(),ki=Ys(),cQ=Ke();function lQ(t,e){let{gen:r,data:n,it:s}=t;r.if(Q_(r,n,e,s.opts.ownProperties),()=>{t.setParams({missingProperty:(0,It._)`${e}`},!0),t.error()})}ht.checkReportMissingProp=lQ;function uQ({gen:t,data:e,it:{opts:r}},n,s){return(0,It.or)(...n.map(i=>(0,It.and)(Q_(t,e,i,r.ownProperties),(0,It._)`${s} = ${i}`)))}ht.checkMissingProp=uQ;function pQ(t,e){t.setParams({missingProperty:e},!0),t.error()}ht.reportMissingProp=pQ;function AA(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,It._)`Object.prototype.hasOwnProperty`})}ht.hasPropFunc=AA;function J_(t,e,r){return(0,It._)`${AA(t)}.call(${e}, ${r})`}ht.isOwnProperty=J_;function dQ(t,e,r,n){let s=(0,It._)`${e}${(0,It.getProperty)(r)} !== undefined`;return n?(0,It._)`${s} && ${J_(t,e,r)}`:s}ht.propertyInData=dQ;function Q_(t,e,r,n){let s=(0,It._)`${e}${(0,It.getProperty)(r)} === undefined`;return n?(0,It.or)(s,(0,It.not)(J_(t,e,r))):s}ht.noPropertyInData=Q_;function jA(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ht.allSchemaProperties=jA;function mQ(t,e){return jA(e).filter(r=>!(0,K_.alwaysValidSchema)(t,e[r]))}ht.schemaProperties=mQ;function fQ({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:s,errorPath:i},it:a},o,c,l){let u=l?(0,It._)`${t}, ${e}, ${n}${s}`:e,p=[[ki.default.instancePath,(0,It.strConcat)(ki.default.instancePath,i)],[ki.default.parentData,a.parentData],[ki.default.parentDataProperty,a.parentDataProperty],[ki.default.rootData,ki.default.rootData]];a.opts.dynamicRef&&p.push([ki.default.dynamicAnchors,ki.default.dynamicAnchors]);let d=(0,It._)`${u}, ${r.object(...p)}`;return c!==It.nil?(0,It._)`${o}.call(${c}, ${d})`:(0,It._)`${o}(${d})`}ht.callValidateCode=fQ;var hQ=(0,It._)`new RegExp`;function gQ({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:s}=e.code,i=s(r,n);return t.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,It._)`${s.code==="new RegExp"?hQ:(0,cQ.useFunc)(t,s)}(${r}, ${n})`})}ht.usePattern=gQ;function vQ(t){let{gen:e,data:r,keyword:n,it:s}=t,i=e.name("valid");if(s.allErrors){let o=e.let("valid",!0);return a(()=>e.assign(o,!1)),o}return e.var(i,!0),a(()=>e.break()),i;function a(o){let c=e.const("len",(0,It._)`${r}.length`);e.forRange("i",0,c,l=>{t.subschema({keyword:n,dataProp:l,dataPropType:K_.Type.Num},i),e.if((0,It.not)(i),o)})}}ht.validateArray=vQ;function yQ(t){let{gen:e,schema:r,keyword:n,it:s}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,K_.alwaysValidSchema)(s,c))&&!s.opts.unevaluated)return;let a=e.let("valid",!1),o=e.name("_valid");e.block(()=>r.forEach((c,l)=>{let u=t.subschema({keyword:n,schemaProp:l,compositeRule:!0},o);e.assign(a,(0,It._)`${a} || ${o}`),t.mergeValidEvaluated(u,o)||e.if((0,It.not)(a))})),t.result(a,()=>t.reset(),()=>t.error(!0))}ht.validateUnion=yQ});var MA=P(Rs=>{"use strict";Object.defineProperty(Rs,"__esModule",{value:!0});Rs.validateKeywordUsage=Rs.validSchemaType=Rs.funcKeywordCode=Rs.macroKeywordCode=void 0;var Ur=je(),ba=Ys(),bQ=Mn(),xQ=wu();function _Q(t,e){let{gen:r,keyword:n,schema:s,parentSchema:i,it:a}=t,o=e.macro.call(a.self,s,i,a),c=DA(r,n,o);a.opts.validateSchema!==!1&&a.self.validateSchema(o,!0);let l=r.name("valid");t.subschema({schema:o,schemaPath:Ur.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),t.pass(l,()=>t.error(!0))}Rs.macroKeywordCode=_Q;function wQ(t,e){var r;let{gen:n,keyword:s,schema:i,parentSchema:a,$data:o,it:c}=t;EQ(c,e);let l=!o&&e.compile?e.compile.call(c.self,i,a,c):e.validate,u=DA(n,s,l),p=n.let("valid");t.block$data(p,d),t.ok((r=e.valid)!==null&&r!==void 0?r:p);function d(){if(e.errors===!1)g(),e.modifying&&NA(t),v(()=>t.error());else{let h=e.async?m():f();e.modifying&&NA(t),v(()=>SQ(t,h))}}function m(){let h=n.let("ruleErrs",null);return n.try(()=>g((0,Ur._)`await `),y=>n.assign(p,!1).if((0,Ur._)`${y} instanceof ${c.ValidationError}`,()=>n.assign(h,(0,Ur._)`${y}.errors`),()=>n.throw(y))),h}function f(){let h=(0,Ur._)`${u}.errors`;return n.assign(h,null),g(Ur.nil),h}function g(h=e.async?(0,Ur._)`await `:Ur.nil){let y=c.opts.passContext?ba.default.this:ba.default.self,b=!("compile"in e&&!o||e.schema===!1);n.assign(p,(0,Ur._)`${h}${(0,bQ.callValidateCode)(t,u,y,b)}`,e.modifying)}function v(h){var y;n.if((0,Ur.not)((y=e.valid)!==null&&y!==void 0?y:p),h)}}Rs.funcKeywordCode=wQ;function NA(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Ur._)`${n.parentData}[${n.parentDataProperty}]`))}function SQ(t,e){let{gen:r}=t;r.if((0,Ur._)`Array.isArray(${e})`,()=>{r.assign(ba.default.vErrors,(0,Ur._)`${ba.default.vErrors} === null ? ${e} : ${ba.default.vErrors}.concat(${e})`).assign(ba.default.errors,(0,Ur._)`${ba.default.vErrors}.length`),(0,xQ.extendErrors)(t)},()=>t.error())}function EQ({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function DA(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Ur.stringify)(r)})}function kQ(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}Rs.validSchemaType=kQ;function TQ({schema:t,opts:e,self:r,errSchemaPath:n},s,i){if(Array.isArray(s.keyword)?!s.keyword.includes(i):s.keyword!==i)throw new Error("ajv implementation error");let a=s.dependencies;if(a?.some(o=>!Object.prototype.hasOwnProperty.call(t,o)))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(s.validateSchema&&!s.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(s.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Rs.validateKeywordUsage=TQ});var $A=P(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});Ti.extendSubschemaMode=Ti.extendSubschemaData=Ti.getSubschema=void 0;var Ps=je(),zA=Ke();function RQ(t,{keyword:e,schemaProp:r,schema:n,schemaPath:s,errSchemaPath:i,topSchemaRef:a}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let o=t.schema[e];return r===void 0?{schema:o,schemaPath:(0,Ps._)`${t.schemaPath}${(0,Ps.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:o[r],schemaPath:(0,Ps._)`${t.schemaPath}${(0,Ps.getProperty)(e)}${(0,Ps.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,zA.escapeFragment)(r)}`}}if(n!==void 0){if(s===void 0||i===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:s,topSchemaRef:a,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Ti.getSubschema=RQ;function PQ(t,e,{dataProp:r,dataPropType:n,data:s,dataTypes:i,propertyName:a}){if(s!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=e;if(r!==void 0){let{errorPath:l,dataPathArr:u,opts:p}=e,d=o.let("data",(0,Ps._)`${e.data}${(0,Ps.getProperty)(r)}`,!0);c(d),t.errorPath=(0,Ps.str)`${l}${(0,zA.getErrorPath)(r,n,p.jsPropertySyntax)}`,t.parentDataProperty=(0,Ps._)`${r}`,t.dataPathArr=[...u,t.parentDataProperty]}if(s!==void 0){let l=s instanceof Ps.Name?s:o.let("data",s,!0);c(l),a!==void 0&&(t.propertyName=a)}i&&(t.dataTypes=i);function c(l){t.data=l,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,l]}}Ti.extendSubschemaData=PQ;function IQ(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:s,allErrors:i}){n!==void 0&&(t.compositeRule=n),s!==void 0&&(t.createErrors=s),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}Ti.extendSubschemaMode=IQ});var Y_=P((FOe,LA)=>{"use strict";LA.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,s,i;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(s=n;s--!==0;)if(!t(e[s],r[s]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(r).length)return!1;for(s=n;s--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[s]))return!1;for(s=n;s--!==0;){var a=i[s];if(!t(e[a],r[a]))return!1}return!0}return e!==e&&r!==r}});var qA=P((HOe,UA)=>{"use strict";var Ri=UA.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},s=r.post||function(){};Tf(e,n,s,t,"",t)};Ri.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Ri.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Ri.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Ri.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Tf(t,e,r,n,s,i,a,o,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,s,i,a,o,c,l);for(var u in n){var p=n[u];if(Array.isArray(p)){if(u in Ri.arrayKeywords)for(var d=0;d{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.getSchemaRefs=cn.resolveUrl=cn.normalizeId=cn._getFullPath=cn.getFullPath=cn.inlineRef=void 0;var OQ=Ke(),AQ=Y_(),jQ=qA(),NQ=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function DQ(t,e=!0){return typeof t=="boolean"?!0:e===!0?!X_(t):e?FA(t)<=e:!1}cn.inlineRef=DQ;var MQ=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function X_(t){for(let e in t){if(MQ.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(X_)||typeof r=="object"&&X_(r))return!0}return!1}function FA(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!NQ.has(r)&&(typeof t[r]=="object"&&(0,OQ.eachItem)(t[r],n=>e+=FA(n)),e===1/0))return 1/0}return e}function HA(t,e="",r){r!==!1&&(e=Lo(e));let n=t.parse(e);return BA(t,n)}cn.getFullPath=HA;function BA(t,e){return t.serialize(e).split("#")[0]+"#"}cn._getFullPath=BA;var zQ=/#\/?$/;function Lo(t){return t?t.replace(zQ,""):""}cn.normalizeId=Lo;function $Q(t,e,r){return r=Lo(r),t.resolve(e,r)}cn.resolveUrl=$Q;var LQ=/^[a-z_][-a-z0-9._]*$/i;function UQ(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,s=Lo(t[r]||e),i={"":s},a=HA(n,s,!1),o={},c=new Set;return jQ(t,{allKeys:!0},(p,d,m,f)=>{if(f===void 0)return;let g=a+d,v=i[f];typeof p[r]=="string"&&(v=h.call(this,p[r])),y.call(this,p.$anchor),y.call(this,p.$dynamicAnchor),i[d]=v;function h(b){let x=this.opts.uriResolver.resolve;if(b=Lo(v?x(v,b):b),c.has(b))throw u(b);c.add(b);let w=this.refs[b];return typeof w=="string"&&(w=this.refs[w]),typeof w=="object"?l(p,w.schema,b):b!==Lo(g)&&(b[0]==="#"?(l(p,o[b],b),o[b]=p):this.refs[b]=g),b}function y(b){if(typeof b=="string"){if(!LQ.test(b))throw new Error(`invalid anchor "${b}"`);h.call(this,`#${b}`)}}}),o;function l(p,d,m){if(d!==void 0&&!AQ(p,d))throw u(m)}function u(p){return new Error(`reference "${p}" resolves to more than one schema`)}}cn.getSchemaRefs=UQ});var Ru=P(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.getData=Pi.KeywordCxt=Pi.validateFunctionCode=void 0;var KA=EA(),WA=Su(),t0=W_(),Rf=Su(),qQ=OA(),Tu=MA(),e0=$A(),fe=je(),ke=Ys(),FQ=Eu(),Xs=Ke(),ku=wu();function HQ(t){if(YA(t)&&(XA(t),QA(t))){ZQ(t);return}JA(t,()=>(0,KA.topBoolOrEmptySchema)(t))}Pi.validateFunctionCode=HQ;function JA({gen:t,validateName:e,schema:r,schemaEnv:n,opts:s},i){s.code.es5?t.func(e,(0,fe._)`${ke.default.data}, ${ke.default.valCxt}`,n.$async,()=>{t.code((0,fe._)`"use strict"; ${ZA(r,s)}`),WQ(t,s),t.code(i)}):t.func(e,(0,fe._)`${ke.default.data}, ${BQ(s)}`,n.$async,()=>t.code(ZA(r,s)).code(i))}function BQ(t){return(0,fe._)`{${ke.default.instancePath}="", ${ke.default.parentData}, ${ke.default.parentDataProperty}, ${ke.default.rootData}=${ke.default.data}${t.dynamicRef?(0,fe._)`, ${ke.default.dynamicAnchors}={}`:fe.nil}}={}`}function WQ(t,e){t.if(ke.default.valCxt,()=>{t.var(ke.default.instancePath,(0,fe._)`${ke.default.valCxt}.${ke.default.instancePath}`),t.var(ke.default.parentData,(0,fe._)`${ke.default.valCxt}.${ke.default.parentData}`),t.var(ke.default.parentDataProperty,(0,fe._)`${ke.default.valCxt}.${ke.default.parentDataProperty}`),t.var(ke.default.rootData,(0,fe._)`${ke.default.valCxt}.${ke.default.rootData}`),e.dynamicRef&&t.var(ke.default.dynamicAnchors,(0,fe._)`${ke.default.valCxt}.${ke.default.dynamicAnchors}`)},()=>{t.var(ke.default.instancePath,(0,fe._)`""`),t.var(ke.default.parentData,(0,fe._)`undefined`),t.var(ke.default.parentDataProperty,(0,fe._)`undefined`),t.var(ke.default.rootData,ke.default.data),e.dynamicRef&&t.var(ke.default.dynamicAnchors,(0,fe._)`{}`)})}function ZQ(t){let{schema:e,opts:r,gen:n}=t;JA(t,()=>{r.$comment&&e.$comment&&tj(t),QQ(t),n.let(ke.default.vErrors,null),n.let(ke.default.errors,0),r.unevaluated&&GQ(t),ej(t),eY(t)})}function GQ(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,fe._)`${r}.evaluated`),e.if((0,fe._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,fe._)`${t.evaluated}.props`,(0,fe._)`undefined`)),e.if((0,fe._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,fe._)`${t.evaluated}.items`,(0,fe._)`undefined`))}function ZA(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,fe._)`/*# sourceURL=${r} */`:fe.nil}function VQ(t,e){if(YA(t)&&(XA(t),QA(t))){KQ(t,e);return}(0,KA.boolOrEmptySchema)(t,e)}function QA({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let r in t)if(e.RULES.all[r])return!0;return!1}function YA(t){return typeof t.schema!="boolean"}function KQ(t,e){let{schema:r,gen:n,opts:s}=t;s.$comment&&r.$comment&&tj(t),YQ(t),XQ(t);let i=n.const("_errs",ke.default.errors);ej(t,i),n.var(e,(0,fe._)`${i} === ${ke.default.errors}`)}function XA(t){(0,Xs.checkUnknownRules)(t),JQ(t)}function ej(t,e){if(t.opts.jtd)return GA(t,[],!1,e);let r=(0,WA.getSchemaTypes)(t.schema),n=(0,WA.coerceAndCheckDataType)(t,r);GA(t,r,!n,e)}function JQ(t){let{schema:e,errSchemaPath:r,opts:n,self:s}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,Xs.schemaHasRulesButRef)(e,s.RULES)&&s.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function QQ(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Xs.checkStrictMode)(t,"default is ignored in the schema root")}function YQ(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,FQ.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function XQ(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function tj({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:s}){let i=r.$comment;if(s.$comment===!0)t.code((0,fe._)`${ke.default.self}.logger.log(${i})`);else if(typeof s.$comment=="function"){let a=(0,fe.str)`${n}/$comment`,o=t.scopeValue("root",{ref:e.root});t.code((0,fe._)`${ke.default.self}.opts.$comment(${i}, ${a}, ${o}.schema)`)}}function eY(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:s,opts:i}=t;r.$async?e.if((0,fe._)`${ke.default.errors} === 0`,()=>e.return(ke.default.data),()=>e.throw((0,fe._)`new ${s}(${ke.default.vErrors})`)):(e.assign((0,fe._)`${n}.errors`,ke.default.vErrors),i.unevaluated&&tY(t),e.return((0,fe._)`${ke.default.errors} === 0`))}function tY({gen:t,evaluated:e,props:r,items:n}){r instanceof fe.Name&&t.assign((0,fe._)`${e}.props`,r),n instanceof fe.Name&&t.assign((0,fe._)`${e}.items`,n)}function GA(t,e,r,n){let{gen:s,schema:i,data:a,allErrors:o,opts:c,self:l}=t,{RULES:u}=l;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,Xs.schemaHasRulesButRef)(i,u))){s.block(()=>nj(t,"$ref",u.all.$ref.definition));return}c.jtd||rY(t,e),s.block(()=>{for(let d of u.rules)p(d);p(u.post)});function p(d){(0,t0.shouldUseGroup)(i,d)&&(d.type?(s.if((0,Rf.checkDataType)(d.type,a,c.strictNumbers)),VA(t,d),e.length===1&&e[0]===d.type&&r&&(s.else(),(0,Rf.reportTypeError)(t)),s.endIf()):VA(t,d),o||s.if((0,fe._)`${ke.default.errors} === ${n||0}`))}}function VA(t,e){let{gen:r,schema:n,opts:{useDefaults:s}}=t;s&&(0,qQ.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,t0.shouldUseRule)(n,i)&&nj(t,i.keyword,i.definition,e.type)})}function rY(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(nY(t,e),t.opts.allowUnionTypes||sY(t,e),iY(t,t.dataTypes))}function nY(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{rj(t.dataTypes,r)||r0(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),oY(t,e)}}function sY(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&r0(t,"use allowUnionTypes to allow union type keyword")}function iY(t,e){let r=t.self.RULES.all;for(let n in r){let s=r[n];if(typeof s=="object"&&(0,t0.shouldUseRule)(t.schema,s)){let{type:i}=s.definition;i.length&&!i.some(a=>aY(e,a))&&r0(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function aY(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function rj(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function oY(t,e){let r=[];for(let n of t.dataTypes)rj(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function r0(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,Xs.checkStrictMode)(t,e,t.opts.strictTypes)}var Pf=class{constructor(e,r,n){if((0,Tu.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Xs.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",sj(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,Tu.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",ke.default.errors))}result(e,r,n){this.failResult((0,fe.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,fe.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,fe._)`${r} !== undefined && (${(0,fe.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?ku.reportExtraError:ku.reportError)(this,this.def.error,r)}$dataError(){(0,ku.reportError)(this,this.def.$dataError||ku.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,ku.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=fe.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=fe.nil,r=fe.nil){if(!this.$data)return;let{gen:n,schemaCode:s,schemaType:i,def:a}=this;n.if((0,fe.or)((0,fe._)`${s} === undefined`,r)),e!==fe.nil&&n.assign(e,!0),(i.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==fe.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:s,it:i}=this;return(0,fe.or)(a(),o());function a(){if(n.length){if(!(r instanceof fe.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,fe._)`${(0,Rf.checkDataTypes)(c,r,i.opts.strictNumbers,Rf.DataType.Wrong)}`}return fe.nil}function o(){if(s.validateSchema){let c=e.scopeValue("validate$data",{ref:s.validateSchema});return(0,fe._)`!${c}(${r})`}return fe.nil}}subschema(e,r){let n=(0,e0.getSubschema)(this.it,e);(0,e0.extendSubschemaData)(n,this.it,e),(0,e0.extendSubschemaMode)(n,e);let s={...this.it,...n,items:void 0,props:void 0};return VQ(s,r),s}mergeEvaluated(e,r){let{it:n,gen:s}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=Xs.mergeEvaluated.props(s,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=Xs.mergeEvaluated.items(s,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:s}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return s.if(r,()=>this.mergeEvaluated(e,fe.Name)),!0}};Pi.KeywordCxt=Pf;function nj(t,e,r,n){let s=new Pf(t,r,e);"code"in r?r.code(s,n):s.$data&&r.validate?(0,Tu.funcKeywordCode)(s,r):"macro"in r?(0,Tu.macroKeywordCode)(s,r):(r.compile||r.validate)&&(0,Tu.funcKeywordCode)(s,r)}var cY=/^\/(?:[^~]|~0|~1)*$/,lY=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function sj(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let s,i;if(t==="")return ke.default.rootData;if(t[0]==="/"){if(!cY.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);s=t,i=ke.default.rootData}else{let l=lY.exec(t);if(!l)throw new Error(`Invalid JSON-pointer: ${t}`);let u=+l[1];if(s=l[2],s==="#"){if(u>=e)throw new Error(c("property/index",u));return n[e-u]}if(u>e)throw new Error(c("data",u));if(i=r[e-u],!s)return i}let a=i,o=s.split("/");for(let l of o)l&&(i=(0,fe._)`${i}${(0,fe.getProperty)((0,Xs.unescapeJsonPointer)(l))}`,a=(0,fe._)`${a} && ${i}`);return a;function c(l,u){return`Cannot access ${l} ${u} levels up, current level is ${e}`}}Pi.getData=sj});var If=P(s0=>{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});var n0=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};s0.default=n0});var Pu=P(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});var i0=Eu(),a0=class extends Error{constructor(e,r,n,s){super(s||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,i0.resolveUrl)(e,r,n),this.missingSchema=(0,i0.normalizeId)((0,i0.getFullPath)(e,this.missingRef))}};o0.default=a0});var Of=P(zn=>{"use strict";Object.defineProperty(zn,"__esModule",{value:!0});zn.resolveSchema=zn.getCompilingSchema=zn.resolveRef=zn.compileSchema=zn.SchemaEnv=void 0;var as=je(),uY=If(),xa=Ys(),os=Eu(),ij=Ke(),pY=Ru(),Uo=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,os.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};zn.SchemaEnv=Uo;function l0(t){let e=aj.call(this,t);if(e)return e;let r=(0,os.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:s}=this.opts.code,{ownProperties:i}=this.opts,a=new as.CodeGen(this.scope,{es5:n,lines:s,ownProperties:i}),o;t.$async&&(o=a.scopeValue("Error",{ref:uY.default,code:(0,as._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");t.validateName=c;let l={gen:a,allErrors:this.opts.allErrors,data:xa.default.data,parentData:xa.default.parentData,parentDataProperty:xa.default.parentDataProperty,dataNames:[xa.default.data],dataPathArr:[as.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,as.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:o,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:as.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,as._)`""`,opts:this.opts,self:this},u;try{this._compilations.add(t),(0,pY.validateFunctionCode)(l),a.optimize(this.opts.code.optimize);let p=a.toString();u=`${a.scopeRefs(xa.default.scope)}return ${p}`,this.opts.code.process&&(u=this.opts.code.process(u,t));let m=new Function(`${xa.default.self}`,`${xa.default.scope}`,u)(this,this.scope.get());if(this.scope.value(c,{ref:m}),m.errors=null,m.schema=t.schema,m.schemaEnv=t,t.$async&&(m.$async=!0),this.opts.code.source===!0&&(m.source={validateName:c,validateCode:p,scopeValues:a._values}),this.opts.unevaluated){let{props:f,items:g}=l;m.evaluated={props:f instanceof as.Name?void 0:f,items:g instanceof as.Name?void 0:g,dynamicProps:f instanceof as.Name,dynamicItems:g instanceof as.Name},m.source&&(m.source.evaluated=(0,as.stringify)(m.evaluated))}return t.validate=m,t}catch(p){throw delete t.validate,delete t.validateName,u&&this.logger.error("Error compiling schema, function code:",u),p}finally{this._compilations.delete(t)}}zn.compileSchema=l0;function dY(t,e,r){var n;r=(0,os.resolveUrl)(this.opts.uriResolver,e,r);let s=t.refs[r];if(s)return s;let i=hY.call(this,t,r);if(i===void 0){let a=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:o}=this.opts;a&&(i=new Uo({schema:a,schemaId:o,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=mY.call(this,i)}zn.resolveRef=dY;function mY(t){return(0,os.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:l0.call(this,t)}function aj(t){for(let e of this._compilations)if(fY(e,t))return e}zn.getCompilingSchema=aj;function fY(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function hY(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Cf.call(this,t,e)}function Cf(t,e){let r=this.opts.uriResolver.parse(e),n=(0,os._getFullPath)(this.opts.uriResolver,r),s=(0,os.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===s)return c0.call(this,r,t);let i=(0,os.normalizeId)(n),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){let o=Cf.call(this,t,a);return typeof o?.schema!="object"?void 0:c0.call(this,r,o)}if(typeof a?.schema=="object"){if(a.validate||l0.call(this,a),i===(0,os.normalizeId)(e)){let{schema:o}=a,{schemaId:c}=this.opts,l=o[c];return l&&(s=(0,os.resolveUrl)(this.opts.uriResolver,s,l)),new Uo({schema:o,schemaId:c,root:t,baseId:s})}return c0.call(this,r,a)}}zn.resolveSchema=Cf;var gY=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function c0(t,{baseId:e,schema:r,root:n}){var s;if(((s=t.fragment)===null||s===void 0?void 0:s[0])!=="/")return;for(let o of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,ij.unescapeFragment)(o)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!gY.has(o)&&l&&(e=(0,os.resolveUrl)(this.opts.uriResolver,e,l))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,ij.schemaHasRulesButRef)(r,this.RULES)){let o=(0,os.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Cf.call(this,n,o)}let{schemaId:a}=this.opts;if(i=i||new Uo({schema:r,schemaId:a,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var oj=P((KOe,vY)=>{vY.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var d0=P((JOe,mj)=>{"use strict";var yY=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),lj=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),u0=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),uj=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),bY=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function p0(t){let e="",r=0,n=0;for(n=0;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var xY=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function cj(t){return t.length=0,!0}function _Y(t,e,r){if(t.length){let n=p0(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function wY(t){let e=0,r={error:!1,address:"",zone:""},n=[],s=[],i=!1,a=!1,o=_Y;for(let c=0;c7){r.error=!0;break}c>0&&t[c-1]===":"&&(i=!0),n.push(":");continue}else if(l==="%"){if(!o(s,n,r))break;o=cj}else{s.push(l);continue}}return s.length&&(o===cj?r.zone=s.join(""):a?n.push(s.join("")):n.push(p0(s))),r.address=n.join(""),r}function pj(t){if(SY(t,":")<2)return{host:t,isIPV6:!1};let e=wY(t);if(e.error)return{host:t,isIPV6:!1};{let r=e.address,n=e.address;return e.zone&&(r+="%"+e.zone,n+="%25"+e.zone),{host:r,isIPV6:!0,escapedHost:n}}}function SY(t,e){let r=0;for(let n=0;nkY[n])}function PY(t,e=!1){if(t.indexOf("%")===-1)return t;let r="";for(let n=0;n{"use strict";var{isUUID:AY}=d0(),jY=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,NY=["http","https","ws","wss","urn","urn:uuid"];function DY(t){return NY.indexOf(t)!==-1}function m0(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function fj(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function hj(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function MY(t){return t.secure=m0(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function zY(t){if((t.port===(m0(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function $Y(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(jY);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let s=`${n}:${e.nid||t.nid}`,i=f0(s);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function LY(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),s=`${r}:${e.nid||n}`,i=f0(s);i&&(t=i.serialize(t,e));let a=t,o=t.nss;return a.path=`${n||e.nid}:${o}`,e.skipEscape=!0,a}function UY(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!AY(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function qY(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var gj={scheme:"http",domainHost:!0,parse:fj,serialize:hj},FY={scheme:"https",domainHost:gj.domainHost,parse:fj,serialize:hj},Af={scheme:"ws",domainHost:!0,parse:MY,serialize:zY},HY={scheme:"wss",domainHost:Af.domainHost,parse:Af.parse,serialize:Af.serialize},BY={scheme:"urn",parse:$Y,serialize:LY,skipNormalize:!0},WY={scheme:"urn:uuid",parse:UY,serialize:qY,skipNormalize:!0},jf={http:gj,https:FY,ws:Af,wss:HY,urn:BY,"urn:uuid":WY};Object.setPrototypeOf(jf,null);function f0(t){return t&&(jf[t]||jf[t.toLowerCase()])||void 0}vj.exports={wsIsSecure:m0,SCHEMES:jf,isValidSchemeName:DY,getSchemeHandler:f0}});var Ej=P((YOe,Nf)=>{"use strict";var{normalizeIPv6:ZY,removeDotSegments:Iu,recomposeAuthority:GY,normalizePercentEncoding:VY,normalizePathEncoding:KY,escapePreservingEscapes:JY,reescapeHostDelimiters:QY,isIPv4:YY,nonSimpleDomain:XY}=d0(),{SCHEMES:eX,getSchemeHandler:xj}=yj();function tX(t,e){return typeof t=="string"?t=aX(t,e):typeof t=="object"&&(t=qo(_a(t,e),e)),t}function rX(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},s=_j(qo(t,n),qo(e,n),n,!0);return n.skipEscape=!0,_a(s,n)}function _j(t,e,r,n){let s={};return n||(t=qo(_a(t,r),r),e=qo(_a(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(s.scheme=e.scheme,s.userinfo=e.userinfo,s.host=e.host,s.port=e.port,s.path=Iu(e.path||""),s.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(s.userinfo=e.userinfo,s.host=e.host,s.port=e.port,s.path=Iu(e.path||""),s.query=e.query):(e.path?(e.path[0]==="/"?s.path=Iu(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?s.path="/"+e.path:t.path?s.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:s.path=e.path,s.path=Iu(s.path)),s.query=e.query):(s.path=t.path,e.query!==void 0?s.query=e.query:s.query=t.query),s.userinfo=t.userinfo,s.host=t.host,s.port=t.port),s.scheme=t.scheme),s.fragment=e.fragment,s}function nX(t,e,r){let n=bj(t,r),s=bj(e,r);return n!==void 0&&s!==void 0&&n.toLowerCase()===s.toLowerCase()}function _a(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),s=[],i=xj(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=VY(r.path):(r.path=JY(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&s.push(r.scheme,":");let a=GY(r);if(a!==void 0&&(n.reference!=="suffix"&&s.push("//"),s.push(a),r.path&&r.path[0]!=="/"&&s.push("/")),r.path!==void 0){let o=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(o=Iu(o)),a===void 0&&o[0]==="/"&&o[1]==="/"&&(o="/%2F"+o.slice(2)),s.push(o)}return r.query!==void 0&&s.push("?",r.query),r.fragment!==void 0&&s.push("#",r.fragment),s.join("")}var sX=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function iX(t,e){if(e[2]!==void 0&&t.path&&t.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof t.port=="number"&&(t.port<0||t.port>65535))return"URI port is malformed."}function wj(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},s=!1,i=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let a=t.match(sX);if(a){n.scheme=a[1],n.userinfo=a[3],n.host=a[4],n.port=parseInt(a[5],10),n.path=a[6]||"",n.query=a[7],n.fragment=a[8],isNaN(n.port)&&(n.port=a[5]);let o=iX(n,a);if(o!==void 0&&(n.error=n.error||o,s=!0),n.host)if(YY(n.host)===!1){let u=ZY(n.host);n.host=u.host.toLowerCase(),i=u.isIPV6}else i=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let c=xj(r.scheme||n.scheme);if(!r.unicodeSupport&&(!c||!c.unicodeSupport)&&n.host&&(r.domainHost||c&&c.domainHost)&&i===!1&&XY(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(l){n.error=n.error||"Host's domain name can not be converted to ASCII: "+l}if((!c||c&&!c.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=QY(unescape(n.host),i))),n.path&&(n.path=KY(n.path)),n.fragment))try{n.fragment=encodeURI(decodeURIComponent(n.fragment))}catch{n.error=n.error||"URI malformed"}c&&c.parse&&c.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return{parsed:n,malformedAuthorityOrPort:s}}function qo(t,e){return wj(t,e).parsed}function aX(t,e){return Sj(t,e).normalized}function Sj(t,e){let{parsed:r,malformedAuthorityOrPort:n}=wj(t,e);return{normalized:n?t:_a(r,e),malformedAuthorityOrPort:n}}function bj(t,e){if(typeof t=="string"){let{normalized:r,malformedAuthorityOrPort:n}=Sj(t,e);return n?void 0:r}if(typeof t=="object")return _a(t,e)}var h0={SCHEMES:eX,normalize:tX,resolve:rX,resolveComponent:_j,equal:nX,serialize:_a,parse:qo};Nf.exports=h0;Nf.exports.default=h0;Nf.exports.fastUri=h0});var Tj=P(g0=>{"use strict";Object.defineProperty(g0,"__esModule",{value:!0});var kj=Ej();kj.code='require("ajv/dist/runtime/uri").default';g0.default=kj});var Nj=P(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.CodeGen=Sr.Name=Sr.nil=Sr.stringify=Sr.str=Sr._=Sr.KeywordCxt=void 0;var oX=Ru();Object.defineProperty(Sr,"KeywordCxt",{enumerable:!0,get:function(){return oX.KeywordCxt}});var Fo=je();Object.defineProperty(Sr,"_",{enumerable:!0,get:function(){return Fo._}});Object.defineProperty(Sr,"str",{enumerable:!0,get:function(){return Fo.str}});Object.defineProperty(Sr,"stringify",{enumerable:!0,get:function(){return Fo.stringify}});Object.defineProperty(Sr,"nil",{enumerable:!0,get:function(){return Fo.nil}});Object.defineProperty(Sr,"Name",{enumerable:!0,get:function(){return Fo.Name}});Object.defineProperty(Sr,"CodeGen",{enumerable:!0,get:function(){return Fo.CodeGen}});var cX=If(),Oj=Pu(),lX=B_(),Cu=Of(),uX=je(),Ou=Eu(),Df=Su(),y0=Ke(),Rj=oj(),pX=Tj(),Aj=(t,e)=>new RegExp(t,e);Aj.code="new RegExp";var dX=["removeAdditional","useDefaults","coerceTypes"],mX=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),fX={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},hX={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Pj=200;function gX(t){var e,r,n,s,i,a,o,c,l,u,p,d,m,f,g,v,h,y,b,x,w,S,E,k,R;let O=t.strict,C=(e=t.code)===null||e===void 0?void 0:e.optimize,U=C===!0||C===void 0?1:C||0,q=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:Aj,Z=(s=t.uriResolver)!==null&&s!==void 0?s:pX.default;return{strictSchema:(a=(i=t.strictSchema)!==null&&i!==void 0?i:O)!==null&&a!==void 0?a:!0,strictNumbers:(c=(o=t.strictNumbers)!==null&&o!==void 0?o:O)!==null&&c!==void 0?c:!0,strictTypes:(u=(l=t.strictTypes)!==null&&l!==void 0?l:O)!==null&&u!==void 0?u:"log",strictTuples:(d=(p=t.strictTuples)!==null&&p!==void 0?p:O)!==null&&d!==void 0?d:"log",strictRequired:(f=(m=t.strictRequired)!==null&&m!==void 0?m:O)!==null&&f!==void 0?f:!1,code:t.code?{...t.code,optimize:U,regExp:q}:{optimize:U,regExp:q},loopRequired:(g=t.loopRequired)!==null&&g!==void 0?g:Pj,loopEnum:(v=t.loopEnum)!==null&&v!==void 0?v:Pj,meta:(h=t.meta)!==null&&h!==void 0?h:!0,messages:(y=t.messages)!==null&&y!==void 0?y:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(x=t.schemaId)!==null&&x!==void 0?x:"$id",addUsedSchema:(w=t.addUsedSchema)!==null&&w!==void 0?w:!0,validateSchema:(S=t.validateSchema)!==null&&S!==void 0?S:!0,validateFormats:(E=t.validateFormats)!==null&&E!==void 0?E:!0,unicodeRegExp:(k=t.unicodeRegExp)!==null&&k!==void 0?k:!0,int32range:(R=t.int32range)!==null&&R!==void 0?R:!0,uriResolver:Z}}var Au=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...gX(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new uX.ValueScope({scope:{},prefixes:mX,es5:r,lines:n}),this.logger=wX(e.logger);let s=e.validateFormats;e.validateFormats=!1,this.RULES=(0,lX.getRules)(),Ij.call(this,fX,e,"NOT SUPPORTED"),Ij.call(this,hX,e,"DEPRECATED","warn"),this._metaOpts=xX.call(this),e.formats&&yX.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&bX.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),vX.call(this),e.validateFormats=s}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,s=Rj;n==="id"&&(s={...Rj},s.id=s.$id,delete s.$id),r&&e&&this.addMetaSchema(s,s[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let s=n(r);return"$async"in n||(this.errors=n.errors),s}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return s.call(this,e,r);async function s(u,p){await i.call(this,u.$schema);let d=this._addSchema(u,p);return d.validate||a.call(this,d)}async function i(u){u&&!this.getSchema(u)&&await s.call(this,{$ref:u},!0)}async function a(u){try{return this._compileSchemaEnv(u)}catch(p){if(!(p instanceof Oj.default))throw p;return o.call(this,p),await c.call(this,p.missingSchema),a.call(this,u)}}function o({missingSchema:u,missingRef:p}){if(this.refs[u])throw new Error(`AnySchema ${u} is loaded but ${p} cannot be resolved`)}async function c(u){let p=await l.call(this,u);this.refs[u]||await i.call(this,p.$schema),this.refs[u]||this.addSchema(p,u,r)}async function l(u){let p=this._loading[u];if(p)return p;try{return await(this._loading[u]=n(u))}finally{delete this._loading[u]}}}addSchema(e,r,n,s=this.opts.validateSchema){if(Array.isArray(e)){for(let a of e)this.addSchema(a,void 0,n,s);return this}let i;if(typeof e=="object"){let{schemaId:a}=this.opts;if(i=e[a],i!==void 0&&typeof i!="string")throw new Error(`schema ${a} must be string`)}return r=(0,Ou.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,s,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let s=this.validate(n,e);if(!s&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return s}getSchema(e){let r;for(;typeof(r=Cj.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,s=new Cu.SchemaEnv({schema:{},schemaId:n});if(r=Cu.resolveSchema.call(this,s,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=Cj.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,Ou.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(EX.call(this,n,r),!r)return(0,y0.eachItem)(n,i=>v0.call(this,i)),this;TX.call(this,r);let s={...r,type:(0,Df.getJSONTypes)(r.type),schemaType:(0,Df.getJSONTypes)(r.schemaType)};return(0,y0.eachItem)(n,s.type.length===0?i=>v0.call(this,i,s):i=>s.type.forEach(a=>v0.call(this,i,s,a))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let s=n.rules.findIndex(i=>i.keyword===e);s>=0&&n.rules.splice(s,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(s=>`${n}${s.instancePath} ${s.message}`).reduce((s,i)=>s+r+i)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let s of r){let i=s.split("/").slice(1),a=e;for(let o of i)a=a[o];for(let o in n){let c=n[o];if(typeof c!="object")continue;let{$data:l}=c.definition,u=a[o];l&&u&&(a[o]=jj(u))}}return e}_removeAllSchemas(e,r){for(let n in e){let s=e[n];(!r||r.test(n))&&(typeof s=="string"?delete e[n]:s&&!s.meta&&(this._cache.delete(s.schema),delete e[n]))}}_addSchema(e,r,n,s=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:o}=this.opts;if(typeof e=="object")a=e[o];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,Ou.normalizeId)(a||n);let l=Ou.getSchemaRefs.call(this,e,n);return c=new Cu.SchemaEnv({schema:e,schemaId:o,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),s&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):Cu.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{Cu.compileSchema.call(this,e)}finally{this.opts=r}}};Au.ValidationError=cX.default;Au.MissingRefError=Oj.default;Sr.default=Au;function Ij(t,e,r,n="error"){for(let s in t){let i=s;i in e&&this.logger[n](`${r}: option ${s}. ${t[i]}`)}}function Cj(t){return t=(0,Ou.normalizeId)(t),this.schemas[t]||this.refs[t]}function vX(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function yX(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function bX(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let r=t[e];r.keyword||(r.keyword=e),this.addKeyword(r)}}function xX(){let t={...this.opts};for(let e of dX)delete t[e];return t}var _X={log(){},warn(){},error(){}};function wX(t){if(t===!1)return _X;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var SX=/^[a-z_$][a-z0-9_$:-]*$/i;function EX(t,e){let{RULES:r}=this;if((0,y0.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!SX.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function v0(t,e,r){var n;let s=e?.post;if(r&&s)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,a=s?i.post:i.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},i.rules.push(a)),i.keywords[t]=!0,!e)return;let o={keyword:t,definition:{...e,type:(0,Df.getJSONTypes)(e.type),schemaType:(0,Df.getJSONTypes)(e.schemaType)}};e.before?kX.call(this,a,o,e.before):a.rules.push(o),i.all[t]=o,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function kX(t,e,r){let n=t.rules.findIndex(s=>s.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function TX(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=jj(e)),t.validateSchema=this.compile(e,!0))}var RX={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function jj(t){return{anyOf:[t,RX]}}});var Dj=P(b0=>{"use strict";Object.defineProperty(b0,"__esModule",{value:!0});var PX={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};b0.default=PX});var Lj=P(wa=>{"use strict";Object.defineProperty(wa,"__esModule",{value:!0});wa.callRef=wa.getValidate=void 0;var IX=Pu(),Mj=Mn(),ln=je(),Ho=Ys(),zj=Of(),Mf=Ke(),CX={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:s,schemaEnv:i,validateName:a,opts:o,self:c}=n,{root:l}=i;if((r==="#"||r==="#/")&&s===l.baseId)return p();let u=zj.resolveRef.call(c,l,s,r);if(u===void 0)throw new IX.default(n.opts.uriResolver,s,r);if(u instanceof zj.SchemaEnv)return d(u);return m(u);function p(){if(i===l)return zf(t,a,i,i.$async);let f=e.scopeValue("root",{ref:l});return zf(t,(0,ln._)`${f}.validate`,l,l.$async)}function d(f){let g=$j(t,f);zf(t,g,f,f.$async)}function m(f){let g=e.scopeValue("schema",o.code.source===!0?{ref:f,code:(0,ln.stringify)(f)}:{ref:f}),v=e.name("valid"),h=t.subschema({schema:f,dataTypes:[],schemaPath:ln.nil,topSchemaRef:g,errSchemaPath:r},v);t.mergeEvaluated(h),t.ok(v)}}};function $j(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,ln._)`${r.scopeValue("wrapper",{ref:e})}.validate`}wa.getValidate=$j;function zf(t,e,r,n){let{gen:s,it:i}=t,{allErrors:a,schemaEnv:o,opts:c}=i,l=c.passContext?Ho.default.this:ln.nil;n?u():p();function u(){if(!o.$async)throw new Error("async schema referenced by sync schema");let f=s.let("valid");s.try(()=>{s.code((0,ln._)`await ${(0,Mj.callValidateCode)(t,e,l)}`),m(e),a||s.assign(f,!0)},g=>{s.if((0,ln._)`!(${g} instanceof ${i.ValidationError})`,()=>s.throw(g)),d(g),a||s.assign(f,!1)}),t.ok(f)}function p(){t.result((0,Mj.callValidateCode)(t,e,l),()=>m(e),()=>d(e))}function d(f){let g=(0,ln._)`${f}.errors`;s.assign(Ho.default.vErrors,(0,ln._)`${Ho.default.vErrors} === null ? ${g} : ${Ho.default.vErrors}.concat(${g})`),s.assign(Ho.default.errors,(0,ln._)`${Ho.default.vErrors}.length`)}function m(f){var g;if(!i.opts.unevaluated)return;let v=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(i.props!==!0)if(v&&!v.dynamicProps)v.props!==void 0&&(i.props=Mf.mergeEvaluated.props(s,v.props,i.props));else{let h=s.var("props",(0,ln._)`${f}.evaluated.props`);i.props=Mf.mergeEvaluated.props(s,h,i.props,ln.Name)}if(i.items!==!0)if(v&&!v.dynamicItems)v.items!==void 0&&(i.items=Mf.mergeEvaluated.items(s,v.items,i.items));else{let h=s.var("items",(0,ln._)`${f}.evaluated.items`);i.items=Mf.mergeEvaluated.items(s,h,i.items,ln.Name)}}}wa.callRef=zf;wa.default=CX});var Uj=P(x0=>{"use strict";Object.defineProperty(x0,"__esModule",{value:!0});var OX=Dj(),AX=Lj(),jX=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",OX.default,AX.default];x0.default=jX});var qj=P(_0=>{"use strict";Object.defineProperty(_0,"__esModule",{value:!0});var $f=je(),Ii=$f.operators,Lf={maximum:{okStr:"<=",ok:Ii.LTE,fail:Ii.GT},minimum:{okStr:">=",ok:Ii.GTE,fail:Ii.LT},exclusiveMaximum:{okStr:"<",ok:Ii.LT,fail:Ii.GTE},exclusiveMinimum:{okStr:">",ok:Ii.GT,fail:Ii.LTE}},NX={message:({keyword:t,schemaCode:e})=>(0,$f.str)`must be ${Lf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,$f._)`{comparison: ${Lf[t].okStr}, limit: ${e}}`},DX={keyword:Object.keys(Lf),type:"number",schemaType:"number",$data:!0,error:NX,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,$f._)`${r} ${Lf[e].fail} ${n} || isNaN(${r})`)}};_0.default=DX});var Fj=P(w0=>{"use strict";Object.defineProperty(w0,"__esModule",{value:!0});var ju=je(),MX={message:({schemaCode:t})=>(0,ju.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,ju._)`{multipleOf: ${t}}`},zX={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:MX,code(t){let{gen:e,data:r,schemaCode:n,it:s}=t,i=s.opts.multipleOfPrecision,a=e.let("res"),o=i?(0,ju._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${i}`:(0,ju._)`${a} !== parseInt(${a})`;t.fail$data((0,ju._)`(${n} === 0 || (${a} = ${r}/${n}, ${o}))`)}};w0.default=zX});var Bj=P(S0=>{"use strict";Object.defineProperty(S0,"__esModule",{value:!0});function Hj(t){let e=t.length,r=0,n=0,s;for(;n=55296&&s<=56319&&n{"use strict";Object.defineProperty(E0,"__esModule",{value:!0});var Sa=je(),$X=Ke(),LX=Bj(),UX={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,Sa.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,Sa._)`{limit: ${t}}`},qX={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:UX,code(t){let{keyword:e,data:r,schemaCode:n,it:s}=t,i=e==="maxLength"?Sa.operators.GT:Sa.operators.LT,a=s.opts.unicode===!1?(0,Sa._)`${r}.length`:(0,Sa._)`${(0,$X.useFunc)(t.gen,LX.default)}(${r})`;t.fail$data((0,Sa._)`${a} ${i} ${n}`)}};E0.default=qX});var Zj=P(k0=>{"use strict";Object.defineProperty(k0,"__esModule",{value:!0});var FX=Mn(),HX=Ke(),Bo=je(),BX={message:({schemaCode:t})=>(0,Bo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Bo._)`{pattern: ${t}}`},WX={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:BX,code(t){let{gen:e,data:r,$data:n,schema:s,schemaCode:i,it:a}=t,o=a.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=a.opts.code,l=c.code==="new RegExp"?(0,Bo._)`new RegExp`:(0,HX.useFunc)(e,c),u=e.let("valid");e.try(()=>e.assign(u,(0,Bo._)`${l}(${i}, ${o}).test(${r})`),()=>e.assign(u,!1)),t.fail$data((0,Bo._)`!${u}`)}else{let c=(0,FX.usePattern)(t,s);t.fail$data((0,Bo._)`!${c}.test(${r})`)}}};k0.default=WX});var Gj=P(T0=>{"use strict";Object.defineProperty(T0,"__esModule",{value:!0});var Nu=je(),ZX={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Nu.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Nu._)`{limit: ${t}}`},GX={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:ZX,code(t){let{keyword:e,data:r,schemaCode:n}=t,s=e==="maxProperties"?Nu.operators.GT:Nu.operators.LT;t.fail$data((0,Nu._)`Object.keys(${r}).length ${s} ${n}`)}};T0.default=GX});var Vj=P(R0=>{"use strict";Object.defineProperty(R0,"__esModule",{value:!0});var Du=Mn(),Mu=je(),VX=Ke(),KX={message:({params:{missingProperty:t}})=>(0,Mu.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,Mu._)`{missingProperty: ${t}}`},JX={keyword:"required",type:"object",schemaType:"array",$data:!0,error:KX,code(t){let{gen:e,schema:r,schemaCode:n,data:s,$data:i,it:a}=t,{opts:o}=a;if(!i&&r.length===0)return;let c=r.length>=o.loopRequired;if(a.allErrors?l():u(),o.strictRequired){let m=t.parentSchema.properties,{definedProperties:f}=t.it;for(let g of r)if(m?.[g]===void 0&&!f.has(g)){let v=a.schemaEnv.baseId+a.errSchemaPath,h=`required property "${g}" is not defined at "${v}" (strictRequired)`;(0,VX.checkStrictMode)(a,h,a.opts.strictRequired)}}function l(){if(c||i)t.block$data(Mu.nil,p);else for(let m of r)(0,Du.checkReportMissingProp)(t,m)}function u(){let m=e.let("missing");if(c||i){let f=e.let("valid",!0);t.block$data(f,()=>d(m,f)),t.ok(f)}else e.if((0,Du.checkMissingProp)(t,r,m)),(0,Du.reportMissingProp)(t,m),e.else()}function p(){e.forOf("prop",n,m=>{t.setParams({missingProperty:m}),e.if((0,Du.noPropertyInData)(e,s,m,o.ownProperties),()=>t.error())})}function d(m,f){t.setParams({missingProperty:m}),e.forOf(m,n,()=>{e.assign(f,(0,Du.propertyInData)(e,s,m,o.ownProperties)),e.if((0,Mu.not)(f),()=>{t.error(),e.break()})},Mu.nil)}}};R0.default=JX});var Kj=P(P0=>{"use strict";Object.defineProperty(P0,"__esModule",{value:!0});var zu=je(),QX={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,zu.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,zu._)`{limit: ${t}}`},YX={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:QX,code(t){let{keyword:e,data:r,schemaCode:n}=t,s=e==="maxItems"?zu.operators.GT:zu.operators.LT;t.fail$data((0,zu._)`${r}.length ${s} ${n}`)}};P0.default=YX});var Uf=P(I0=>{"use strict";Object.defineProperty(I0,"__esModule",{value:!0});var Jj=Y_();Jj.code='require("ajv/dist/runtime/equal").default';I0.default=Jj});var Qj=P(O0=>{"use strict";Object.defineProperty(O0,"__esModule",{value:!0});var C0=Su(),Er=je(),XX=Ke(),eee=Uf(),tee={message:({params:{i:t,j:e}})=>(0,Er.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,Er._)`{i: ${t}, j: ${e}}`},ree={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:tee,code(t){let{gen:e,data:r,$data:n,schema:s,parentSchema:i,schemaCode:a,it:o}=t;if(!n&&!s)return;let c=e.let("valid"),l=i.items?(0,C0.getSchemaTypes)(i.items):[];t.block$data(c,u,(0,Er._)`${a} === false`),t.ok(c);function u(){let f=e.let("i",(0,Er._)`${r}.length`),g=e.let("j");t.setParams({i:f,j:g}),e.assign(c,!0),e.if((0,Er._)`${f} > 1`,()=>(p()?d:m)(f,g))}function p(){return l.length>0&&!l.some(f=>f==="object"||f==="array")}function d(f,g){let v=e.name("item"),h=(0,C0.checkDataTypes)(l,v,o.opts.strictNumbers,C0.DataType.Wrong),y=e.const("indices",(0,Er._)`{}`);e.for((0,Er._)`;${f}--;`,()=>{e.let(v,(0,Er._)`${r}[${f}]`),e.if(h,(0,Er._)`continue`),l.length>1&&e.if((0,Er._)`typeof ${v} == "string"`,(0,Er._)`${v} += "_"`),e.if((0,Er._)`typeof ${y}[${v}] == "number"`,()=>{e.assign(g,(0,Er._)`${y}[${v}]`),t.error(),e.assign(c,!1).break()}).code((0,Er._)`${y}[${v}] = ${f}`)})}function m(f,g){let v=(0,XX.useFunc)(e,eee.default),h=e.name("outer");e.label(h).for((0,Er._)`;${f}--;`,()=>e.for((0,Er._)`${g} = ${f}; ${g}--;`,()=>e.if((0,Er._)`${v}(${r}[${f}], ${r}[${g}])`,()=>{t.error(),e.assign(c,!1).break(h)})))}}};O0.default=ree});var Yj=P(j0=>{"use strict";Object.defineProperty(j0,"__esModule",{value:!0});var A0=je(),nee=Ke(),see=Uf(),iee={message:"must be equal to constant",params:({schemaCode:t})=>(0,A0._)`{allowedValue: ${t}}`},aee={keyword:"const",$data:!0,error:iee,code(t){let{gen:e,data:r,$data:n,schemaCode:s,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,A0._)`!${(0,nee.useFunc)(e,see.default)}(${r}, ${s})`):t.fail((0,A0._)`${i} !== ${r}`)}};j0.default=aee});var Xj=P(N0=>{"use strict";Object.defineProperty(N0,"__esModule",{value:!0});var $u=je(),oee=Ke(),cee=Uf(),lee={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,$u._)`{allowedValues: ${t}}`},uee={keyword:"enum",schemaType:"array",$data:!0,error:lee,code(t){let{gen:e,data:r,$data:n,schema:s,schemaCode:i,it:a}=t;if(!n&&s.length===0)throw new Error("enum must have non-empty array");let o=s.length>=a.opts.loopEnum,c,l=()=>c??(c=(0,oee.useFunc)(e,cee.default)),u;if(o||n)u=e.let("valid"),t.block$data(u,p);else{if(!Array.isArray(s))throw new Error("ajv implementation error");let m=e.const("vSchema",i);u=(0,$u.or)(...s.map((f,g)=>d(m,g)))}t.pass(u);function p(){e.assign(u,!1),e.forOf("v",i,m=>e.if((0,$u._)`${l()}(${r}, ${m})`,()=>e.assign(u,!0).break()))}function d(m,f){let g=s[f];return typeof g=="object"&&g!==null?(0,$u._)`${l()}(${r}, ${m}[${f}])`:(0,$u._)`${r} === ${g}`}}};N0.default=uee});var eN=P(D0=>{"use strict";Object.defineProperty(D0,"__esModule",{value:!0});var pee=qj(),dee=Fj(),mee=Wj(),fee=Zj(),hee=Gj(),gee=Vj(),vee=Kj(),yee=Qj(),bee=Yj(),xee=Xj(),_ee=[pee.default,dee.default,mee.default,fee.default,hee.default,gee.default,vee.default,yee.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},bee.default,xee.default];D0.default=_ee});var z0=P(Lu=>{"use strict";Object.defineProperty(Lu,"__esModule",{value:!0});Lu.validateAdditionalItems=void 0;var Ea=je(),M0=Ke(),wee={message:({params:{len:t}})=>(0,Ea.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Ea._)`{limit: ${t}}`},See={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:wee,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,M0.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}tN(t,n)}};function tN(t,e){let{gen:r,schema:n,data:s,keyword:i,it:a}=t;a.items=!0;let o=r.const("len",(0,Ea._)`${s}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Ea._)`${o} <= ${e.length}`);else if(typeof n=="object"&&!(0,M0.alwaysValidSchema)(a,n)){let l=r.var("valid",(0,Ea._)`${o} <= ${e.length}`);r.if((0,Ea.not)(l),()=>c(l)),t.ok(l)}function c(l){r.forRange("i",e.length,o,u=>{t.subschema({keyword:i,dataProp:u,dataPropType:M0.Type.Num},l),a.allErrors||r.if((0,Ea.not)(l),()=>r.break())})}}Lu.validateAdditionalItems=tN;Lu.default=See});var $0=P(Uu=>{"use strict";Object.defineProperty(Uu,"__esModule",{value:!0});Uu.validateTuple=void 0;var rN=je(),qf=Ke(),Eee=Mn(),kee={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return nN(t,"additionalItems",e);r.items=!0,!(0,qf.alwaysValidSchema)(r,e)&&t.ok((0,Eee.validateArray)(t))}};function nN(t,e,r=t.schema){let{gen:n,parentSchema:s,data:i,keyword:a,it:o}=t;u(s),o.opts.unevaluated&&r.length&&o.items!==!0&&(o.items=qf.mergeEvaluated.items(n,r.length,o.items));let c=n.name("valid"),l=n.const("len",(0,rN._)`${i}.length`);r.forEach((p,d)=>{(0,qf.alwaysValidSchema)(o,p)||(n.if((0,rN._)`${l} > ${d}`,()=>t.subschema({keyword:a,schemaProp:d,dataProp:d},c)),t.ok(c))});function u(p){let{opts:d,errSchemaPath:m}=o,f=r.length,g=f===p.minItems&&(f===p.maxItems||p[e]===!1);if(d.strictTuples&&!g){let v=`"${a}" is ${f}-tuple, but minItems or maxItems/${e} are not specified or different at path "${m}"`;(0,qf.checkStrictMode)(o,v,d.strictTuples)}}}Uu.validateTuple=nN;Uu.default=kee});var sN=P(L0=>{"use strict";Object.defineProperty(L0,"__esModule",{value:!0});var Tee=$0(),Ree={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,Tee.validateTuple)(t,"items")};L0.default=Ree});var aN=P(U0=>{"use strict";Object.defineProperty(U0,"__esModule",{value:!0});var iN=je(),Pee=Ke(),Iee=Mn(),Cee=z0(),Oee={message:({params:{len:t}})=>(0,iN.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,iN._)`{limit: ${t}}`},Aee={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Oee,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:s}=r;n.items=!0,!(0,Pee.alwaysValidSchema)(n,e)&&(s?(0,Cee.validateAdditionalItems)(t,s):t.ok((0,Iee.validateArray)(t)))}};U0.default=Aee});var oN=P(q0=>{"use strict";Object.defineProperty(q0,"__esModule",{value:!0});var $n=je(),Ff=Ke(),jee={message:({params:{min:t,max:e}})=>e===void 0?(0,$n.str)`must contain at least ${t} valid item(s)`:(0,$n.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,$n._)`{minContains: ${t}}`:(0,$n._)`{minContains: ${t}, maxContains: ${e}}`},Nee={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:jee,code(t){let{gen:e,schema:r,parentSchema:n,data:s,it:i}=t,a,o,{minContains:c,maxContains:l}=n;i.opts.next?(a=c===void 0?1:c,o=l):a=1;let u=e.const("len",(0,$n._)`${s}.length`);if(t.setParams({min:a,max:o}),o===void 0&&a===0){(0,Ff.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&a>o){(0,Ff.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Ff.alwaysValidSchema)(i,r)){let g=(0,$n._)`${u} >= ${a}`;o!==void 0&&(g=(0,$n._)`${g} && ${u} <= ${o}`),t.pass(g);return}i.items=!0;let p=e.name("valid");o===void 0&&a===1?m(p,()=>e.if(p,()=>e.break())):a===0?(e.let(p,!0),o!==void 0&&e.if((0,$n._)`${s}.length > 0`,d)):(e.let(p,!1),d()),t.result(p,()=>t.reset());function d(){let g=e.name("_valid"),v=e.let("count",0);m(g,()=>e.if(g,()=>f(v)))}function m(g,v){e.forRange("i",0,u,h=>{t.subschema({keyword:"contains",dataProp:h,dataPropType:Ff.Type.Num,compositeRule:!0},g),v()})}function f(g){e.code((0,$n._)`${g}++`),o===void 0?e.if((0,$n._)`${g} >= ${a}`,()=>e.assign(p,!0).break()):(e.if((0,$n._)`${g} > ${o}`,()=>e.assign(p,!1).break()),a===1?e.assign(p,!0):e.if((0,$n._)`${g} >= ${a}`,()=>e.assign(p,!0)))}}};q0.default=Nee});var uN=P(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});Is.validateSchemaDeps=Is.validatePropertyDeps=Is.error=void 0;var F0=je(),Dee=Ke(),qu=Mn();Is.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,F0.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,F0._)`{property: ${t}, missingProperty: ${n}, depsCount: ${e}, - deps: ${r}}`};var Fee={keyword:"dependencies",type:"object",schemaType:"object",error:Is.error,code(t){let[e,r]=Hee(t);dN(t,e),mN(t,r)}};function Hee({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let s=Array.isArray(t[n])?e:r;s[n]=t[n]}return[e,r]}function dN(t,e=t.schema){let{gen:r,data:n,it:s}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let a in e){let o=e[a];if(o.length===0)continue;let c=(0,Fu.propertyInData)(r,n,a,s.opts.ownProperties);t.setParams({property:a,depsCount:o.length,deps:o.join(", ")}),s.allErrors?r.if(c,()=>{for(let l of o)(0,Fu.checkReportMissingProp)(t,l)}):(r.if((0,W0._)`${c} && (${(0,Fu.checkMissingProp)(t,o,i)})`),(0,Fu.reportMissingProp)(t,i),r.else())}}Is.validatePropertyDeps=dN;function mN(t,e=t.schema){let{gen:r,data:n,keyword:s,it:i}=t,a=r.name("valid");for(let o in e)(0,qee.alwaysValidSchema)(i,e[o])||(r.if((0,Fu.propertyInData)(r,n,o,i.opts.ownProperties),()=>{let c=t.subschema({keyword:s,schemaProp:o},a);t.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),t.ok(a))}Is.validateSchemaDeps=mN;Is.default=Fee});var gN=P(Z0=>{"use strict";Object.defineProperty(Z0,"__esModule",{value:!0});var hN=je(),Bee=Ke(),Wee={message:"property name must be valid",params:({params:t})=>(0,hN._)`{propertyName: ${t.propertyName}}`},Zee={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Wee,code(t){let{gen:e,schema:r,data:n,it:s}=t;if((0,Bee.alwaysValidSchema)(s,r))return;let i=e.name("valid");e.forIn("key",n,a=>{t.setParams({propertyName:a}),t.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),e.if((0,hN.not)(i),()=>{t.error(!0),s.allErrors||e.break()})}),t.ok(i)}};Z0.default=Zee});var V0=P(G0=>{"use strict";Object.defineProperty(G0,"__esModule",{value:!0});var Wf=Mn(),cs=je(),Gee=Ys(),Zf=Ke(),Vee={message:"must NOT have additional properties",params:({params:t})=>(0,cs._)`{additionalProperty: ${t.additionalProperty}}`},Kee={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Vee,code(t){let{gen:e,schema:r,parentSchema:n,data:s,errsCount:i,it:a}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:o,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,Zf.alwaysValidSchema)(a,r))return;let l=(0,Wf.allSchemaProperties)(n.properties),u=(0,Wf.allSchemaProperties)(n.patternProperties);p(),t.ok((0,cs._)`${i} === ${Gee.default.errors}`);function p(){e.forIn("key",s,v=>{!l.length&&!u.length?f(v):e.if(d(v),()=>f(v))})}function d(v){let h;if(l.length>8){let y=(0,Zf.schemaRefOrVal)(a,n.properties,"properties");h=(0,Wf.isOwnProperty)(e,y,v)}else l.length?h=(0,cs.or)(...l.map(y=>(0,cs._)`${v} === ${y}`)):h=cs.nil;return u.length&&(h=(0,cs.or)(h,...u.map(y=>(0,cs._)`${(0,Wf.usePattern)(t,y)}.test(${v})`))),(0,cs.not)(h)}function m(v){e.code((0,cs._)`delete ${s}[${v}]`)}function f(v){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){m(v);return}if(r===!1){t.setParams({additionalProperty:v}),t.error(),o||e.break();return}if(typeof r=="object"&&!(0,Zf.alwaysValidSchema)(a,r)){let h=e.name("valid");c.removeAdditional==="failing"?(g(v,h,!1),e.if((0,cs.not)(h),()=>{t.reset(),m(v)})):(g(v,h),o||e.if((0,cs.not)(h),()=>e.break()))}}function g(v,h,y){let b={keyword:"additionalProperties",dataProp:v,dataPropType:Zf.Type.Str};y===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,h)}}};G0.default=Kee});var bN=P(J0=>{"use strict";Object.defineProperty(J0,"__esModule",{value:!0});var Jee=Pu(),vN=Mn(),K0=Ke(),yN=V0(),Qee={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:s,it:i}=t;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&yN.default.code(new Jee.KeywordCxt(i,yN.default,"additionalProperties"));let a=(0,vN.allSchemaProperties)(r);for(let p of a)i.definedProperties.add(p);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=K0.mergeEvaluated.props(e,(0,K0.toHash)(a),i.props));let o=a.filter(p=>!(0,K0.alwaysValidSchema)(i,r[p]));if(o.length===0)return;let c=e.name("valid");for(let p of o)l(p)?u(p):(e.if((0,vN.propertyInData)(e,s,p,i.opts.ownProperties)),u(p),i.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(p),t.ok(c);function l(p){return i.opts.useDefaults&&!i.compositeRule&&r[p].default!==void 0}function u(p){t.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};J0.default=Qee});var SN=P(Q0=>{"use strict";Object.defineProperty(Q0,"__esModule",{value:!0});var xN=Mn(),Gf=je(),_N=Ke(),wN=Ke(),Yee={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:s,it:i}=t,{opts:a}=i,o=(0,xN.allSchemaProperties)(r),c=o.filter(g=>(0,_N.alwaysValidSchema)(i,r[g]));if(o.length===0||c.length===o.length&&(!i.opts.unevaluated||i.props===!0))return;let l=a.strictSchema&&!a.allowMatchingProperties&&s.properties,u=e.name("valid");i.props!==!0&&!(i.props instanceof Gf.Name)&&(i.props=(0,wN.evaluatedPropsToName)(e,i.props));let{props:p}=i;d();function d(){for(let g of o)l&&m(g),i.allErrors?f(g):(e.var(u,!0),f(g),e.if(u))}function m(g){for(let v in l)new RegExp(g).test(v)&&(0,_N.checkStrictMode)(i,`property ${v} matches pattern ${g} (use allowMatchingProperties)`)}function f(g){e.forIn("key",n,v=>{e.if((0,Gf._)`${(0,xN.usePattern)(t,g)}.test(${v})`,()=>{let h=c.includes(g);h||t.subschema({keyword:"patternProperties",schemaProp:g,dataProp:v,dataPropType:wN.Type.Str},u),i.opts.unevaluated&&p!==!0?e.assign((0,Gf._)`${p}[${v}]`,!0):!h&&!i.allErrors&&e.if((0,Gf.not)(u),()=>e.break())})})}}};Q0.default=Yee});var kN=P(Y0=>{"use strict";Object.defineProperty(Y0,"__esModule",{value:!0});var Xee=Ke(),ete={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,Xee.alwaysValidSchema)(n,r)){t.fail();return}let s=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),t.failResult(s,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};Y0.default=ete});var EN=P(X0=>{"use strict";Object.defineProperty(X0,"__esModule",{value:!0});var tte=Mn(),rte={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:tte.validateUnion,error:{message:"must match a schema in anyOf"}};X0.default=rte});var TN=P(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});var Vf=je(),nte=Ke(),ste={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Vf._)`{passingSchemas: ${t.passing}}`},ite={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:ste,code(t){let{gen:e,schema:r,parentSchema:n,it:s}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(s.opts.discriminator&&n.discriminator)return;let i=r,a=e.let("valid",!1),o=e.let("passing",null),c=e.name("_valid");t.setParams({passing:o}),e.block(l),t.result(a,()=>t.reset(),()=>t.error(!0));function l(){i.forEach((u,p)=>{let d;(0,nte.alwaysValidSchema)(s,u)?e.var(c,!0):d=t.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&e.if((0,Vf._)`${c} && ${a}`).assign(a,!1).assign(o,(0,Vf._)`[${o}, ${p}]`).else(),e.if(c,()=>{e.assign(a,!0),e.assign(o,p),d&&t.mergeEvaluated(d,Vf.Name)})})}}};ew.default=ite});var RN=P(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});var ate=Ke(),ote={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:r,it:n}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");let s=e.name("valid");r.forEach((i,a)=>{if((0,ate.alwaysValidSchema)(n,i))return;let o=t.subschema({keyword:"allOf",schemaProp:a},s);t.ok(s),t.mergeEvaluated(o)})}};tw.default=ote});var CN=P(rw=>{"use strict";Object.defineProperty(rw,"__esModule",{value:!0});var Kf=je(),IN=Ke(),cte={message:({params:t})=>(0,Kf.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Kf._)`{failingKeyword: ${t.ifClause}}`},lte={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:cte,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,IN.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let s=PN(n,"then"),i=PN(n,"else");if(!s&&!i)return;let a=e.let("valid",!0),o=e.name("_valid");if(c(),t.reset(),s&&i){let u=e.let("ifClause");t.setParams({ifClause:u}),e.if(o,l("then",u),l("else",u))}else s?e.if(o,l("then")):e.if((0,Kf.not)(o),l("else"));t.pass(a,()=>t.error(!0));function c(){let u=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},o);t.mergeEvaluated(u)}function l(u,p){return()=>{let d=t.subschema({keyword:u},o);e.assign(a,o),t.mergeValidEvaluated(d,a),p?e.assign(p,(0,Kf._)`${u}`):t.setParams({ifClause:u})}}}};function PN(t,e){let r=t.schema[e];return r!==void 0&&!(0,IN.alwaysValidSchema)(t,r)}rw.default=lte});var ON=P(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});var ute=Ke(),pte={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,ute.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};nw.default=pte});var AN=P(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});var dte=U0(),mte=cN(),fte=q0(),hte=uN(),gte=pN(),vte=fN(),yte=gN(),bte=V0(),xte=bN(),_te=SN(),wte=kN(),Ste=EN(),kte=TN(),Ete=RN(),Tte=CN(),Rte=ON();function Pte(t=!1){let e=[wte.default,Ste.default,kte.default,Ete.default,Tte.default,Rte.default,yte.default,bte.default,vte.default,xte.default,_te.default];return t?e.push(mte.default,hte.default):e.push(dte.default,fte.default),e.push(gte.default),e}sw.default=Pte});var jN=P(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});var Qt=je(),Ite={message:({schemaCode:t})=>(0,Qt.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Qt._)`{format: ${t}}`},Cte={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Ite,code(t,e){let{gen:r,data:n,$data:s,schema:i,schemaCode:a,it:o}=t,{opts:c,errSchemaPath:l,schemaEnv:u,self:p}=o;if(!c.validateFormats)return;s?d():m();function d(){let f=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,Qt._)`${f}[${a}]`),v=r.let("fType"),h=r.let("format");r.if((0,Qt._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(v,(0,Qt._)`${g}.type || "string"`).assign(h,(0,Qt._)`${g}.validate`),()=>r.assign(v,(0,Qt._)`"string"`).assign(h,g)),t.fail$data((0,Qt.or)(y(),b()));function y(){return c.strictSchema===!1?Qt.nil:(0,Qt._)`${a} && !${h}`}function b(){let x=u.$async?(0,Qt._)`(${g}.async ? await ${h}(${n}) : ${h}(${n}))`:(0,Qt._)`${h}(${n})`,w=(0,Qt._)`(typeof ${h} == "function" ? ${x} : ${h}.test(${n}))`;return(0,Qt._)`${h} && ${h} !== true && ${v} === ${e} && !${w}`}}function m(){let f=p.formats[i];if(!f){y();return}if(f===!0)return;let[g,v,h]=b(f);g===e&&t.pass(x());function y(){if(c.strictSchema===!1){p.logger.warn(w());return}throw new Error(w());function w(){return`unknown format "${i}" ignored in schema at path "${l}"`}}function b(w){let S=w instanceof RegExp?(0,Qt.regexpCode)(w):c.code.formats?(0,Qt._)`${c.code.formats}${(0,Qt.getProperty)(i)}`:void 0,k=r.scopeValue("formats",{key:i,ref:w,code:S});return typeof w=="object"&&!(w instanceof RegExp)?[w.type||"string",w.validate,(0,Qt._)`${k}.validate`]:["string",w,k]}function x(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!u.$async)throw new Error("async format in sync schema");return(0,Qt._)`await ${h}(${n})`}return typeof v=="function"?(0,Qt._)`${h}(${n})`:(0,Qt._)`${h}.test(${n})`}}}};iw.default=Cte});var NN=P(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});var Ote=jN(),Ate=[Ote.default];aw.default=Ate});var DN=P(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.contentVocabulary=Zo.metadataVocabulary=void 0;Zo.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Zo.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var zN=P(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});var jte=Bj(),Nte=sN(),Dte=AN(),Mte=NN(),MN=DN(),zte=[jte.default,Nte.default,(0,Dte.default)(),Mte.default,MN.metadataVocabulary,MN.contentVocabulary];ow.default=zte});var LN=P(Jf=>{"use strict";Object.defineProperty(Jf,"__esModule",{value:!0});Jf.DiscrError=void 0;var $N;(function(t){t.Tag="tag",t.Mapping="mapping"})($N||(Jf.DiscrError=$N={}))});var qN=P(lw=>{"use strict";Object.defineProperty(lw,"__esModule",{value:!0});var Go=je(),cw=LN(),UN=jf(),$te=Iu(),Lte=Ke(),Ute={message:({params:{discrError:t,tagName:e}})=>t===cw.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,Go._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},qte={keyword:"discriminator",type:"object",schemaType:"object",error:Ute,code(t){let{gen:e,data:r,schema:n,parentSchema:s,it:i}=t,{oneOf:a}=s;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=n.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),l=e.const("tag",(0,Go._)`${r}${(0,Go.getProperty)(o)}`);e.if((0,Go._)`typeof ${l} == "string"`,()=>u(),()=>t.error(!1,{discrError:cw.DiscrError.Tag,tag:l,tagName:o})),t.ok(c);function u(){let m=d();e.if(!1);for(let f in m)e.elseIf((0,Go._)`${l} === ${f}`),e.assign(c,p(m[f]));e.else(),t.error(!1,{discrError:cw.DiscrError.Mapping,tag:l,tagName:o}),e.endIf()}function p(m){let f=e.name("valid"),g=t.subschema({keyword:"oneOf",schemaProp:m},f);return t.mergeEvaluated(g,Go.Name),f}function d(){var m;let f={},g=h(s),v=!0;for(let x=0;x{Fte.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var pw=P((Ct,uw)=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.MissingRefError=Ct.ValidationError=Ct.CodeGen=Ct.Name=Ct.nil=Ct.stringify=Ct.str=Ct._=Ct.KeywordCxt=Ct.Ajv=void 0;var Hte=$j(),Bte=zN(),Wte=qN(),HN=FN(),Zte=["/properties"],Qf="http://json-schema.org/draft-07/schema",Vo=class extends Hte.default{_addVocabularies(){super._addVocabularies(),Bte.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(Wte.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(HN,Zte):HN;this.addMetaSchema(e,Qf,!1),this.refs["http://json-schema.org/schema"]=Qf}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Qf)?Qf:void 0)}};Ct.Ajv=Vo;uw.exports=Ct=Vo;uw.exports.Ajv=Vo;Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=Vo;var Gte=Pu();Object.defineProperty(Ct,"KeywordCxt",{enumerable:!0,get:function(){return Gte.KeywordCxt}});var Ko=je();Object.defineProperty(Ct,"_",{enumerable:!0,get:function(){return Ko._}});Object.defineProperty(Ct,"str",{enumerable:!0,get:function(){return Ko.str}});Object.defineProperty(Ct,"stringify",{enumerable:!0,get:function(){return Ko.stringify}});Object.defineProperty(Ct,"nil",{enumerable:!0,get:function(){return Ko.nil}});Object.defineProperty(Ct,"Name",{enumerable:!0,get:function(){return Ko.Name}});Object.defineProperty(Ct,"CodeGen",{enumerable:!0,get:function(){return Ko.CodeGen}});var Vte=Of();Object.defineProperty(Ct,"ValidationError",{enumerable:!0,get:function(){return Vte.default}});var Kte=Iu();Object.defineProperty(Ct,"MissingRefError",{enumerable:!0,get:function(){return Kte.default}})});var QN=P(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});Os.formatNames=Os.fastFormats=Os.fullFormats=void 0;function Cs(t,e){return{validate:t,compare:e}}Os.fullFormats={date:Cs(GN,hw),time:Cs(mw(!0),gw),"date-time":Cs(BN(!0),KN),"iso-time":Cs(mw(),VN),"iso-date-time":Cs(BN(),JN),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:tre,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:cre,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:rre,int32:{type:"number",validate:ire},int64:{type:"number",validate:are},float:{type:"number",validate:ZN},double:{type:"number",validate:ZN},password:!0,binary:!0};Os.fastFormats={...Os.fullFormats,date:Cs(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,hw),time:Cs(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,gw),"date-time":Cs(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,KN),"iso-time":Cs(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,VN),"iso-date-time":Cs(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,JN),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Os.formatNames=Object.keys(Os.fullFormats);function Jte(t){return t%4===0&&(t%100!==0||t%400===0)}var Qte=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Yte=[0,31,28,31,30,31,30,31,31,30,31,30,31];function GN(t){let e=Qte.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],s=+e[3];return n>=1&&n<=12&&s>=1&&s<=(n===2&&Jte(r)?29:Yte[n])}function hw(t,e){if(t&&e)return t>e?1:t23||u>59||t&&!o)return!1;if(s<=23&&i<=59&&a<60)return!0;let p=i-u*c,d=s-l*c-(p<0?1:0);return(d===23||d===-1)&&(p===59||p===-1)&&a<61}}function gw(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function VN(t,e){if(!(t&&e))return;let r=dw.exec(t),n=dw.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t=nre}function are(t){return Number.isInteger(t)}function ZN(){return!0}var ore=/[^\\]\\Z/;function cre(t){if(ore.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var YN=P(Jo=>{"use strict";Object.defineProperty(Jo,"__esModule",{value:!0});Jo.formatLimitDefinition=void 0;var lre=pw(),ls=je(),Ci=ls.operators,Yf={formatMaximum:{okStr:"<=",ok:Ci.LTE,fail:Ci.GT},formatMinimum:{okStr:">=",ok:Ci.GTE,fail:Ci.LT},formatExclusiveMaximum:{okStr:"<",ok:Ci.LT,fail:Ci.GTE},formatExclusiveMinimum:{okStr:">",ok:Ci.GT,fail:Ci.LTE}},ure={message:({keyword:t,schemaCode:e})=>(0,ls.str)`should be ${Yf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,ls._)`{comparison: ${Yf[t].okStr}, limit: ${e}}`};Jo.formatLimitDefinition={keyword:Object.keys(Yf),type:"string",schemaType:"string",$data:!0,error:ure,code(t){let{gen:e,data:r,schemaCode:n,keyword:s,it:i}=t,{opts:a,self:o}=i;if(!a.validateFormats)return;let c=new lre.KeywordCxt(i,o.RULES.all.format.definition,"format");c.$data?l():u();function l(){let d=e.scopeValue("formats",{ref:o.formats,code:a.code.formats}),m=e.const("fmt",(0,ls._)`${d}[${c.schemaCode}]`);t.fail$data((0,ls.or)((0,ls._)`typeof ${m} != "object"`,(0,ls._)`${m} instanceof RegExp`,(0,ls._)`typeof ${m}.compare != "function"`,p(m)))}function u(){let d=c.schema,m=o.formats[d];if(!m||m===!0)return;if(typeof m!="object"||m instanceof RegExp||typeof m.compare!="function")throw new Error(`"${s}": format "${d}" does not define "compare" function`);let f=e.scopeValue("formats",{key:d,ref:m,code:a.code.formats?(0,ls._)`${a.code.formats}${(0,ls.getProperty)(d)}`:void 0});t.fail$data(p(f))}function p(d){return(0,ls._)`${d}.compare(${r}, ${n}) ${Yf[s].fail} 0`}},dependencies:["format"]};var pre=t=>(t.addKeyword(Jo.formatLimitDefinition),t);Jo.default=pre});var rD=P((Hu,tD)=>{"use strict";Object.defineProperty(Hu,"__esModule",{value:!0});var Qo=QN(),dre=YN(),vw=je(),XN=new vw.Name("fullFormats"),mre=new vw.Name("fastFormats"),yw=(t,e={keywords:!0})=>{if(Array.isArray(e))return eD(t,e,Qo.fullFormats,XN),t;let[r,n]=e.mode==="fast"?[Qo.fastFormats,mre]:[Qo.fullFormats,XN],s=e.formats||Qo.formatNames;return eD(t,s,r,n),e.keywords&&(0,dre.default)(t),t};yw.get=(t,e="full")=>{let n=(e==="fast"?Qo.fastFormats:Qo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function eD(t,e,r,n){var s,i;(s=(i=t.opts.code).formats)!==null&&s!==void 0||(i.formats=(0,vw._)`require("ajv-formats/dist/formats").${n}`);for(let a of e)t.addFormat(a,r[a])}tD.exports=Hu=yw;Object.defineProperty(Hu,"__esModule",{value:!0});Hu.default=yw});var pD=P((oje,uD)=>{uD.exports=lD;lD.sync=vre;var oD=require("fs");function gre(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n{hD.exports=mD;mD.sync=yre;var dD=require("fs");function mD(t,e,r){dD.stat(t,function(n,s){r(n,n?!1:fD(s,e))})}function yre(t,e){return fD(dD.statSync(t),e)}function fD(t,e){return t.isFile()&&bre(t,e)}function bre(t,e){var r=t.mode,n=t.uid,s=t.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),a=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),o=parseInt("100",8),c=parseInt("010",8),l=parseInt("001",8),u=o|c,p=r&l||r&c&&s===a||r&o&&n===i||r&u&&i===0;return p}});var yD=P((uje,vD)=>{var lje=require("fs"),rh;process.platform==="win32"||global.TESTING_WINDOWS?rh=pD():rh=gD();vD.exports=bw;bw.sync=xre;function bw(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,s){bw(t,e||{},function(i,a){i?s(i):n(a)})})}rh(t,e||{},function(n,s){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,s=!1),r(n,s)})}function xre(t,e){try{return rh.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var ED=P((pje,kD)=>{var Xo=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",bD=require("path"),_re=Xo?";":":",xD=yD(),_D=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),wD=(t,e)=>{let r=e.colon||_re,n=t.match(/\//)||Xo&&t.match(/\\/)?[""]:[...Xo?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],s=Xo?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Xo?s.split(r):[""];return Xo&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:s}},SD=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:s,pathExtExe:i}=wD(t,e),a=[],o=l=>new Promise((u,p)=>{if(l===n.length)return e.all&&a.length?u(a):p(_D(t));let d=n[l],m=/^".*"$/.test(d)?d.slice(1,-1):d,f=bD.join(m,t),g=!m&&/^\.[\\\/]/.test(t)?t.slice(0,2)+f:f;u(c(g,l,0))}),c=(l,u,p)=>new Promise((d,m)=>{if(p===s.length)return d(o(u+1));let f=s[p];xD(l+f,{pathExt:i},(g,v)=>{if(!g&&v)if(e.all)a.push(l+f);else return d(l+f);return d(c(l,u,p+1))})});return r?o(0).then(l=>r(null,l),r):o(0)},wre=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:s}=wD(t,e),i=[];for(let a=0;a{"use strict";var TD=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};xw.exports=TD;xw.exports.default=TD});var OD=P((mje,CD)=>{"use strict";var PD=require("path"),Sre=ED(),kre=RD();function ID(t,e){let r=t.options.env||process.env,n=process.cwd(),s=t.options.cwd!=null,i=s&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(t.options.cwd)}catch{}let a;try{a=Sre.sync(t.command,{path:r[kre({env:r})],pathExt:e?PD.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return a&&(a=PD.resolve(s?t.options.cwd:"",a)),a}function Ere(t){return ID(t)||ID(t,!0)}CD.exports=Ere});var AD=P((fje,ww)=>{"use strict";var _w=/([()\][%!^"`<>&|;, *?])/g;function Tre(t){return t=t.replace(_w,"^$1"),t}function Rre(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(_w,"^$1"),e&&(t=t.replace(_w,"^$1")),t}ww.exports.command=Tre;ww.exports.argument=Rre});var ND=P((hje,jD)=>{"use strict";jD.exports=/^#!(.*)/});var MD=P((gje,DD)=>{"use strict";var Pre=ND();DD.exports=(t="")=>{let e=t.match(Pre);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?n:n?`${s} ${n}`:s}});var $D=P((vje,zD)=>{"use strict";var Sw=require("fs"),Ire=MD();function Cre(t){let r=Buffer.alloc(150),n;try{n=Sw.openSync(t,"r"),Sw.readSync(n,r,0,150,0),Sw.closeSync(n)}catch{}return Ire(r.toString())}zD.exports=Cre});var FD=P((yje,qD)=>{"use strict";var Ore=require("path"),LD=OD(),UD=AD(),Are=$D(),jre=process.platform==="win32",Nre=/\.(?:com|exe)$/i,Dre=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Mre(t){t.file=LD(t);let e=t.file&&Are(t.file);return e?(t.args.unshift(t.file),t.command=e,LD(t)):t.file}function zre(t){if(!jre)return t;let e=Mre(t),r=!Nre.test(e);if(t.options.forceShell||r){let n=Dre.test(e);t.command=Ore.normalize(t.command),t.command=UD.command(t.command),t.args=t.args.map(i=>UD.argument(i,n));let s=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${s}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function $re(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:zre(n)}qD.exports=$re});var WD=P((bje,BD)=>{"use strict";var kw=process.platform==="win32";function Ew(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function Lre(t,e){if(!kw)return;let r=t.emit;t.emit=function(n,s){if(n==="exit"){let i=HD(s,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function HD(t,e){return kw&&t===1&&!e.file?Ew(e.original,"spawn"):null}function Ure(t,e){return kw&&t===1&&!e.file?Ew(e.original,"spawnSync"):null}BD.exports={hookChildProcess:Lre,verifyENOENT:HD,verifyENOENTSync:Ure,notFoundError:Ew}});var VD=P((xje,ec)=>{"use strict";var ZD=require("child_process"),Tw=FD(),Rw=WD();function GD(t,e,r){let n=Tw(t,e,r),s=ZD.spawn(n.command,n.args,n.options);return Rw.hookChildProcess(s,n),s}function qre(t,e,r){let n=Tw(t,e,r),s=ZD.spawnSync(n.command,n.args,n.options);return s.error=s.error||Rw.verifyENOENTSync(s.status,n),s}ec.exports=GD;ec.exports.spawn=GD;ec.exports.sync=qre;ec.exports._parse=Tw;ec.exports._enoent=Rw});function Ra(){if(Ta!==null)return Ta;if(process.env.WSL_DISTRO_NAME)return Ta=!0,!0;if(process.platform!=="linux")return Ta=!1,!1;try{if((0,rc.existsSync)("/proc/version")){let t=(0,rc.readFileSync)("/proc/version","utf-8").toLowerCase();return Ta=t.includes("microsoft")||t.includes("wsl"),Ta}}catch{}return Ta=!1,!1}function XD(){if(ih!==null)return ih;if(!Ra())return null;try{if((0,rc.existsSync)("/etc/resolv.conf")){let e=(0,rc.readFileSync)("/etc/resolv.conf","utf-8").match(/^nameserver\s+(\d+\.\d+\.\d+\.\d+)/m);if(e)return ih=e[1],ih}}catch{}return null}function eM(){return YD.default.randomBytes(24).toString("hex")}var rc,YD,Ta,ih,ah=ye(()=>{"use strict";rc=require("fs"),YD=Q(require("crypto"),1),Ta=null,ih=null});function un(){if(oh!==null)return oh;let t=lh.default.join(Ae.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=Ae.loadFromFile(t);return oh=parseInt(e.CLAUDE_PILOT_WORKER_PORT,10),oh}function us(){if(ch!==null)return ch;let t=lh.default.join(Ae.get("CLAUDE_PILOT_DATA_DIR"),"settings.json");return ch=Ae.loadFromFile(t).CLAUDE_PILOT_WORKER_HOST,ch}function ph(){if(nc!==null)return nc;let t=lh.default.join(Ae.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=Ae.loadFromFile(t);return nc=e.CLAUDE_PILOT_WORKER_BIND,nc==="127.0.0.1"&&Ra()&&(nc="0.0.0.0",Wre(t,e)),nc}function Wre(t,e){if(e.CLAUDE_PILOT_REMOTE_TOKEN)return;let r=eM();e.CLAUDE_PILOT_REMOTE_TOKEN=r;try{let n=(0,uh.readFileSync)(t,"utf-8"),s=JSON.parse(n);s.CLAUDE_PILOT_REMOTE_TOKEN=r,(0,uh.writeFileSync)(t,JSON.stringify(s,null,2),"utf-8")}catch{}}function Zre(t){return t.includes(":")&&!t.startsWith("[")?`[${t}]`:t}function dh(){let t=us(),e=un();return`http://${Zre(t)}:${e}`}var lh,uh,oh,ch,nc,Ln=ye(()=>{"use strict";lh=Q(require("path"),1),uh=require("fs");Or();ah();oh=null,ch=null,nc=null});var ei,Bu,rM,Pw,tM,Iw,_,re=ye(()=>{"use strict";ei=require("fs"),Bu=require("path"),rM=require("os"),Pw=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(Pw||{}),tM=(0,Bu.join)((0,rM.homedir)(),".pilot/memory"),Iw=class{level=null;useColor;logFilePath=null;logFileInitialized=!1;constructor(){this.useColor=process.stdout.isTTY??!1}ensureLogFileInitialized(){if(!this.logFileInitialized){this.logFileInitialized=!0;try{let e=(0,Bu.join)(tM,"logs");(0,ei.existsSync)(e)||(0,ei.mkdirSync)(e,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=(0,Bu.join)(e,`pilot-memory-${r}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let e=(0,Bu.join)(tM,"settings.json");if((0,ei.existsSync)(e)){let r=(0,ei.readFileSync)(e,"utf-8"),s=(JSON.parse(r).CLAUDE_PILOT_LOG_LEVEL||"INFO").toUpperCase();this.level=Pw[s]??1}else this.level=1}catch{this.level=1}return this.level}correlationId(e,r){return`obs-${e}-${r}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} -${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let r=Object.keys(e);return r.length===0?"{}":r.length<=3?JSON.stringify(e):`{${r.length} keys: ${r.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,r){if(!r)return e;let n=r;if(typeof r=="string")try{n=JSON.parse(r)}catch{n=r}if(e==="Bash"&&n.command)return`${e}(${n.command})`;if(n.file_path)return`${e}(${n.file_path})`;if(n.notebook_path)return`${e}(${n.notebook_path})`;if(e==="Glob"&&n.pattern)return`${e}(${n.pattern})`;if(e==="Grep"&&n.pattern)return`${e}(${n.pattern})`;if(n.url)return`${e}(${n.url})`;if(n.query)return`${e}(${n.query})`;if(e==="Task"){if(n.subagent_type)return`${e}(${n.subagent_type})`;if(n.description)return`${e}(${n.description})`}return e==="Skill"&&n.skill?`${e}(${n.skill})`:e==="LSP"&&n.operation?`${e}(${n.operation})`:e}formatTimestamp(e){let r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),a=String(e.getMinutes()).padStart(2,"0"),o=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${s} ${i}:${a}:${o}.${c}`}log(e,r,n,s,i){if(e{for(let l of o)(0,qu.checkReportMissingProp)(t,l)}):(r.if((0,F0._)`${c} && (${(0,qu.checkMissingProp)(t,o,i)})`),(0,qu.reportMissingProp)(t,i),r.else())}}Is.validatePropertyDeps=cN;function lN(t,e=t.schema){let{gen:r,data:n,keyword:s,it:i}=t,a=r.name("valid");for(let o in e)(0,Dee.alwaysValidSchema)(i,e[o])||(r.if((0,qu.propertyInData)(r,n,o,i.opts.ownProperties),()=>{let c=t.subschema({keyword:s,schemaProp:o},a);t.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),t.ok(a))}Is.validateSchemaDeps=lN;Is.default=Mee});var dN=P(H0=>{"use strict";Object.defineProperty(H0,"__esModule",{value:!0});var pN=je(),$ee=Ke(),Lee={message:"property name must be valid",params:({params:t})=>(0,pN._)`{propertyName: ${t.propertyName}}`},Uee={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Lee,code(t){let{gen:e,schema:r,data:n,it:s}=t;if((0,$ee.alwaysValidSchema)(s,r))return;let i=e.name("valid");e.forIn("key",n,a=>{t.setParams({propertyName:a}),t.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),e.if((0,pN.not)(i),()=>{t.error(!0),s.allErrors||e.break()})}),t.ok(i)}};H0.default=Uee});var W0=P(B0=>{"use strict";Object.defineProperty(B0,"__esModule",{value:!0});var Hf=Mn(),cs=je(),qee=Ys(),Bf=Ke(),Fee={message:"must NOT have additional properties",params:({params:t})=>(0,cs._)`{additionalProperty: ${t.additionalProperty}}`},Hee={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Fee,code(t){let{gen:e,schema:r,parentSchema:n,data:s,errsCount:i,it:a}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:o,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,Bf.alwaysValidSchema)(a,r))return;let l=(0,Hf.allSchemaProperties)(n.properties),u=(0,Hf.allSchemaProperties)(n.patternProperties);p(),t.ok((0,cs._)`${i} === ${qee.default.errors}`);function p(){e.forIn("key",s,v=>{!l.length&&!u.length?f(v):e.if(d(v),()=>f(v))})}function d(v){let h;if(l.length>8){let y=(0,Bf.schemaRefOrVal)(a,n.properties,"properties");h=(0,Hf.isOwnProperty)(e,y,v)}else l.length?h=(0,cs.or)(...l.map(y=>(0,cs._)`${v} === ${y}`)):h=cs.nil;return u.length&&(h=(0,cs.or)(h,...u.map(y=>(0,cs._)`${(0,Hf.usePattern)(t,y)}.test(${v})`))),(0,cs.not)(h)}function m(v){e.code((0,cs._)`delete ${s}[${v}]`)}function f(v){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){m(v);return}if(r===!1){t.setParams({additionalProperty:v}),t.error(),o||e.break();return}if(typeof r=="object"&&!(0,Bf.alwaysValidSchema)(a,r)){let h=e.name("valid");c.removeAdditional==="failing"?(g(v,h,!1),e.if((0,cs.not)(h),()=>{t.reset(),m(v)})):(g(v,h),o||e.if((0,cs.not)(h),()=>e.break()))}}function g(v,h,y){let b={keyword:"additionalProperties",dataProp:v,dataPropType:Bf.Type.Str};y===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,h)}}};B0.default=Hee});var hN=P(G0=>{"use strict";Object.defineProperty(G0,"__esModule",{value:!0});var Bee=Ru(),mN=Mn(),Z0=Ke(),fN=W0(),Wee={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:s,it:i}=t;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&fN.default.code(new Bee.KeywordCxt(i,fN.default,"additionalProperties"));let a=(0,mN.allSchemaProperties)(r);for(let p of a)i.definedProperties.add(p);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=Z0.mergeEvaluated.props(e,(0,Z0.toHash)(a),i.props));let o=a.filter(p=>!(0,Z0.alwaysValidSchema)(i,r[p]));if(o.length===0)return;let c=e.name("valid");for(let p of o)l(p)?u(p):(e.if((0,mN.propertyInData)(e,s,p,i.opts.ownProperties)),u(p),i.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(p),t.ok(c);function l(p){return i.opts.useDefaults&&!i.compositeRule&&r[p].default!==void 0}function u(p){t.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};G0.default=Wee});var bN=P(V0=>{"use strict";Object.defineProperty(V0,"__esModule",{value:!0});var gN=Mn(),Wf=je(),vN=Ke(),yN=Ke(),Zee={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:s,it:i}=t,{opts:a}=i,o=(0,gN.allSchemaProperties)(r),c=o.filter(g=>(0,vN.alwaysValidSchema)(i,r[g]));if(o.length===0||c.length===o.length&&(!i.opts.unevaluated||i.props===!0))return;let l=a.strictSchema&&!a.allowMatchingProperties&&s.properties,u=e.name("valid");i.props!==!0&&!(i.props instanceof Wf.Name)&&(i.props=(0,yN.evaluatedPropsToName)(e,i.props));let{props:p}=i;d();function d(){for(let g of o)l&&m(g),i.allErrors?f(g):(e.var(u,!0),f(g),e.if(u))}function m(g){for(let v in l)new RegExp(g).test(v)&&(0,vN.checkStrictMode)(i,`property ${v} matches pattern ${g} (use allowMatchingProperties)`)}function f(g){e.forIn("key",n,v=>{e.if((0,Wf._)`${(0,gN.usePattern)(t,g)}.test(${v})`,()=>{let h=c.includes(g);h||t.subschema({keyword:"patternProperties",schemaProp:g,dataProp:v,dataPropType:yN.Type.Str},u),i.opts.unevaluated&&p!==!0?e.assign((0,Wf._)`${p}[${v}]`,!0):!h&&!i.allErrors&&e.if((0,Wf.not)(u),()=>e.break())})})}}};V0.default=Zee});var xN=P(K0=>{"use strict";Object.defineProperty(K0,"__esModule",{value:!0});var Gee=Ke(),Vee={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,Gee.alwaysValidSchema)(n,r)){t.fail();return}let s=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),t.failResult(s,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};K0.default=Vee});var _N=P(J0=>{"use strict";Object.defineProperty(J0,"__esModule",{value:!0});var Kee=Mn(),Jee={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Kee.validateUnion,error:{message:"must match a schema in anyOf"}};J0.default=Jee});var wN=P(Q0=>{"use strict";Object.defineProperty(Q0,"__esModule",{value:!0});var Zf=je(),Qee=Ke(),Yee={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Zf._)`{passingSchemas: ${t.passing}}`},Xee={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Yee,code(t){let{gen:e,schema:r,parentSchema:n,it:s}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(s.opts.discriminator&&n.discriminator)return;let i=r,a=e.let("valid",!1),o=e.let("passing",null),c=e.name("_valid");t.setParams({passing:o}),e.block(l),t.result(a,()=>t.reset(),()=>t.error(!0));function l(){i.forEach((u,p)=>{let d;(0,Qee.alwaysValidSchema)(s,u)?e.var(c,!0):d=t.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&e.if((0,Zf._)`${c} && ${a}`).assign(a,!1).assign(o,(0,Zf._)`[${o}, ${p}]`).else(),e.if(c,()=>{e.assign(a,!0),e.assign(o,p),d&&t.mergeEvaluated(d,Zf.Name)})})}}};Q0.default=Xee});var SN=P(Y0=>{"use strict";Object.defineProperty(Y0,"__esModule",{value:!0});var ete=Ke(),tte={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:r,it:n}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");let s=e.name("valid");r.forEach((i,a)=>{if((0,ete.alwaysValidSchema)(n,i))return;let o=t.subschema({keyword:"allOf",schemaProp:a},s);t.ok(s),t.mergeEvaluated(o)})}};Y0.default=tte});var TN=P(X0=>{"use strict";Object.defineProperty(X0,"__esModule",{value:!0});var Gf=je(),kN=Ke(),rte={message:({params:t})=>(0,Gf.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Gf._)`{failingKeyword: ${t.ifClause}}`},nte={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:rte,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,kN.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let s=EN(n,"then"),i=EN(n,"else");if(!s&&!i)return;let a=e.let("valid",!0),o=e.name("_valid");if(c(),t.reset(),s&&i){let u=e.let("ifClause");t.setParams({ifClause:u}),e.if(o,l("then",u),l("else",u))}else s?e.if(o,l("then")):e.if((0,Gf.not)(o),l("else"));t.pass(a,()=>t.error(!0));function c(){let u=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},o);t.mergeEvaluated(u)}function l(u,p){return()=>{let d=t.subschema({keyword:u},o);e.assign(a,o),t.mergeValidEvaluated(d,a),p?e.assign(p,(0,Gf._)`${u}`):t.setParams({ifClause:u})}}}};function EN(t,e){let r=t.schema[e];return r!==void 0&&!(0,kN.alwaysValidSchema)(t,r)}X0.default=nte});var RN=P(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});var ste=Ke(),ite={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,ste.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};ew.default=ite});var PN=P(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});var ate=z0(),ote=sN(),cte=$0(),lte=aN(),ute=oN(),pte=uN(),dte=dN(),mte=W0(),fte=hN(),hte=bN(),gte=xN(),vte=_N(),yte=wN(),bte=SN(),xte=TN(),_te=RN();function wte(t=!1){let e=[gte.default,vte.default,yte.default,bte.default,xte.default,_te.default,dte.default,mte.default,pte.default,fte.default,hte.default];return t?e.push(ote.default,lte.default):e.push(ate.default,cte.default),e.push(ute.default),e}tw.default=wte});var IN=P(rw=>{"use strict";Object.defineProperty(rw,"__esModule",{value:!0});var Qt=je(),Ste={message:({schemaCode:t})=>(0,Qt.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Qt._)`{format: ${t}}`},Ete={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Ste,code(t,e){let{gen:r,data:n,$data:s,schema:i,schemaCode:a,it:o}=t,{opts:c,errSchemaPath:l,schemaEnv:u,self:p}=o;if(!c.validateFormats)return;s?d():m();function d(){let f=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),g=r.const("fDef",(0,Qt._)`${f}[${a}]`),v=r.let("fType"),h=r.let("format");r.if((0,Qt._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(v,(0,Qt._)`${g}.type || "string"`).assign(h,(0,Qt._)`${g}.validate`),()=>r.assign(v,(0,Qt._)`"string"`).assign(h,g)),t.fail$data((0,Qt.or)(y(),b()));function y(){return c.strictSchema===!1?Qt.nil:(0,Qt._)`${a} && !${h}`}function b(){let x=u.$async?(0,Qt._)`(${g}.async ? await ${h}(${n}) : ${h}(${n}))`:(0,Qt._)`${h}(${n})`,w=(0,Qt._)`(typeof ${h} == "function" ? ${x} : ${h}.test(${n}))`;return(0,Qt._)`${h} && ${h} !== true && ${v} === ${e} && !${w}`}}function m(){let f=p.formats[i];if(!f){y();return}if(f===!0)return;let[g,v,h]=b(f);g===e&&t.pass(x());function y(){if(c.strictSchema===!1){p.logger.warn(w());return}throw new Error(w());function w(){return`unknown format "${i}" ignored in schema at path "${l}"`}}function b(w){let S=w instanceof RegExp?(0,Qt.regexpCode)(w):c.code.formats?(0,Qt._)`${c.code.formats}${(0,Qt.getProperty)(i)}`:void 0,E=r.scopeValue("formats",{key:i,ref:w,code:S});return typeof w=="object"&&!(w instanceof RegExp)?[w.type||"string",w.validate,(0,Qt._)`${E}.validate`]:["string",w,E]}function x(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!u.$async)throw new Error("async format in sync schema");return(0,Qt._)`await ${h}(${n})`}return typeof v=="function"?(0,Qt._)`${h}(${n})`:(0,Qt._)`${h}.test(${n})`}}}};rw.default=Ete});var CN=P(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});var kte=IN(),Tte=[kte.default];nw.default=Tte});var ON=P(Wo=>{"use strict";Object.defineProperty(Wo,"__esModule",{value:!0});Wo.contentVocabulary=Wo.metadataVocabulary=void 0;Wo.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];Wo.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var jN=P(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});var Rte=Uj(),Pte=eN(),Ite=PN(),Cte=CN(),AN=ON(),Ote=[Rte.default,Pte.default,(0,Ite.default)(),Cte.default,AN.metadataVocabulary,AN.contentVocabulary];sw.default=Ote});var DN=P(Vf=>{"use strict";Object.defineProperty(Vf,"__esModule",{value:!0});Vf.DiscrError=void 0;var NN;(function(t){t.Tag="tag",t.Mapping="mapping"})(NN||(Vf.DiscrError=NN={}))});var zN=P(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});var Zo=je(),iw=DN(),MN=Of(),Ate=Pu(),jte=Ke(),Nte={message:({params:{discrError:t,tagName:e}})=>t===iw.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,Zo._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},Dte={keyword:"discriminator",type:"object",schemaType:"object",error:Nte,code(t){let{gen:e,data:r,schema:n,parentSchema:s,it:i}=t,{oneOf:a}=s;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=n.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),l=e.const("tag",(0,Zo._)`${r}${(0,Zo.getProperty)(o)}`);e.if((0,Zo._)`typeof ${l} == "string"`,()=>u(),()=>t.error(!1,{discrError:iw.DiscrError.Tag,tag:l,tagName:o})),t.ok(c);function u(){let m=d();e.if(!1);for(let f in m)e.elseIf((0,Zo._)`${l} === ${f}`),e.assign(c,p(m[f]));e.else(),t.error(!1,{discrError:iw.DiscrError.Mapping,tag:l,tagName:o}),e.endIf()}function p(m){let f=e.name("valid"),g=t.subschema({keyword:"oneOf",schemaProp:m},f);return t.mergeEvaluated(g,Zo.Name),f}function d(){var m;let f={},g=h(s),v=!0;for(let x=0;x{Mte.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var cw=P((Ct,ow)=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.MissingRefError=Ct.ValidationError=Ct.CodeGen=Ct.Name=Ct.nil=Ct.stringify=Ct.str=Ct._=Ct.KeywordCxt=Ct.Ajv=void 0;var zte=Nj(),$te=jN(),Lte=zN(),LN=$N(),Ute=["/properties"],Kf="http://json-schema.org/draft-07/schema",Go=class extends zte.default{_addVocabularies(){super._addVocabularies(),$te.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(Lte.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(LN,Ute):LN;this.addMetaSchema(e,Kf,!1),this.refs["http://json-schema.org/schema"]=Kf}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Kf)?Kf:void 0)}};Ct.Ajv=Go;ow.exports=Ct=Go;ow.exports.Ajv=Go;Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=Go;var qte=Ru();Object.defineProperty(Ct,"KeywordCxt",{enumerable:!0,get:function(){return qte.KeywordCxt}});var Vo=je();Object.defineProperty(Ct,"_",{enumerable:!0,get:function(){return Vo._}});Object.defineProperty(Ct,"str",{enumerable:!0,get:function(){return Vo.str}});Object.defineProperty(Ct,"stringify",{enumerable:!0,get:function(){return Vo.stringify}});Object.defineProperty(Ct,"nil",{enumerable:!0,get:function(){return Vo.nil}});Object.defineProperty(Ct,"Name",{enumerable:!0,get:function(){return Vo.Name}});Object.defineProperty(Ct,"CodeGen",{enumerable:!0,get:function(){return Vo.CodeGen}});var Fte=If();Object.defineProperty(Ct,"ValidationError",{enumerable:!0,get:function(){return Fte.default}});var Hte=Pu();Object.defineProperty(Ct,"MissingRefError",{enumerable:!0,get:function(){return Hte.default}})});var GN=P(Os=>{"use strict";Object.defineProperty(Os,"__esModule",{value:!0});Os.formatNames=Os.fastFormats=Os.fullFormats=void 0;function Cs(t,e){return{validate:t,compare:e}}Os.fullFormats={date:Cs(HN,dw),time:Cs(uw(!0),mw),"date-time":Cs(UN(!0),WN),"iso-time":Cs(uw(),BN),"iso-date-time":Cs(UN(),ZN),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:Kte,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:rre,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:Jte,int32:{type:"number",validate:Xte},int64:{type:"number",validate:ere},float:{type:"number",validate:FN},double:{type:"number",validate:FN},password:!0,binary:!0};Os.fastFormats={...Os.fullFormats,date:Cs(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,dw),time:Cs(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,mw),"date-time":Cs(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,WN),"iso-time":Cs(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,BN),"iso-date-time":Cs(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,ZN),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Os.formatNames=Object.keys(Os.fullFormats);function Bte(t){return t%4===0&&(t%100!==0||t%400===0)}var Wte=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Zte=[0,31,28,31,30,31,30,31,31,30,31,30,31];function HN(t){let e=Wte.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],s=+e[3];return n>=1&&n<=12&&s>=1&&s<=(n===2&&Bte(r)?29:Zte[n])}function dw(t,e){if(t&&e)return t>e?1:t23||u>59||t&&!o)return!1;if(s<=23&&i<=59&&a<60)return!0;let p=i-u*c,d=s-l*c-(p<0?1:0);return(d===23||d===-1)&&(p===59||p===-1)&&a<61}}function mw(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function BN(t,e){if(!(t&&e))return;let r=lw.exec(t),n=lw.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t=Qte}function ere(t){return Number.isInteger(t)}function FN(){return!0}var tre=/[^\\]\\Z/;function rre(t){if(tre.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var VN=P(Ko=>{"use strict";Object.defineProperty(Ko,"__esModule",{value:!0});Ko.formatLimitDefinition=void 0;var nre=cw(),ls=je(),Ci=ls.operators,Jf={formatMaximum:{okStr:"<=",ok:Ci.LTE,fail:Ci.GT},formatMinimum:{okStr:">=",ok:Ci.GTE,fail:Ci.LT},formatExclusiveMaximum:{okStr:"<",ok:Ci.LT,fail:Ci.GTE},formatExclusiveMinimum:{okStr:">",ok:Ci.GT,fail:Ci.LTE}},sre={message:({keyword:t,schemaCode:e})=>(0,ls.str)`should be ${Jf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,ls._)`{comparison: ${Jf[t].okStr}, limit: ${e}}`};Ko.formatLimitDefinition={keyword:Object.keys(Jf),type:"string",schemaType:"string",$data:!0,error:sre,code(t){let{gen:e,data:r,schemaCode:n,keyword:s,it:i}=t,{opts:a,self:o}=i;if(!a.validateFormats)return;let c=new nre.KeywordCxt(i,o.RULES.all.format.definition,"format");c.$data?l():u();function l(){let d=e.scopeValue("formats",{ref:o.formats,code:a.code.formats}),m=e.const("fmt",(0,ls._)`${d}[${c.schemaCode}]`);t.fail$data((0,ls.or)((0,ls._)`typeof ${m} != "object"`,(0,ls._)`${m} instanceof RegExp`,(0,ls._)`typeof ${m}.compare != "function"`,p(m)))}function u(){let d=c.schema,m=o.formats[d];if(!m||m===!0)return;if(typeof m!="object"||m instanceof RegExp||typeof m.compare!="function")throw new Error(`"${s}": format "${d}" does not define "compare" function`);let f=e.scopeValue("formats",{key:d,ref:m,code:a.code.formats?(0,ls._)`${a.code.formats}${(0,ls.getProperty)(d)}`:void 0});t.fail$data(p(f))}function p(d){return(0,ls._)`${d}.compare(${r}, ${n}) ${Jf[s].fail} 0`}},dependencies:["format"]};var ire=t=>(t.addKeyword(Ko.formatLimitDefinition),t);Ko.default=ire});var YN=P((Fu,QN)=>{"use strict";Object.defineProperty(Fu,"__esModule",{value:!0});var Jo=GN(),are=VN(),fw=je(),KN=new fw.Name("fullFormats"),ore=new fw.Name("fastFormats"),hw=(t,e={keywords:!0})=>{if(Array.isArray(e))return JN(t,e,Jo.fullFormats,KN),t;let[r,n]=e.mode==="fast"?[Jo.fastFormats,ore]:[Jo.fullFormats,KN],s=e.formats||Jo.formatNames;return JN(t,s,r,n),e.keywords&&(0,are.default)(t),t};hw.get=(t,e="full")=>{let n=(e==="fast"?Jo.fastFormats:Jo.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function JN(t,e,r,n){var s,i;(s=(i=t.opts.code).formats)!==null&&s!==void 0||(i.formats=(0,fw._)`require("ajv-formats/dist/formats").${n}`);for(let a of e)t.addFormat(a,r[a])}QN.exports=Fu=hw;Object.defineProperty(Fu,"__esModule",{value:!0});Fu.default=hw});var oD=P((eje,aD)=>{aD.exports=iD;iD.sync=pre;var nD=require("fs");function ure(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n{pD.exports=lD;lD.sync=dre;var cD=require("fs");function lD(t,e,r){cD.stat(t,function(n,s){r(n,n?!1:uD(s,e))})}function dre(t,e){return uD(cD.statSync(t),e)}function uD(t,e){return t.isFile()&&mre(t,e)}function mre(t,e){var r=t.mode,n=t.uid,s=t.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),a=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),o=parseInt("100",8),c=parseInt("010",8),l=parseInt("001",8),u=o|c,p=r&l||r&c&&s===a||r&o&&n===i||r&u&&i===0;return p}});var fD=P((nje,mD)=>{var rje=require("fs"),eh;process.platform==="win32"||global.TESTING_WINDOWS?eh=oD():eh=dD();mD.exports=gw;gw.sync=fre;function gw(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,s){gw(t,e||{},function(i,a){i?s(i):n(a)})})}eh(t,e||{},function(n,s){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,s=!1),r(n,s)})}function fre(t,e){try{return eh.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var _D=P((sje,xD)=>{var Yo=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",hD=require("path"),hre=Yo?";":":",gD=fD(),vD=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),yD=(t,e)=>{let r=e.colon||hre,n=t.match(/\//)||Yo&&t.match(/\\/)?[""]:[...Yo?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],s=Yo?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Yo?s.split(r):[""];return Yo&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:s}},bD=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:s,pathExtExe:i}=yD(t,e),a=[],o=l=>new Promise((u,p)=>{if(l===n.length)return e.all&&a.length?u(a):p(vD(t));let d=n[l],m=/^".*"$/.test(d)?d.slice(1,-1):d,f=hD.join(m,t),g=!m&&/^\.[\\\/]/.test(t)?t.slice(0,2)+f:f;u(c(g,l,0))}),c=(l,u,p)=>new Promise((d,m)=>{if(p===s.length)return d(o(u+1));let f=s[p];gD(l+f,{pathExt:i},(g,v)=>{if(!g&&v)if(e.all)a.push(l+f);else return d(l+f);return d(c(l,u,p+1))})});return r?o(0).then(l=>r(null,l),r):o(0)},gre=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:s}=yD(t,e),i=[];for(let a=0;a{"use strict";var wD=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};vw.exports=wD;vw.exports.default=wD});var RD=P((aje,TD)=>{"use strict";var ED=require("path"),vre=_D(),yre=SD();function kD(t,e){let r=t.options.env||process.env,n=process.cwd(),s=t.options.cwd!=null,i=s&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(t.options.cwd)}catch{}let a;try{a=vre.sync(t.command,{path:r[yre({env:r})],pathExt:e?ED.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return a&&(a=ED.resolve(s?t.options.cwd:"",a)),a}function bre(t){return kD(t)||kD(t,!0)}TD.exports=bre});var PD=P((oje,bw)=>{"use strict";var yw=/([()\][%!^"`<>&|;, *?])/g;function xre(t){return t=t.replace(yw,"^$1"),t}function _re(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(yw,"^$1"),e&&(t=t.replace(yw,"^$1")),t}bw.exports.command=xre;bw.exports.argument=_re});var CD=P((cje,ID)=>{"use strict";ID.exports=/^#!(.*)/});var AD=P((lje,OD)=>{"use strict";var wre=CD();OD.exports=(t="")=>{let e=t.match(wre);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?n:n?`${s} ${n}`:s}});var ND=P((uje,jD)=>{"use strict";var xw=require("fs"),Sre=AD();function Ere(t){let r=Buffer.alloc(150),n;try{n=xw.openSync(t,"r"),xw.readSync(n,r,0,150,0),xw.closeSync(n)}catch{}return Sre(r.toString())}jD.exports=Ere});var $D=P((pje,zD)=>{"use strict";var kre=require("path"),DD=RD(),MD=PD(),Tre=ND(),Rre=process.platform==="win32",Pre=/\.(?:com|exe)$/i,Ire=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Cre(t){t.file=DD(t);let e=t.file&&Tre(t.file);return e?(t.args.unshift(t.file),t.command=e,DD(t)):t.file}function Ore(t){if(!Rre)return t;let e=Cre(t),r=!Pre.test(e);if(t.options.forceShell||r){let n=Ire.test(e);t.command=kre.normalize(t.command),t.command=MD.command(t.command),t.args=t.args.map(i=>MD.argument(i,n));let s=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${s}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function Are(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:Ore(n)}zD.exports=Are});var qD=P((dje,UD)=>{"use strict";var _w=process.platform==="win32";function ww(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function jre(t,e){if(!_w)return;let r=t.emit;t.emit=function(n,s){if(n==="exit"){let i=LD(s,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function LD(t,e){return _w&&t===1&&!e.file?ww(e.original,"spawn"):null}function Nre(t,e){return _w&&t===1&&!e.file?ww(e.original,"spawnSync"):null}UD.exports={hookChildProcess:jre,verifyENOENT:LD,verifyENOENTSync:Nre,notFoundError:ww}});var BD=P((mje,Xo)=>{"use strict";var FD=require("child_process"),Sw=$D(),Ew=qD();function HD(t,e,r){let n=Sw(t,e,r),s=FD.spawn(n.command,n.args,n.options);return Ew.hookChildProcess(s,n),s}function Dre(t,e,r){let n=Sw(t,e,r),s=FD.spawnSync(n.command,n.args,n.options);return s.error=s.error||Ew.verifyENOENTSync(s.status,n),s}Xo.exports=HD;Xo.exports.spawn=HD;Xo.exports.sync=Dre;Xo.exports._parse=Sw;Xo.exports._enoent=Ew});function Ta(){if(ka!==null)return ka;if(process.env.WSL_DISTRO_NAME)return ka=!0,!0;if(process.platform!=="linux")return ka=!1,!1;try{if((0,tc.existsSync)("/proc/version")){let t=(0,tc.readFileSync)("/proc/version","utf-8").toLowerCase();return ka=t.includes("microsoft")||t.includes("wsl"),ka}}catch{}return ka=!1,!1}function KD(){if(nh!==null)return nh;if(!Ta())return null;try{if((0,tc.existsSync)("/etc/resolv.conf")){let e=(0,tc.readFileSync)("/etc/resolv.conf","utf-8").match(/^nameserver\s+(\d+\.\d+\.\d+\.\d+)/m);if(e)return nh=e[1],nh}}catch{}return null}function JD(){return VD.default.randomBytes(24).toString("hex")}var tc,VD,ka,nh,sh=ye(()=>{"use strict";tc=require("fs"),VD=Q(require("crypto"),1),ka=null,nh=null});function un(){if(ih!==null)return ih;let t=oh.default.join(Ae.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=Ae.loadFromFile(t);return ih=parseInt(e.CLAUDE_PILOT_WORKER_PORT,10),ih}function us(){if(ah!==null)return ah;let t=oh.default.join(Ae.get("CLAUDE_PILOT_DATA_DIR"),"settings.json");return ah=Ae.loadFromFile(t).CLAUDE_PILOT_WORKER_HOST,ah}function lh(){if(rc!==null)return rc;let t=oh.default.join(Ae.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=Ae.loadFromFile(t);return rc=e.CLAUDE_PILOT_WORKER_BIND,rc==="127.0.0.1"&&Ta()&&(rc="0.0.0.0",Lre(t,e)),rc}function Lre(t,e){if(e.CLAUDE_PILOT_REMOTE_TOKEN)return;let r=JD();e.CLAUDE_PILOT_REMOTE_TOKEN=r;try{let n=(0,ch.readFileSync)(t,"utf-8"),s=JSON.parse(n);s.CLAUDE_PILOT_REMOTE_TOKEN=r,(0,ch.writeFileSync)(t,JSON.stringify(s,null,2),"utf-8")}catch{}}function Ure(t){return t.includes(":")&&!t.startsWith("[")?`[${t}]`:t}function uh(){let t=us(),e=un();return`http://${Ure(t)}:${e}`}var oh,ch,ih,ah,rc,Ln=ye(()=>{"use strict";oh=Q(require("path"),1),ch=require("fs");Or();sh();ih=null,ah=null,rc=null});var ei,Hu,YD,kw,QD,Tw,_,re=ye(()=>{"use strict";ei=require("fs"),Hu=require("path"),YD=require("os"),kw=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(kw||{}),QD=(0,Hu.join)((0,YD.homedir)(),".pilot/memory"),Tw=class{level=null;useColor;logFilePath=null;logFileInitialized=!1;constructor(){this.useColor=process.stdout.isTTY??!1}ensureLogFileInitialized(){if(!this.logFileInitialized){this.logFileInitialized=!0;try{let e=(0,Hu.join)(QD,"logs");(0,ei.existsSync)(e)||(0,ei.mkdirSync)(e,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=(0,Hu.join)(e,`pilot-memory-${r}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let e=(0,Hu.join)(QD,"settings.json");if((0,ei.existsSync)(e)){let r=(0,ei.readFileSync)(e,"utf-8"),s=(JSON.parse(r).CLAUDE_PILOT_LOG_LEVEL||"INFO").toUpperCase();this.level=kw[s]??1}else this.level=1}catch{this.level=1}return this.level}correlationId(e,r){return`obs-${e}-${r}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} +${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let r=Object.keys(e);return r.length===0?"{}":r.length<=3?JSON.stringify(e):`{${r.length} keys: ${r.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,r){if(!r)return e;let n=r;if(typeof r=="string")try{n=JSON.parse(r)}catch{n=r}if(e==="Bash"&&n.command)return`${e}(${n.command})`;if(n.file_path)return`${e}(${n.file_path})`;if(n.notebook_path)return`${e}(${n.notebook_path})`;if(e==="Glob"&&n.pattern)return`${e}(${n.pattern})`;if(e==="Grep"&&n.pattern)return`${e}(${n.pattern})`;if(n.url)return`${e}(${n.url})`;if(n.query)return`${e}(${n.query})`;if(e==="Task"){if(n.subagent_type)return`${e}(${n.subagent_type})`;if(n.description)return`${e}(${n.description})`}return e==="Skill"&&n.skill?`${e}(${n.skill})`:e==="LSP"&&n.operation?`${e}(${n.operation})`:e}formatTimestamp(e){let r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),a=String(e.getMinutes()).padStart(2,"0"),o=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${s} ${i}:${a}:${o}.${c}`}log(e,r,n,s,i){if(e0&&(p=` {${Object.entries(v).map(([y,b])=>`${y}=${b}`).join(", ")}}`)}let d=`[${a}] [${o}] [${c}] ${l}${n}${p}${u}`;if(this.logFilePath)try{(0,ei.appendFileSync)(this.logFilePath,d+` `,"utf8")}catch(m){process.stderr.write(`[LOGGER] Failed to write to log file: ${m} `),this.logFilePath=null}else process.stderr.write(d+` `)}debug(e,r,n,s){this.log(0,e,r,n,s)}info(e,r,n,s){this.log(1,e,r,n,s)}warn(e,r,n,s){this.log(2,e,r,n,s)}error(e,r,n,s){this.log(3,e,r,n,s)}dataIn(e,r,n,s){this.info(e,`\u2192 ${r}`,n,s)}dataOut(e,r,n,s){this.info(e,`\u2190 ${r}`,n,s)}success(e,r,n,s){this.info(e,`\u2713 ${r}`,n,s)}failure(e,r,n,s){this.error(e,`\u2717 ${r}`,n,s)}timing(e,r,n,s){this.info(e,`\u23F1 ${r}`,s,{duration:`${n}ms`})}happyPathError(e,r,n,s,i=""){let l=((new Error().stack||"").split(` -`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),u=l?`${l[1].split("/").pop()}:${l[2]}`:"unknown",p={...n,location:u};return this.warn(e,`[HAPPY-PATH] ${r}`,p,s),i}},_=new Iw});function nM(t){return process.platform==="win32"?Math.round(t*qt.WINDOWS_MULTIPLIER):t}var qt,Zu,As=ye(()=>{"use strict";qt={DEFAULT:3e5,HEALTH_CHECK:3e3,POST_SPAWN_WAIT:5e3,PORT_IN_USE_WAIT:3e3,WORKER_STARTUP_WAIT:1e3,PRE_RESTART_SETTLE_DELAY:2e3,POWERSHELL_COMMAND:1e4,WINDOWS_MULTIPLIER:1.5},Zu={SUCCESS:0,FAILURE:1,BLOCKING_ERROR:2}});function fh(t){if(!t||t.trim()==="")return-1;let e=t.trim(),r=0;if(e.includes("-")){let[n,s]=e.split("-");r+=parseInt(n,10)*24*60;let[i,a]=s.split(":").map(o=>parseInt(o,10));r+=i*60+a}else{let n=e.split(":").map(s=>parseInt(s,10));n.length===3?r=n[0]*60+n[1]:n.length===2&&(r=n[0])}return r}function Jre(t){let e=t.toLowerCase().trim();return Kre.some(r=>e.includes(r))}async function Oi(t){if(!Number.isInteger(t)||t<=0||t===process.pid||t===1)return!1;try{if(process.platform==="win32"){let e=`powershell -NoProfile -NonInteractive -Command "(Get-CimInstance Win32_Process -Filter 'ProcessId = ${t}').ParentProcessId"`,{stdout:r}=await mh(e,{timeout:qt.POWERSHELL_COMMAND}),n=parseInt(r.trim(),10);if(isNaN(n))return!1;if(n===0)return!0;try{let s=`powershell -NoProfile -NonInteractive -Command "Get-Process -Id ${n} -ErrorAction SilentlyContinue | Measure-Object | Select-Object -ExpandProperty Count"`,{stdout:i}=await mh(s,{timeout:qt.POWERSHELL_COMMAND});return parseInt(i.trim(),10)===0}catch{return!1}}else{let{stdout:e}=await mh(`ps -o ppid= -p ${t} 2>/dev/null`),r=parseInt(e.trim(),10);if(isNaN(r))return!1;if(r===1)return!0;try{let{stdout:n}=await mh(`ps -o comm= -p ${r} 2>/dev/null`);if(Jre(n.trim()))return!0}catch{}return!1}}catch(e){return _.debug("SYSTEM","Error checking if process is orphaned, assuming active",{pid:t},e),!1}}var sM,iM,mh,Kre,hh=ye(()=>{"use strict";sM=require("child_process"),iM=require("util");re();As();mh=(0,iM.promisify)(sM.exec),Kre=["init","systemd","tini","dumb-init","docker-init","s6-svscan","runsv"]});async function Gu(){let t=process.pid,e=[],r=[];try{if(process.platform==="win32"){let n=`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process | Where-Object { \\$_.CommandLine -match '${oM}' -and \\$_.ProcessId -ne ${t} } | Select-Object ProcessId | ConvertTo-Json"`,{stdout:s}=await gh(n,{timeout:qt.POWERSHELL_COMMAND});if(!s.trim()||s.trim()==="null")return;let i=JSON.parse(s),a=Array.isArray(i)?i:[i];for(let o of a){let c=o.ProcessId;Number.isInteger(c)&&c>0&&c!==t&&e.push(c)}}else{let{stdout:n}=await gh(`pgrep -f '${oM}' 2>/dev/null || true`);if(!n.trim())return;for(let s of n.trim().split(` -`)){let i=parseInt(s.trim(),10);Number.isInteger(i)&&i>0&&i!==t&&e.push(i)}}}catch(n){_.debug("SYSTEM","Error enumerating Claude processes",{},n);return}if(e.length!==0){for(let n of e)await Oi(n)&&r.push(n);if(r.length!==0){_.info("SYSTEM","Cleaning up orphaned Claude CLI processes",{count:r.length,pids:r});for(let n of r)try{if(process.platform==="win32")(0,jw.execSync)(`taskkill /PID ${n} /T /F`,{timeout:qt.POWERSHELL_COMMAND,stdio:"ignore"});else{process.kill(n,"SIGTERM"),await new Promise(s=>setTimeout(s,500));try{process.kill(n,0),process.kill(n,"SIGKILL")}catch{}}}catch(s){_.debug("SYSTEM","Claude process already exited",{pid:n},s)}_.info("SYSTEM","Orphaned Claude processes cleaned up",{count:r.length})}}}async function Vu(){let t=process.platform==="win32",e=process.pid,r=[],n=[];try{if(t){let i=`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process | Where-Object { (${aM.map(u=>`\\$_.CommandLine -like '*${u}*'`).join(" -or ")}) -and \\$_.ProcessId -ne ${e} } | Select-Object ProcessId, CreationDate | ConvertTo-Json"`,{stdout:a}=await gh(i,{timeout:qt.POWERSHELL_COMMAND});if(!a.trim()||a.trim()==="null")return;let o=JSON.parse(a),c=Array.isArray(o)?o:[o],l=Date.now();for(let u of c){let p=u.ProcessId;if(!Number.isInteger(p)||p<=0||p===e)continue;let d=new RegExp("\\/Date\\((\\d+)\\)\\/"),m=u.CreationDate?.match(d);if(m){let f=parseInt(m[1],10);(l-f)/(1e3*60)>=Aw&&r.push(p)}}}else{let s=aM.join("|"),{stdout:i}=await gh(`ps -eo pid,etime,command | grep -E "${s}" | grep -v grep || true`);if(!i.trim())return;for(let a of i.trim().split(` -`)){let o=a.trim().match(/^(\d+)\s+(\S+)\s+(.*)$/);if(!o)continue;let c=parseInt(o[1],10),l=o[2];!Number.isInteger(c)||c<=0||c===e||fh(l)>=Aw&&r.push(c)}}}catch(s){_.error("SYSTEM","Failed to enumerate processes",{},s);return}if(r.length!==0){for(let s of r)await Oi(s)&&n.push(s);if(n.length!==0){if(_.info("SYSTEM","Cleaning up orphaned pilot-memory processes",{platform:t?"Windows":"Unix",count:n.length,pids:n,maxAgeMinutes:Aw}),t){for(let s of n)if(!(!Number.isInteger(s)||s<=0))try{(0,jw.execSync)(`taskkill /PID ${s} /T /F`,{timeout:qt.POWERSHELL_COMMAND,stdio:"ignore"})}catch(i){_.debug("SYSTEM","Failed to kill process, may have already exited",{pid:s},i)}}else for(let s of n)try{process.kill(s,"SIGKILL")}catch(i){_.debug("SYSTEM","Process already exited",{pid:s},i)}_.info("SYSTEM","Orphaned processes cleaned up",{count:n.length})}}}var jw,cM,lM,gh,aM,Aw,oM,uM=ye(()=>{"use strict";jw=require("child_process"),cM=require("child_process"),lM=require("util");re();As();hh();gh=(0,lM.promisify)(cM.exec),aM=["mcp-server","worker-service","pilot-memory","chroma-mcp"],Aw=60,oM="claude.*--output-format.*stream-json"});async function yh(){let t=process.pid;try{if(process.platform==="win32"){let e=`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process | Where-Object { \\$_.CommandLine -like '*chroma-mcp*' -and \\$_.ProcessId -ne ${t} } | Select-Object ProcessId | ConvertTo-Json"`,{stdout:r}=await pM(e,{timeout:qt.POWERSHELL_COMMAND});if(!r.trim()||r.trim()==="null")return;let n=JSON.parse(r),s=Array.isArray(n)?n:[n];for(let i of s){let a=i.ProcessId;if(Number.isInteger(a)&&a>0&&a!==t&&await Oi(a))try{(0,vh.execSync)(`taskkill /PID ${a} /T /F`,{timeout:qt.POWERSHELL_COMMAND,stdio:"ignore"})}catch{}}}else{let{stdout:e}=await pM("pgrep -f 'chroma-mcp' 2>/dev/null || true");if(!e.trim())return;let r=e.trim().split(` -`).map(s=>parseInt(s.trim(),10)).filter(s=>Number.isInteger(s)&&s>0&&s!==t);if(r.length===0)return;let n=[];for(let s of r)await Oi(s)&&n.push(s);if(n.length===0)return;_.info("SYSTEM","Killing orphaned chroma-mcp from previous worker",{count:n.length,pids:n});for(let s of n)try{process.kill(s,"SIGKILL")}catch{}}}catch(e){_.debug("SYSTEM","Chroma orphan cleanup skipped",{},e)}}var vh,dM,pM,mM=ye(()=>{"use strict";vh=require("child_process"),dM=require("util");re();As();hh();pM=(0,dM.promisify)(vh.exec)});async function vM(){let t=process.pid,e=0,r=0,n=0;try{if(process.platform==="win32"){let s=`powershell -NoProfile -NonInteractive -Command " +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),u=l?`${l[1].split("/").pop()}:${l[2]}`:"unknown",p={...n,location:u};return this.warn(e,`[HAPPY-PATH] ${r}`,p,s),i}},_=new Tw});function XD(t){return process.platform==="win32"?Math.round(t*qt.WINDOWS_MULTIPLIER):t}var qt,Wu,As=ye(()=>{"use strict";qt={DEFAULT:3e5,HEALTH_CHECK:3e3,POST_SPAWN_WAIT:5e3,PORT_IN_USE_WAIT:3e3,WORKER_STARTUP_WAIT:1e3,PRE_RESTART_SETTLE_DELAY:2e3,POWERSHELL_COMMAND:1e4,WINDOWS_MULTIPLIER:1.5},Wu={SUCCESS:0,FAILURE:1,BLOCKING_ERROR:2}});function dh(t){if(!t||t.trim()==="")return-1;let e=t.trim(),r=0;if(e.includes("-")){let[n,s]=e.split("-");r+=parseInt(n,10)*24*60;let[i,a]=s.split(":").map(o=>parseInt(o,10));r+=i*60+a}else{let n=e.split(":").map(s=>parseInt(s,10));n.length===3?r=n[0]*60+n[1]:n.length===2&&(r=n[0])}return r}function Bre(t){let e=t.toLowerCase().trim();return Hre.some(r=>e.includes(r))}async function Oi(t){if(!Number.isInteger(t)||t<=0||t===process.pid||t===1)return!1;try{if(process.platform==="win32"){let e=`powershell -NoProfile -NonInteractive -Command "(Get-CimInstance Win32_Process -Filter 'ProcessId = ${t}').ParentProcessId"`,{stdout:r}=await ph(e,{timeout:qt.POWERSHELL_COMMAND}),n=parseInt(r.trim(),10);if(isNaN(n))return!1;if(n===0)return!0;try{let s=`powershell -NoProfile -NonInteractive -Command "Get-Process -Id ${n} -ErrorAction SilentlyContinue | Measure-Object | Select-Object -ExpandProperty Count"`,{stdout:i}=await ph(s,{timeout:qt.POWERSHELL_COMMAND});return parseInt(i.trim(),10)===0}catch{return!1}}else{let{stdout:e}=await ph(`ps -o ppid= -p ${t} 2>/dev/null`),r=parseInt(e.trim(),10);if(isNaN(r))return!1;if(r===1)return!0;try{let{stdout:n}=await ph(`ps -o comm= -p ${r} 2>/dev/null`);if(Bre(n.trim()))return!0}catch{}return!1}}catch(e){return _.debug("SYSTEM","Error checking if process is orphaned, assuming active",{pid:t},e),!1}}var eM,tM,ph,Hre,mh=ye(()=>{"use strict";eM=require("child_process"),tM=require("util");re();As();ph=(0,tM.promisify)(eM.exec),Hre=["init","systemd","tini","dumb-init","docker-init","s6-svscan","runsv"]});async function Zu(){let t=process.pid,e=[],r=[];try{if(process.platform==="win32"){let n=`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process | Where-Object { \\$_.CommandLine -match '${nM}' -and \\$_.ProcessId -ne ${t} } | Select-Object ProcessId | ConvertTo-Json"`,{stdout:s}=await fh(n,{timeout:qt.POWERSHELL_COMMAND});if(!s.trim()||s.trim()==="null")return;let i=JSON.parse(s),a=Array.isArray(i)?i:[i];for(let o of a){let c=o.ProcessId;Number.isInteger(c)&&c>0&&c!==t&&e.push(c)}}else{let{stdout:n}=await fh(`pgrep -f '${nM}' 2>/dev/null || true`);if(!n.trim())return;for(let s of n.trim().split(` +`)){let i=parseInt(s.trim(),10);Number.isInteger(i)&&i>0&&i!==t&&e.push(i)}}}catch(n){_.debug("SYSTEM","Error enumerating Claude processes",{},n);return}if(e.length!==0){for(let n of e)await Oi(n)&&r.push(n);if(r.length!==0){_.info("SYSTEM","Cleaning up orphaned Claude CLI processes",{count:r.length,pids:r});for(let n of r)try{if(process.platform==="win32")(0,Cw.execSync)(`taskkill /PID ${n} /T /F`,{timeout:qt.POWERSHELL_COMMAND,stdio:"ignore"});else{process.kill(n,"SIGTERM"),await new Promise(s=>setTimeout(s,500));try{process.kill(n,0),process.kill(n,"SIGKILL")}catch{}}}catch(s){_.debug("SYSTEM","Claude process already exited",{pid:n},s)}_.info("SYSTEM","Orphaned Claude processes cleaned up",{count:r.length})}}}async function Gu(){let t=process.platform==="win32",e=process.pid,r=[],n=[];try{if(t){let i=`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process | Where-Object { (${rM.map(u=>`\\$_.CommandLine -like '*${u}*'`).join(" -or ")}) -and \\$_.ProcessId -ne ${e} } | Select-Object ProcessId, CreationDate | ConvertTo-Json"`,{stdout:a}=await fh(i,{timeout:qt.POWERSHELL_COMMAND});if(!a.trim()||a.trim()==="null")return;let o=JSON.parse(a),c=Array.isArray(o)?o:[o],l=Date.now();for(let u of c){let p=u.ProcessId;if(!Number.isInteger(p)||p<=0||p===e)continue;let d=new RegExp("\\/Date\\((\\d+)\\)\\/"),m=u.CreationDate?.match(d);if(m){let f=parseInt(m[1],10);(l-f)/(1e3*60)>=Iw&&r.push(p)}}}else{let s=rM.join("|"),{stdout:i}=await fh(`ps -eo pid,etime,command | grep -E "${s}" | grep -v grep || true`);if(!i.trim())return;for(let a of i.trim().split(` +`)){let o=a.trim().match(/^(\d+)\s+(\S+)\s+(.*)$/);if(!o)continue;let c=parseInt(o[1],10),l=o[2];!Number.isInteger(c)||c<=0||c===e||dh(l)>=Iw&&r.push(c)}}}catch(s){_.error("SYSTEM","Failed to enumerate processes",{},s);return}if(r.length!==0){for(let s of r)await Oi(s)&&n.push(s);if(n.length!==0){if(_.info("SYSTEM","Cleaning up orphaned pilot-memory processes",{platform:t?"Windows":"Unix",count:n.length,pids:n,maxAgeMinutes:Iw}),t){for(let s of n)if(!(!Number.isInteger(s)||s<=0))try{(0,Cw.execSync)(`taskkill /PID ${s} /T /F`,{timeout:qt.POWERSHELL_COMMAND,stdio:"ignore"})}catch(i){_.debug("SYSTEM","Failed to kill process, may have already exited",{pid:s},i)}}else for(let s of n)try{process.kill(s,"SIGKILL")}catch(i){_.debug("SYSTEM","Process already exited",{pid:s},i)}_.info("SYSTEM","Orphaned processes cleaned up",{count:n.length})}}}var Cw,sM,iM,fh,rM,Iw,nM,aM=ye(()=>{"use strict";Cw=require("child_process"),sM=require("child_process"),iM=require("util");re();As();mh();fh=(0,iM.promisify)(sM.exec),rM=["mcp-server","worker-service","pilot-memory","chroma-mcp"],Iw=60,nM="claude.*--output-format.*stream-json"});async function gh(){let t=process.pid;try{if(process.platform==="win32"){let e=`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process | Where-Object { \\$_.CommandLine -like '*chroma-mcp*' -and \\$_.ProcessId -ne ${t} } | Select-Object ProcessId | ConvertTo-Json"`,{stdout:r}=await oM(e,{timeout:qt.POWERSHELL_COMMAND});if(!r.trim()||r.trim()==="null")return;let n=JSON.parse(r),s=Array.isArray(n)?n:[n];for(let i of s){let a=i.ProcessId;if(Number.isInteger(a)&&a>0&&a!==t&&await Oi(a))try{(0,hh.execSync)(`taskkill /PID ${a} /T /F`,{timeout:qt.POWERSHELL_COMMAND,stdio:"ignore"})}catch{}}}else{let{stdout:e}=await oM("pgrep -f 'chroma-mcp' 2>/dev/null || true");if(!e.trim())return;let r=e.trim().split(` +`).map(s=>parseInt(s.trim(),10)).filter(s=>Number.isInteger(s)&&s>0&&s!==t);if(r.length===0)return;let n=[];for(let s of r)await Oi(s)&&n.push(s);if(n.length===0)return;_.info("SYSTEM","Killing orphaned chroma-mcp from previous worker",{count:n.length,pids:n});for(let s of n)try{process.kill(s,"SIGKILL")}catch{}}}catch(e){_.debug("SYSTEM","Chroma orphan cleanup skipped",{},e)}}var hh,cM,oM,lM=ye(()=>{"use strict";hh=require("child_process"),cM=require("util");re();As();mh();oM=(0,cM.promisify)(hh.exec)});async function mM(){let t=process.pid,e=0,r=0,n=0;try{if(process.platform==="win32"){let s=`powershell -NoProfile -NonInteractive -Command " $claudeMem = (Get-CimInstance Win32_Process | Where-Object { $_.CommandLine -match 'pilot-memory|worker-service|mcp-server' -and $_.ProcessId -ne ${t} }).Count - $claudeCli = (Get-CimInstance Win32_Process | Where-Object { $_.CommandLine -match '${fM}' }).Count + $claudeCli = (Get-CimInstance Win32_Process | Where-Object { $_.CommandLine -match '${uM}' }).Count $chroma = (Get-CimInstance Win32_Process | Where-Object { $_.CommandLine -match 'chroma' }).Count Write-Output \\"$claudeMem,$claudeCli,$chroma\\" - "`,{stdout:i}=await bh(s,{timeout:qt.POWERSHELL_COMMAND}),[a,o,c]=i.trim().split(",").map(l=>parseInt(l,10)||0);e=a,r=o,n=c}else{try{let{stdout:s}=await bh(`pgrep -f 'pilot-memory|worker-service|mcp-server' 2>/dev/null | grep -v "^${t}$" | wc -l`);e=parseInt(s.trim(),10)||0}catch{}try{let{stdout:s}=await bh(`pgrep -f '${fM}' 2>/dev/null | wc -l`);r=parseInt(s.trim(),10)||0}catch{}try{let{stdout:s}=await bh("pgrep -f 'chroma' 2>/dev/null | wc -l");n=parseInt(s.trim(),10)||0}catch{}}}catch(s){_.debug("SYSTEM","Error counting processes",{},s)}return{claudeMemProcesses:e,claudeCliProcesses:r,chromaProcesses:n,total:e+r+n}}var hM,gM,bh,fM,yM=ye(()=>{"use strict";hM=require("child_process"),gM=require("util");re();As();bh=(0,gM.promisify)(hM.exec),fM="claude.*--output-format.*stream-json"});var kM={};es(kM,{cleanStalePidFile:()=>Mw,cleanupOrphanedChromaProcesses:()=>yh,cleanupOrphanedClaudeProcesses:()=>Gu,cleanupOrphanedProcesses:()=>Vu,createSignalHandler:()=>Uw,forceKillProcess:()=>$w,getChildProcesses:()=>zw,getPlatformTimeout:()=>Ia,getProcessStats:()=>vM,isOrphanedProcess:()=>Oi,isProcessAlive:()=>SM,parseElapsedTime:()=>fh,readPidFile:()=>wM,removePidFile:()=>ds,spawnDaemon:()=>Ju,waitForProcessesExit:()=>Lw,writePidFile:()=>Ku});function Ku(t){(0,ps.mkdirSync)(_M,{recursive:!0}),(0,ps.writeFileSync)(Pa,JSON.stringify(t,null,2))}function wM(){if(!(0,ps.existsSync)(Pa))return null;try{return JSON.parse((0,ps.readFileSync)(Pa,"utf-8"))}catch(t){return _.warn("SYSTEM","Failed to parse PID file",{path:Pa},t),null}}function ds(){if((0,ps.existsSync)(Pa))try{(0,ps.unlinkSync)(Pa)}catch(t){_.warn("SYSTEM","Failed to remove PID file",{path:Pa},t)}}function SM(t){if(!Number.isInteger(t)||t<0)return!1;if(t===0)return!0;try{return process.kill(t,0),!0}catch(e){return(e instanceof Error?e.code:void 0)==="EPERM"}}function Mw(){let t=wM();t&&(SM(t.pid)||(_.info("SYSTEM","Removing stale PID file",{pid:t.pid}),ds()))}function Ia(t){return process.platform==="win32"?Math.round(t*2):t}async function zw(t){if(!Number.isInteger(t)||t<=0)return _.warn("SYSTEM","Invalid parent PID for child process enumeration",{parentPid:t}),[];try{let e=String(Math.floor(t));if(process.platform==="win32"){let r=`powershell -NoProfile -NonInteractive -Command "Get-Process | Where-Object { \\$_.ParentProcessId -eq ${e} } | Select-Object -ExpandProperty Id"`,{stdout:n}=await Nw(r,{timeout:qt.POWERSHELL_COMMAND});return n.split(` -`).map(s=>s.trim()).filter(s=>s.length>0&&/^\d+$/.test(s)).map(s=>parseInt(s,10)).filter(s=>s>0)}else{let{stdout:r}=await Nw(`pgrep -P ${e} 2>/dev/null || true`);return r.split(` -`).map(n=>n.trim()).filter(n=>n.length>0&&/^\d+$/.test(n)).map(n=>parseInt(n,10)).filter(n=>n>0)}}catch(e){return _.error("SYSTEM","Failed to enumerate child processes",{parentPid:t},e),[]}}async function $w(t){if(!Number.isInteger(t)||t<=0){_.warn("SYSTEM","Invalid PID for force kill",{pid:t});return}try{let e=String(Math.floor(t));process.platform==="win32"?await Nw(`taskkill /PID ${e} /T /F`,{timeout:qt.POWERSHELL_COMMAND}):process.kill(t,"SIGKILL"),_.info("SYSTEM","Killed process",{pid:t})}catch(e){_.debug("SYSTEM","Process already exited during force kill",{pid:t},e)}}async function Lw(t,e){let r=Date.now();for(;Date.now()-r{try{return process.kill(s,0),!0}catch{return!1}});if(n.length===0){_.info("SYSTEM","All child processes exited");return}_.debug("SYSTEM","Waiting for processes to exit",{stillAlive:n}),await new Promise(s=>setTimeout(s,100))}_.warn("SYSTEM","Timeout waiting for child processes to exit")}function Ju(t,e,r={}){let n=(0,xh.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,CLAUDE_PILOT_WORKER_PORT:String(e),...r}});if(n.pid!==void 0)return n.unref(),n.pid}function Uw(t,e){return async r=>{if(e.value){_.warn("SYSTEM",`Received ${r} but shutdown already in progress`);return}e.value=!0,_.info("SYSTEM",`Received ${r}, shutting down...`);try{await t(),process.exit(0)}catch(n){_.error("SYSTEM","Error during shutdown",{},n),process.exit(0)}}}var Dw,bM,ps,xh,xM,Nw,_M,Pa,Qu=ye(()=>{"use strict";Dw=Q(require("path"),1),bM=require("os"),ps=require("fs"),xh=require("child_process"),xM=require("util");re();As();uM();mM();hh();yM();Nw=(0,xM.promisify)(xh.exec),_M=Dw.default.join((0,bM.homedir)(),".pilot/memory"),Pa=Dw.default.join(_M,"worker.pid")});var js=P((lNe,CM)=>{var nne=require("path").relative;CM.exports=cne;var sne=process.cwd();function PM(t,e){for(var r=t.split(/[ ,]+/),n=String(e).toLowerCase(),s=0;s0}function une(t){if(process.noDeprecation)return!0;var e=process.env.NO_DEPRECATION||"";return PM(e,t)}function pne(t){if(process.traceDeprecation)return!0;var e=process.env.TRACE_DEPRECATION||"";return PM(e,t)}function Sh(t,e){var r=lne(process,"deprecation");if(!(!r&&this._ignored)){var n,s,i,a,o=0,c=!1,l=kh(),u=this._file;for(e?(a=e,i=sc(l[1]),i.name=a.name,u=i[0]):(o=2,a=sc(l[o]),i=a);o",r=t.getLineNumber(),n=t.getColumnNumber();t.isEval()&&(e=t.getEvalOrigin()+", "+e);var s=[e,r,n];return s.callSite=t,s.name=t.getFunctionName(),s}function RM(t){var e=t.callSite,r=t.name;r||(r="");var n=e.getThis(),s=n&&e.getTypeName();return s==="Object"&&(s=void 0),s==="Function"&&(s=n.name||s),s&&e.getMethodName()?s+"."+r:r}function dne(t,e,r){var n=new Date().toUTCString(),s=n+" "+this._namespace+" deprecated "+t;if(this._traced){for(var i=0;iparseInt(l,10)||0);e=a,r=o,n=c}else{try{let{stdout:s}=await vh(`pgrep -f 'pilot-memory|worker-service|mcp-server' 2>/dev/null | grep -v "^${t}$" | wc -l`);e=parseInt(s.trim(),10)||0}catch{}try{let{stdout:s}=await vh(`pgrep -f '${uM}' 2>/dev/null | wc -l`);r=parseInt(s.trim(),10)||0}catch{}try{let{stdout:s}=await vh("pgrep -f 'chroma' 2>/dev/null | wc -l");n=parseInt(s.trim(),10)||0}catch{}}}catch(s){_.debug("SYSTEM","Error counting processes",{},s)}return{claudeMemProcesses:e,claudeCliProcesses:r,chromaProcesses:n,total:e+r+n}}var pM,dM,vh,uM,fM=ye(()=>{"use strict";pM=require("child_process"),dM=require("util");re();As();vh=(0,dM.promisify)(pM.exec),uM="claude.*--output-format.*stream-json"});var xM={};es(xM,{cleanStalePidFile:()=>jw,cleanupOrphanedChromaProcesses:()=>gh,cleanupOrphanedClaudeProcesses:()=>Zu,cleanupOrphanedProcesses:()=>Gu,createSignalHandler:()=>zw,forceKillProcess:()=>Dw,getChildProcesses:()=>Nw,getPlatformTimeout:()=>Pa,getProcessStats:()=>mM,isOrphanedProcess:()=>Oi,isProcessAlive:()=>bM,parseElapsedTime:()=>dh,readPidFile:()=>yM,removePidFile:()=>ds,spawnDaemon:()=>Ku,waitForProcessesExit:()=>Mw,writePidFile:()=>Vu});function Vu(t){(0,ps.mkdirSync)(vM,{recursive:!0}),(0,ps.writeFileSync)(Ra,JSON.stringify(t,null,2))}function yM(){if(!(0,ps.existsSync)(Ra))return null;try{return JSON.parse((0,ps.readFileSync)(Ra,"utf-8"))}catch(t){return _.warn("SYSTEM","Failed to parse PID file",{path:Ra},t),null}}function ds(){if((0,ps.existsSync)(Ra))try{(0,ps.unlinkSync)(Ra)}catch(t){_.warn("SYSTEM","Failed to remove PID file",{path:Ra},t)}}function bM(t){if(!Number.isInteger(t)||t<0)return!1;if(t===0)return!0;try{return process.kill(t,0),!0}catch(e){return(e instanceof Error?e.code:void 0)==="EPERM"}}function jw(){let t=yM();t&&(bM(t.pid)||(_.info("SYSTEM","Removing stale PID file",{pid:t.pid}),ds()))}function Pa(t){return process.platform==="win32"?Math.round(t*2):t}async function Nw(t){if(!Number.isInteger(t)||t<=0)return _.warn("SYSTEM","Invalid parent PID for child process enumeration",{parentPid:t}),[];try{let e=String(Math.floor(t));if(process.platform==="win32"){let r=`powershell -NoProfile -NonInteractive -Command "Get-Process | Where-Object { \\$_.ParentProcessId -eq ${e} } | Select-Object -ExpandProperty Id"`,{stdout:n}=await Ow(r,{timeout:qt.POWERSHELL_COMMAND});return n.split(` +`).map(s=>s.trim()).filter(s=>s.length>0&&/^\d+$/.test(s)).map(s=>parseInt(s,10)).filter(s=>s>0)}else{let{stdout:r}=await Ow(`pgrep -P ${e} 2>/dev/null || true`);return r.split(` +`).map(n=>n.trim()).filter(n=>n.length>0&&/^\d+$/.test(n)).map(n=>parseInt(n,10)).filter(n=>n>0)}}catch(e){return _.error("SYSTEM","Failed to enumerate child processes",{parentPid:t},e),[]}}async function Dw(t){if(!Number.isInteger(t)||t<=0){_.warn("SYSTEM","Invalid PID for force kill",{pid:t});return}try{let e=String(Math.floor(t));process.platform==="win32"?await Ow(`taskkill /PID ${e} /T /F`,{timeout:qt.POWERSHELL_COMMAND}):process.kill(t,"SIGKILL"),_.info("SYSTEM","Killed process",{pid:t})}catch(e){_.debug("SYSTEM","Process already exited during force kill",{pid:t},e)}}async function Mw(t,e){let r=Date.now();for(;Date.now()-r{try{return process.kill(s,0),!0}catch{return!1}});if(n.length===0){_.info("SYSTEM","All child processes exited");return}_.debug("SYSTEM","Waiting for processes to exit",{stillAlive:n}),await new Promise(s=>setTimeout(s,100))}_.warn("SYSTEM","Timeout waiting for child processes to exit")}function Ku(t,e,r={}){let n=(0,yh.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,CLAUDE_PILOT_WORKER_PORT:String(e),...r}});if(n.pid!==void 0)return n.unref(),n.pid}function zw(t,e){return async r=>{if(e.value){_.warn("SYSTEM",`Received ${r} but shutdown already in progress`);return}e.value=!0,_.info("SYSTEM",`Received ${r}, shutting down...`);try{await t(),process.exit(0)}catch(n){_.error("SYSTEM","Error during shutdown",{},n),process.exit(0)}}}var Aw,hM,ps,yh,gM,Ow,vM,Ra,Ju=ye(()=>{"use strict";Aw=Q(require("path"),1),hM=require("os"),ps=require("fs"),yh=require("child_process"),gM=require("util");re();As();aM();lM();mh();fM();Ow=(0,gM.promisify)(yh.exec),vM=Aw.default.join((0,hM.homedir)(),".pilot/memory"),Ra=Aw.default.join(vM,"worker.pid")});var js=P((rNe,TM)=>{var Qre=require("path").relative;TM.exports=rne;var Yre=process.cwd();function EM(t,e){for(var r=t.split(/[ ,]+/),n=String(e).toLowerCase(),s=0;s0}function sne(t){if(process.noDeprecation)return!0;var e=process.env.NO_DEPRECATION||"";return EM(e,t)}function ine(t){if(process.traceDeprecation)return!0;var e=process.env.TRACE_DEPRECATION||"";return EM(e,t)}function _h(t,e){var r=nne(process,"deprecation");if(!(!r&&this._ignored)){var n,s,i,a,o=0,c=!1,l=wh(),u=this._file;for(e?(a=e,i=nc(l[1]),i.name=a.name,u=i[0]):(o=2,a=nc(l[o]),i=a);o",r=t.getLineNumber(),n=t.getColumnNumber();t.isEval()&&(e=t.getEvalOrigin()+", "+e);var s=[e,r,n];return s.callSite=t,s.name=t.getFunctionName(),s}function SM(t){var e=t.callSite,r=t.name;r||(r="");var n=e.getThis(),s=n&&e.getTypeName();return s==="Object"&&(s=void 0),s==="Function"&&(s=n.name||s),s&&e.getMethodName()?s+"."+r:r}function ane(t,e,r){var n=new Date().toUTCString(),s=n+" "+this._namespace+" deprecated "+t;if(this._traced){for(var i=0;i{"use strict";Eh.exports=xne;Eh.exports.format=OM;Eh.exports.parse=AM;var vne=/\B(?=(\d{3})+(?!\d))/g,yne=/(?:\.0*|(\.[^0]+)0+)$/,Ai={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},bne=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function xne(t,e){return typeof t=="string"?AM(t):typeof t=="number"?OM(t,e):null}function OM(t,e){if(!Number.isFinite(t))return null;var r=Math.abs(t),n=e&&e.thousandsSeparator||"",s=e&&e.unitSeparator||"",i=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,a=!!(e&&e.fixedDecimals),o=e&&e.unit||"";(!o||!Ai[o.toLowerCase()])&&(r>=Ai.pb?o="PB":r>=Ai.tb?o="TB":r>=Ai.gb?o="GB":r>=Ai.mb?o="MB":r>=Ai.kb?o="KB":o="B");var c=t/Ai[o.toLowerCase()],l=c.toFixed(i);return a||(l=l.replace(yne,"$1")),n&&(l=l.split(".").map(function(u,p){return p===0?u.replace(vne,n):u}).join(".")),l+s+o}function AM(t){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t!="string")return null;var e=bne.exec(t),r,n="b";return e?(r=parseFloat(e[1]),n=e[4].toLowerCase()):(r=parseInt(t,10),n="b"),isNaN(r)?null:Math.floor(Ai[n]*r)}});var np=P(Bw=>{"use strict";var jM=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,_ne=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,NM=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,wne=/\\([\u000b\u0020-\u00ff])/g,Sne=/([\\"])/g,DM=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Bw.format=kne;Bw.parse=Ene;function kne(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!DM.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var s,i=Object.keys(e).sort(),a=0;a0&&!_ne.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(Sne,"\\$1")+'"'}function Pne(t){this.parameters=Object.create(null),this.type=t}});var sp=P((dNe,MM)=>{"use strict";MM.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?Ine:Cne);function Ine(t,e){return t.__proto__=e,t}function Cne(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(t,r)||(t[r]=e[r]);return t}});var zM=P((mNe,One)=>{One.exports={"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}});var ip=P((fNe,LM)=>{"use strict";var Ww=zM();LM.exports=ms;ms.message=Ww;ms.code=Ane(Ww);ms.codes=jne(Ww);ms.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};ms.empty={204:!0,205:!0,304:!0};ms.retry={502:!0,503:!0,504:!0};function Ane(t){var e={};return Object.keys(t).forEach(function(n){var s=t[n],i=Number(n);e[s.toLowerCase()]=i}),e}function jne(t){return Object.keys(t).map(function(r){return Number(r)})}function Nne(t){var e=t.toLowerCase();if(!Object.prototype.hasOwnProperty.call(ms.code,e))throw new Error('invalid status message: "'+t+'"');return ms.code[e]}function $M(t){if(!Object.prototype.hasOwnProperty.call(ms.message,t))throw new Error("invalid status code: "+t);return ms.message[t]}function ms(t){if(typeof t=="number")return $M(t);if(typeof t!="string")throw new TypeError("code must be a number or string");var e=parseInt(t,10);return isNaN(e)?Nne(t):$M(e)}});var UM=P((hNe,Zw)=>{typeof Object.create=="function"?Zw.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Zw.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}}});var qM=P((gNe,Vw)=>{try{if(Gw=require("util"),typeof Gw.inherits!="function")throw"";Vw.exports=Gw.inherits}catch{Vw.exports=UM()}var Gw});var HM=P((vNe,FM)=>{"use strict";FM.exports=Dne;function Dne(t){return t.split(" ").map(function(e){return e.slice(0,1).toUpperCase()+e.slice(1)}).join("").replace(/[^ _0-9a-z]/gi,"")}});var Oa=P((yNe,Ca)=>{"use strict";var Mne=js()("http-errors"),BM=sp(),ac=ip(),Kw=qM(),zne=HM();Ca.exports=Th;Ca.exports.HttpError=$ne();Ca.exports.isHttpError=Une(Ca.exports.HttpError);Fne(Ca.exports,ac.codes,Ca.exports.HttpError);function WM(t){return+(String(t).charAt(0)+"00")}function Th(){for(var t,e,r=500,n={},s=0;s=600)&&Mne("non-error status code; use only 4xx or 5xx status codes"),(typeof r!="number"||!ac.message[r]&&(r<400||r>=600))&&(r=500);var o=Th[r]||Th[WM(r)];t||(t=o?new o(e):new Error(e||ac.message[r]),Error.captureStackTrace(t,Th)),(!o||!(t instanceof o)||t.status!==r)&&(t.expose=r<500,t.status=t.statusCode=r);for(var c in n)c!=="status"&&c!=="statusCode"&&(t[c]=n[c]);return t}function $ne(){function t(){throw new TypeError("cannot construct abstract class")}return Kw(t,Error),t}function Lne(t,e,r){var n=GM(e);function s(i){var a=i??ac.message[r],o=new Error(a);return Error.captureStackTrace(o,s),BM(o,s.prototype),Object.defineProperty(o,"message",{enumerable:!0,configurable:!0,value:a,writable:!0}),Object.defineProperty(o,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),o}return Kw(s,t),ZM(s,n),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!0,s}function Une(t){return function(r){return!r||typeof r!="object"?!1:r instanceof t?!0:r instanceof Error&&typeof r.expose=="boolean"&&typeof r.statusCode=="number"&&r.status===r.statusCode}}function qne(t,e,r){var n=GM(e);function s(i){var a=i??ac.message[r],o=new Error(a);return Error.captureStackTrace(o,s),BM(o,s.prototype),Object.defineProperty(o,"message",{enumerable:!0,configurable:!0,value:a,writable:!0}),Object.defineProperty(o,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),o}return Kw(s,t),ZM(s,n),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!1,s}function ZM(t,e){var r=Object.getOwnPropertyDescriptor(t,"name");r&&r.configurable&&(r.value=e,Object.defineProperty(t,"name",r))}function Fne(t,e,r){e.forEach(function(s){var i,a=zne(ac.message[s]);switch(WM(s)){case 400:i=Lne(r,a,s);break;case 500:i=qne(r,a,s);break}i&&(t[s]=i,t[a]=i)})}function GM(t){return t.slice(-5)==="Error"?t:t+"Error"}});var KM=P((bNe,VM)=>{var ap=1e3,op=ap*60,cp=op*60,lp=cp*24,Hne=lp*365.25;VM.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Bne(t);if(r==="number"&&isNaN(t)===!1)return e.long?Zne(t):Wne(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Bne(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Hne;case"days":case"day":case"d":return r*lp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*cp;case"minutes":case"minute":case"mins":case"min":case"m":return r*op;case"seconds":case"second":case"secs":case"sec":case"s":return r*ap;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Wne(t){return t>=lp?Math.round(t/lp)+"d":t>=cp?Math.round(t/cp)+"h":t>=op?Math.round(t/op)+"m":t>=ap?Math.round(t/ap)+"s":t+"ms"}function Zne(t){return Rh(t,lp,"day")||Rh(t,cp,"hour")||Rh(t,op,"minute")||Rh(t,ap,"second")||t+" ms"}function Rh(t,e,r){if(!(t{ot=JM.exports=Qw.debug=Qw.default=Qw;ot.coerce=Qne;ot.disable=Kne;ot.enable=Vne;ot.enabled=Jne;ot.humanize=KM();ot.names=[];ot.skips=[];ot.formatters={};var Jw;function Gne(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ot.colors[Math.abs(e)%ot.colors.length]}function Qw(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(Jw||n);r.diff=s,r.prev=Jw,r.curr=n,Jw=n;for(var i=new Array(arguments.length),a=0;a{qr=YM.exports=Yw();qr.log=ese;qr.formatArgs=Xne;qr.save=tse;qr.load=QM;qr.useColors=Yne;qr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:rse();qr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function Yne(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}qr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function Xne(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+qr.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function ese(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function tse(t){try{t==null?qr.storage.removeItem("debug"):qr.storage.debug=t}catch{}}function QM(){var t;try{t=qr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}qr.enable(QM());function rse(){try{return window.localStorage}catch{}}});var nz=P((lr,rz)=>{var ez=require("tty"),up=require("util");lr=rz.exports=Yw();lr.init=lse;lr.log=ase;lr.formatArgs=ise;lr.save=ose;lr.load=tz;lr.useColors=sse;lr.colors=[6,2,3,4,5,1];lr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var oc=parseInt(process.env.DEBUG_FD,10)||2;oc!==1&&oc!==2&&up.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var nse=oc===1?process.stdout:oc===2?process.stderr:cse(oc);function sse(){return"colors"in lr.inspectOpts?!!lr.inspectOpts.colors:ez.isatty(oc)}lr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,up.inspect(t,this.inspectOpts).split(` -`).map(function(e){return e.trim()}).join(" ")};lr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,up.inspect(t,this.inspectOpts)};function ise(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` +}`)(t,_h,this,e,s);return i}function une(t,e,r){if(!t||typeof t!="object"&&typeof t!="function")throw new TypeError("argument obj must be object");var n=Object.getOwnPropertyDescriptor(t,e);if(!n)throw new TypeError("must call property on owner object");if(!n.configurable)throw new TypeError("property must be configurable");var s=this,i=wh(),a=nc(i[1]);a.name=e,"value"in n&&(n=Xre(t,e,r));var o=n.get,c=n.set;typeof o=="function"&&(n.get=function(){return _h.call(s,r,a),o.apply(this,arguments)}),typeof c=="function"&&(n.set=function(){return _h.call(s,r,a),c.apply(this,arguments)}),Object.defineProperty(t,e,n)}function kM(t,e,r){var n=new Error,s;return Object.defineProperty(n,"constructor",{value:kM}),Object.defineProperty(n,"message",{configurable:!0,enumerable:!1,value:e,writable:!0}),Object.defineProperty(n,"name",{enumerable:!1,configurable:!0,value:"DeprecationError",writable:!0}),Object.defineProperty(n,"namespace",{configurable:!0,enumerable:!1,value:t,writable:!0}),Object.defineProperty(n,"stack",{configurable:!0,enumerable:!1,get:function(){return s!==void 0?s:s=tne.call(this,r)},set:function(a){s=a}}),n}});var sc=P((nNe,Sh)=>{"use strict";Sh.exports=fne;Sh.exports.format=RM;Sh.exports.parse=PM;var pne=/\B(?=(\d{3})+(?!\d))/g,dne=/(?:\.0*|(\.[^0]+)0+)$/,Ai={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},mne=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function fne(t,e){return typeof t=="string"?PM(t):typeof t=="number"?RM(t,e):null}function RM(t,e){if(!Number.isFinite(t))return null;var r=Math.abs(t),n=e&&e.thousandsSeparator||"",s=e&&e.unitSeparator||"",i=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,a=!!(e&&e.fixedDecimals),o=e&&e.unit||"";(!o||!Ai[o.toLowerCase()])&&(r>=Ai.pb?o="PB":r>=Ai.tb?o="TB":r>=Ai.gb?o="GB":r>=Ai.mb?o="MB":r>=Ai.kb?o="KB":o="B");var c=t/Ai[o.toLowerCase()],l=c.toFixed(i);return a||(l=l.replace(dne,"$1")),n&&(l=l.split(".").map(function(u,p){return p===0?u.replace(pne,n):u}).join(".")),l+s+o}function PM(t){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t!="string")return null;var e=mne.exec(t),r,n="b";return e?(r=parseFloat(e[1]),n=e[4].toLowerCase()):(r=parseInt(t,10),n="b"),isNaN(r)?null:Math.floor(Ai[n]*r)}});var rp=P(qw=>{"use strict";var IM=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,hne=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,CM=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,gne=/\\([\u000b\u0020-\u00ff])/g,vne=/([\\"])/g,OM=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;qw.format=yne;qw.parse=bne;function yne(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!OM.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var s,i=Object.keys(e).sort(),a=0;a0&&!hne.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(vne,"\\$1")+'"'}function wne(t){this.parameters=Object.create(null),this.type=t}});var np=P((iNe,AM)=>{"use strict";AM.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?Sne:Ene);function Sne(t,e){return t.__proto__=e,t}function Ene(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(t,r)||(t[r]=e[r]);return t}});var jM=P((aNe,kne)=>{kne.exports={"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}});var sp=P((oNe,DM)=>{"use strict";var Fw=jM();DM.exports=ms;ms.message=Fw;ms.code=Tne(Fw);ms.codes=Rne(Fw);ms.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};ms.empty={204:!0,205:!0,304:!0};ms.retry={502:!0,503:!0,504:!0};function Tne(t){var e={};return Object.keys(t).forEach(function(n){var s=t[n],i=Number(n);e[s.toLowerCase()]=i}),e}function Rne(t){return Object.keys(t).map(function(r){return Number(r)})}function Pne(t){var e=t.toLowerCase();if(!Object.prototype.hasOwnProperty.call(ms.code,e))throw new Error('invalid status message: "'+t+'"');return ms.code[e]}function NM(t){if(!Object.prototype.hasOwnProperty.call(ms.message,t))throw new Error("invalid status code: "+t);return ms.message[t]}function ms(t){if(typeof t=="number")return NM(t);if(typeof t!="string")throw new TypeError("code must be a number or string");var e=parseInt(t,10);return isNaN(e)?Pne(t):NM(e)}});var MM=P((cNe,Hw)=>{typeof Object.create=="function"?Hw.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Hw.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}}});var zM=P((lNe,Ww)=>{try{if(Bw=require("util"),typeof Bw.inherits!="function")throw"";Ww.exports=Bw.inherits}catch{Ww.exports=MM()}var Bw});var LM=P((uNe,$M)=>{"use strict";$M.exports=Ine;function Ine(t){return t.split(" ").map(function(e){return e.slice(0,1).toUpperCase()+e.slice(1)}).join("").replace(/[^ _0-9a-z]/gi,"")}});var Ca=P((pNe,Ia)=>{"use strict";var Cne=js()("http-errors"),UM=np(),ic=sp(),Zw=zM(),One=LM();Ia.exports=Eh;Ia.exports.HttpError=Ane();Ia.exports.isHttpError=Nne(Ia.exports.HttpError);Mne(Ia.exports,ic.codes,Ia.exports.HttpError);function qM(t){return+(String(t).charAt(0)+"00")}function Eh(){for(var t,e,r=500,n={},s=0;s=600)&&Cne("non-error status code; use only 4xx or 5xx status codes"),(typeof r!="number"||!ic.message[r]&&(r<400||r>=600))&&(r=500);var o=Eh[r]||Eh[qM(r)];t||(t=o?new o(e):new Error(e||ic.message[r]),Error.captureStackTrace(t,Eh)),(!o||!(t instanceof o)||t.status!==r)&&(t.expose=r<500,t.status=t.statusCode=r);for(var c in n)c!=="status"&&c!=="statusCode"&&(t[c]=n[c]);return t}function Ane(){function t(){throw new TypeError("cannot construct abstract class")}return Zw(t,Error),t}function jne(t,e,r){var n=HM(e);function s(i){var a=i??ic.message[r],o=new Error(a);return Error.captureStackTrace(o,s),UM(o,s.prototype),Object.defineProperty(o,"message",{enumerable:!0,configurable:!0,value:a,writable:!0}),Object.defineProperty(o,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),o}return Zw(s,t),FM(s,n),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!0,s}function Nne(t){return function(r){return!r||typeof r!="object"?!1:r instanceof t?!0:r instanceof Error&&typeof r.expose=="boolean"&&typeof r.statusCode=="number"&&r.status===r.statusCode}}function Dne(t,e,r){var n=HM(e);function s(i){var a=i??ic.message[r],o=new Error(a);return Error.captureStackTrace(o,s),UM(o,s.prototype),Object.defineProperty(o,"message",{enumerable:!0,configurable:!0,value:a,writable:!0}),Object.defineProperty(o,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),o}return Zw(s,t),FM(s,n),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!1,s}function FM(t,e){var r=Object.getOwnPropertyDescriptor(t,"name");r&&r.configurable&&(r.value=e,Object.defineProperty(t,"name",r))}function Mne(t,e,r){e.forEach(function(s){var i,a=One(ic.message[s]);switch(qM(s)){case 400:i=jne(r,a,s);break;case 500:i=Dne(r,a,s);break}i&&(t[s]=i,t[a]=i)})}function HM(t){return t.slice(-5)==="Error"?t:t+"Error"}});var WM=P((dNe,BM)=>{var ip=1e3,ap=ip*60,op=ap*60,cp=op*24,zne=cp*365.25;BM.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return $ne(t);if(r==="number"&&isNaN(t)===!1)return e.long?Une(t):Lne(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function $ne(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*zne;case"days":case"day":case"d":return r*cp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*op;case"minutes":case"minute":case"mins":case"min":case"m":return r*ap;case"seconds":case"second":case"secs":case"sec":case"s":return r*ip;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Lne(t){return t>=cp?Math.round(t/cp)+"d":t>=op?Math.round(t/op)+"h":t>=ap?Math.round(t/ap)+"m":t>=ip?Math.round(t/ip)+"s":t+"ms"}function Une(t){return kh(t,cp,"day")||kh(t,op,"hour")||kh(t,ap,"minute")||kh(t,ip,"second")||t+" ms"}function kh(t,e,r){if(!(t{ot=ZM.exports=Vw.debug=Vw.default=Vw;ot.coerce=Wne;ot.disable=Hne;ot.enable=Fne;ot.enabled=Bne;ot.humanize=WM();ot.names=[];ot.skips=[];ot.formatters={};var Gw;function qne(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ot.colors[Math.abs(e)%ot.colors.length]}function Vw(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(Gw||n);r.diff=s,r.prev=Gw,r.curr=n,Gw=n;for(var i=new Array(arguments.length),a=0;a{qr=VM.exports=Kw();qr.log=Vne;qr.formatArgs=Gne;qr.save=Kne;qr.load=GM;qr.useColors=Zne;qr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:Jne();qr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function Zne(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}qr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function Gne(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+qr.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function Vne(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function Kne(t){try{t==null?qr.storage.removeItem("debug"):qr.storage.debug=t}catch{}}function GM(){var t;try{t=qr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}qr.enable(GM());function Jne(){try{return window.localStorage}catch{}}});var XM=P((lr,YM)=>{var JM=require("tty"),lp=require("util");lr=YM.exports=Kw();lr.init=nse;lr.log=ese;lr.formatArgs=Xne;lr.save=tse;lr.load=QM;lr.useColors=Yne;lr.colors=[6,2,3,4,5,1];lr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var ac=parseInt(process.env.DEBUG_FD,10)||2;ac!==1&&ac!==2&&lp.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var Qne=ac===1?process.stdout:ac===2?process.stderr:rse(ac);function Yne(){return"colors"in lr.inspectOpts?!!lr.inspectOpts.colors:JM.isatty(ac)}lr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,lp.inspect(t,this.inspectOpts).split(` +`).map(function(e){return e.trim()}).join(" ")};lr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,lp.inspect(t,this.inspectOpts)};function Xne(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` `).join(` -`+s),t.push("\x1B[3"+n+"m+"+lr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function ase(){return nse.write(up.format.apply(up,arguments)+` -`)}function ose(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function tz(){return process.env.DEBUG}function cse(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new ez.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function lse(t){t.inspectOpts={};for(var e=Object.keys(lr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?Xw.exports=XM():Xw.exports=nz()});var eS=P((_Ne,iz)=>{"use strict";var use=require("events").EventEmitter,pse=require("fs").ReadStream,sz=require("stream"),Aa=require("zlib");iz.exports=dse;function dse(t,e){return yse(t)?mse(t):bse(t)?hse(t):gse(t)&&t.destroy(),vse(t)&&e&&(t.removeAllListeners("error"),t.addListener("error",xse)),t}function mse(t){t.destroy(),typeof t.close=="function"&&t.on("open",wse)}function fse(t){if(t._hadError===!0){var e=t._binding===null?"_binding":"_handle";t[e]={close:function(){this[e]=null}}}t.close()}function hse(t){typeof t.destroy=="function"?t._binding?(t.destroy(),t._processing?(t._needDrain=!0,t.once("drain",_se)):t._binding.clear()):t._destroy&&t._destroy!==sz.Transform.prototype._destroy?t.destroy():t._destroy&&typeof t.close=="function"?(t.destroyed=!0,t.close()):t.destroy():typeof t.close=="function"&&fse(t)}function gse(t){return t instanceof sz&&typeof t.destroy=="function"}function vse(t){return t instanceof use}function yse(t){return t instanceof pse}function bse(t){return t instanceof Aa.Gzip||t instanceof Aa.Gunzip||t instanceof Aa.Deflate||t instanceof Aa.DeflateRaw||t instanceof Aa.Inflate||t instanceof Aa.InflateRaw||t instanceof Aa.Unzip}function xse(){}function _se(){this._binding.clear()}function wse(){typeof this.fd=="number"&&this.close()}});var ja=P((wNe,az)=>{"use strict";var Ph=require("buffer"),cc=Ph.Buffer,Un={},qn;for(qn in Ph)Ph.hasOwnProperty(qn)&&(qn==="SlowBuffer"||qn==="Buffer"||(Un[qn]=Ph[qn]));var lc=Un.Buffer={};for(qn in cc)cc.hasOwnProperty(qn)&&(qn==="allocUnsafe"||qn==="allocUnsafeSlow"||(lc[qn]=cc[qn]));Un.Buffer.prototype=cc.prototype;(!lc.from||lc.from===Uint8Array.from)&&(lc.from=function(t,e,r){if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof t);if(t&&typeof t.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);return cc(t,e,r)});lc.alloc||(lc.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof t);if(t<0||t>=2*(1<<30))throw new RangeError('The value "'+t+'" is invalid for option "size"');var n=cc(t);return!e||e.length===0?n.fill(0):typeof r=="string"?n.fill(e,r):n.fill(e),n});if(!Un.kStringMaxLength)try{Un.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}Un.constants||(Un.constants={MAX_LENGTH:Un.kMaxLength},Un.kStringMaxLength&&(Un.constants.MAX_STRING_LENGTH=Un.kStringMaxLength));az.exports=Un});var cz=P(nS=>{"use strict";var oz="\uFEFF";nS.PrependBOM=tS;function tS(t,e){this.encoder=t,this.addBOM=!0}tS.prototype.write=function(t){return this.addBOM&&(t=oz+t,this.addBOM=!1),this.encoder.write(t)};tS.prototype.end=function(){return this.encoder.end()};nS.StripBOM=rS;function rS(t,e){this.decoder=t,this.pass=!1,this.options=e||{}}rS.prototype.write=function(t){var e=this.decoder.write(t);return this.pass||!e||(e[0]===oz&&(e=e.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),e};rS.prototype.end=function(){return this.decoder.end()}});var pz=P((kNe,uz)=>{"use strict";var dp=ja().Buffer;uz.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:sS};function sS(t,e){this.enc=t.encodingName,this.bomAware=t.bomAware,this.enc==="base64"?this.encoder=aS:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=oS,dp.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=cS,this.defaultCharUnicode=e.defaultCharUnicode))}sS.prototype.encoder=iS;sS.prototype.decoder=lz;var Ih=require("string_decoder").StringDecoder;Ih.prototype.end||(Ih.prototype.end=function(){});function lz(t,e){Ih.call(this,e.enc)}lz.prototype=Ih.prototype;function iS(t,e){this.enc=e.enc}iS.prototype.write=function(t){return dp.from(t,this.enc)};iS.prototype.end=function(){};function aS(t,e){this.prevStr=""}aS.prototype.write=function(t){t=this.prevStr+t;var e=t.length-t.length%4;return this.prevStr=t.slice(e),t=t.slice(0,e),dp.from(t,"base64")};aS.prototype.end=function(){return dp.from(this.prevStr,"base64")};function oS(t,e){}oS.prototype.write=function(t){for(var e=dp.alloc(t.length*3),r=0,n=0;n>>6),e[r++]=128+(s&63)):(e[r++]=224+(s>>>12),e[r++]=128+(s>>>6&63),e[r++]=128+(s&63))}return e.slice(0,r)};oS.prototype.end=function(){};function cS(t,e){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=e.defaultCharUnicode}cS.prototype.write=function(t){for(var e=this.acc,r=this.contBytes,n=this.accBytes,s="",i=0;i0&&(s+=this.defaultCharUnicode,r=0),a<128?s+=String.fromCharCode(a):a<224?(e=a&31,r=1,n=1):a<240?(e=a&15,r=2,n=1):s+=this.defaultCharUnicode):r>0?(e=e<<6|a&63,r--,n++,r===0&&(n===2&&e<128&&e>0?s+=this.defaultCharUnicode:n===3&&e<2048?s+=this.defaultCharUnicode:s+=String.fromCharCode(e))):s+=this.defaultCharUnicode}return this.acc=e,this.contBytes=r,this.accBytes=n,s};cS.prototype.end=function(){var t=0;return this.contBytes>0&&(t+=this.defaultCharUnicode),t}});var mz=P(fS=>{"use strict";var Ch=ja().Buffer;fS.utf16be=Oh;function Oh(){}Oh.prototype.encoder=lS;Oh.prototype.decoder=uS;Oh.prototype.bomAware=!0;function lS(){}lS.prototype.write=function(t){for(var e=Ch.from(t,"ucs2"),r=0;r=2)if(t[0]==254&&t[1]==255)r="utf-16be";else if(t[0]==255&&t[1]==254)r="utf-16le";else{for(var n=0,s=0,i=Math.min(t.length-t.length%2,64),a=0;an?r="utf-16be":s{"use strict";var Ns=ja().Buffer;Nh.utf7=Ah;Nh.unicode11utf7="utf7";function Ah(t,e){this.iconv=e}Ah.prototype.encoder=gS;Ah.prototype.decoder=vS;Ah.prototype.bomAware=!0;var Sse=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function gS(t,e){this.iconv=e.iconv}gS.prototype.write=function(t){return Ns.from(t.replace(Sse,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};gS.prototype.end=function(){};function vS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var kse=/[A-Za-z0-9\/+]/,yS=[];for(mp=0;mp<256;mp++)yS[mp]=kse.test(String.fromCharCode(mp));var mp,Ese=43,Na=45,hS=38;vS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,s=this.base64Accum,i=0;i0&&(t=this.iconv.decode(Ns.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t};Nh.utf7imap=jh;function jh(t,e){this.iconv=e}jh.prototype.encoder=bS;jh.prototype.decoder=xS;jh.prototype.bomAware=!0;function bS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=Ns.alloc(6),this.base64AccumIdx=0}bS.prototype.write=function(t){for(var e=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,s=Ns.alloc(t.length*5+10),i=0,a=0;a0&&(i+=s.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),i),n=0),s[i++]=Na,e=!1),e||(s[i++]=o,o===hS&&(s[i++]=Na))):(e||(s[i++]=hS,e=!0),e&&(r[n++]=o>>8,r[n++]=o&255,n==r.length&&(i+=s.write(r.toString("base64").replace(/\//g,","),i),n=0)))}return this.inBase64=e,this.base64AccumIdx=n,s.slice(0,i)};bS.prototype.end=function(){var t=Ns.alloc(10),e=0;return this.inBase64&&(this.base64AccumIdx>0&&(e+=t.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),e),this.base64AccumIdx=0),t[e++]=Na,this.inBase64=!1),t.slice(0,e)};function xS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var fz=yS.slice();fz[44]=!0;xS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,s=this.base64Accum,i=0;i0&&(t=this.iconv.decode(Ns.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t}});var vz=P(gz=>{"use strict";var Dh=ja().Buffer;gz._sbcs=_S;function _S(t,e){if(!t)throw new Error("SBCS codec is called without the data.");if(!t.chars||t.chars.length!==128&&t.chars.length!==256)throw new Error("Encoding '"+t.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(t.chars.length===128){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);t.chars=r+t.chars}this.decodeBuf=Dh.from(t.chars,"ucs2");for(var s=Dh.alloc(65536,e.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";yz.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var _z=P((INe,xz)=>{"use strict";xz.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b +`+s),t.push("\x1B[3"+n+"m+"+lr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function ese(){return Qne.write(lp.format.apply(lp,arguments)+` +`)}function tse(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function QM(){return process.env.DEBUG}function rse(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new JM.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function nse(t){t.inspectOpts={};for(var e=Object.keys(lr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?Jw.exports=KM():Jw.exports=XM()});var Qw=P((fNe,tz)=>{"use strict";var sse=require("events").EventEmitter,ise=require("fs").ReadStream,ez=require("stream"),Oa=require("zlib");tz.exports=ase;function ase(t,e){return dse(t)?ose(t):mse(t)?lse(t):use(t)&&t.destroy(),pse(t)&&e&&(t.removeAllListeners("error"),t.addListener("error",fse)),t}function ose(t){t.destroy(),typeof t.close=="function"&&t.on("open",gse)}function cse(t){if(t._hadError===!0){var e=t._binding===null?"_binding":"_handle";t[e]={close:function(){this[e]=null}}}t.close()}function lse(t){typeof t.destroy=="function"?t._binding?(t.destroy(),t._processing?(t._needDrain=!0,t.once("drain",hse)):t._binding.clear()):t._destroy&&t._destroy!==ez.Transform.prototype._destroy?t.destroy():t._destroy&&typeof t.close=="function"?(t.destroyed=!0,t.close()):t.destroy():typeof t.close=="function"&&cse(t)}function use(t){return t instanceof ez&&typeof t.destroy=="function"}function pse(t){return t instanceof sse}function dse(t){return t instanceof ise}function mse(t){return t instanceof Oa.Gzip||t instanceof Oa.Gunzip||t instanceof Oa.Deflate||t instanceof Oa.DeflateRaw||t instanceof Oa.Inflate||t instanceof Oa.InflateRaw||t instanceof Oa.Unzip}function fse(){}function hse(){this._binding.clear()}function gse(){typeof this.fd=="number"&&this.close()}});var Aa=P((hNe,rz)=>{"use strict";var Th=require("buffer"),oc=Th.Buffer,Un={},qn;for(qn in Th)Th.hasOwnProperty(qn)&&(qn==="SlowBuffer"||qn==="Buffer"||(Un[qn]=Th[qn]));var cc=Un.Buffer={};for(qn in oc)oc.hasOwnProperty(qn)&&(qn==="allocUnsafe"||qn==="allocUnsafeSlow"||(cc[qn]=oc[qn]));Un.Buffer.prototype=oc.prototype;(!cc.from||cc.from===Uint8Array.from)&&(cc.from=function(t,e,r){if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof t);if(t&&typeof t.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);return oc(t,e,r)});cc.alloc||(cc.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof t);if(t<0||t>=2*(1<<30))throw new RangeError('The value "'+t+'" is invalid for option "size"');var n=oc(t);return!e||e.length===0?n.fill(0):typeof r=="string"?n.fill(e,r):n.fill(e),n});if(!Un.kStringMaxLength)try{Un.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}Un.constants||(Un.constants={MAX_LENGTH:Un.kMaxLength},Un.kStringMaxLength&&(Un.constants.MAX_STRING_LENGTH=Un.kStringMaxLength));rz.exports=Un});var sz=P(eS=>{"use strict";var nz="\uFEFF";eS.PrependBOM=Yw;function Yw(t,e){this.encoder=t,this.addBOM=!0}Yw.prototype.write=function(t){return this.addBOM&&(t=nz+t,this.addBOM=!1),this.encoder.write(t)};Yw.prototype.end=function(){return this.encoder.end()};eS.StripBOM=Xw;function Xw(t,e){this.decoder=t,this.pass=!1,this.options=e||{}}Xw.prototype.write=function(t){var e=this.decoder.write(t);return this.pass||!e||(e[0]===nz&&(e=e.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),e};Xw.prototype.end=function(){return this.decoder.end()}});var oz=P((vNe,az)=>{"use strict";var pp=Aa().Buffer;az.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:tS};function tS(t,e){this.enc=t.encodingName,this.bomAware=t.bomAware,this.enc==="base64"?this.encoder=nS:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=sS,pp.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=iS,this.defaultCharUnicode=e.defaultCharUnicode))}tS.prototype.encoder=rS;tS.prototype.decoder=iz;var Rh=require("string_decoder").StringDecoder;Rh.prototype.end||(Rh.prototype.end=function(){});function iz(t,e){Rh.call(this,e.enc)}iz.prototype=Rh.prototype;function rS(t,e){this.enc=e.enc}rS.prototype.write=function(t){return pp.from(t,this.enc)};rS.prototype.end=function(){};function nS(t,e){this.prevStr=""}nS.prototype.write=function(t){t=this.prevStr+t;var e=t.length-t.length%4;return this.prevStr=t.slice(e),t=t.slice(0,e),pp.from(t,"base64")};nS.prototype.end=function(){return pp.from(this.prevStr,"base64")};function sS(t,e){}sS.prototype.write=function(t){for(var e=pp.alloc(t.length*3),r=0,n=0;n>>6),e[r++]=128+(s&63)):(e[r++]=224+(s>>>12),e[r++]=128+(s>>>6&63),e[r++]=128+(s&63))}return e.slice(0,r)};sS.prototype.end=function(){};function iS(t,e){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=e.defaultCharUnicode}iS.prototype.write=function(t){for(var e=this.acc,r=this.contBytes,n=this.accBytes,s="",i=0;i0&&(s+=this.defaultCharUnicode,r=0),a<128?s+=String.fromCharCode(a):a<224?(e=a&31,r=1,n=1):a<240?(e=a&15,r=2,n=1):s+=this.defaultCharUnicode):r>0?(e=e<<6|a&63,r--,n++,r===0&&(n===2&&e<128&&e>0?s+=this.defaultCharUnicode:n===3&&e<2048?s+=this.defaultCharUnicode:s+=String.fromCharCode(e))):s+=this.defaultCharUnicode}return this.acc=e,this.contBytes=r,this.accBytes=n,s};iS.prototype.end=function(){var t=0;return this.contBytes>0&&(t+=this.defaultCharUnicode),t}});var lz=P(pS=>{"use strict";var Ph=Aa().Buffer;pS.utf16be=Ih;function Ih(){}Ih.prototype.encoder=aS;Ih.prototype.decoder=oS;Ih.prototype.bomAware=!0;function aS(){}aS.prototype.write=function(t){for(var e=Ph.from(t,"ucs2"),r=0;r=2)if(t[0]==254&&t[1]==255)r="utf-16be";else if(t[0]==255&&t[1]==254)r="utf-16le";else{for(var n=0,s=0,i=Math.min(t.length-t.length%2,64),a=0;an?r="utf-16be":s{"use strict";var Ns=Aa().Buffer;Ah.utf7=Ch;Ah.unicode11utf7="utf7";function Ch(t,e){this.iconv=e}Ch.prototype.encoder=mS;Ch.prototype.decoder=fS;Ch.prototype.bomAware=!0;var vse=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function mS(t,e){this.iconv=e.iconv}mS.prototype.write=function(t){return Ns.from(t.replace(vse,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};mS.prototype.end=function(){};function fS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var yse=/[A-Za-z0-9\/+]/,hS=[];for(dp=0;dp<256;dp++)hS[dp]=yse.test(String.fromCharCode(dp));var dp,bse=43,ja=45,dS=38;fS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,s=this.base64Accum,i=0;i0&&(t=this.iconv.decode(Ns.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t};Ah.utf7imap=Oh;function Oh(t,e){this.iconv=e}Oh.prototype.encoder=gS;Oh.prototype.decoder=vS;Oh.prototype.bomAware=!0;function gS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=Ns.alloc(6),this.base64AccumIdx=0}gS.prototype.write=function(t){for(var e=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,s=Ns.alloc(t.length*5+10),i=0,a=0;a0&&(i+=s.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),i),n=0),s[i++]=ja,e=!1),e||(s[i++]=o,o===dS&&(s[i++]=ja))):(e||(s[i++]=dS,e=!0),e&&(r[n++]=o>>8,r[n++]=o&255,n==r.length&&(i+=s.write(r.toString("base64").replace(/\//g,","),i),n=0)))}return this.inBase64=e,this.base64AccumIdx=n,s.slice(0,i)};gS.prototype.end=function(){var t=Ns.alloc(10),e=0;return this.inBase64&&(this.base64AccumIdx>0&&(e+=t.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),e),this.base64AccumIdx=0),t[e++]=ja,this.inBase64=!1),t.slice(0,e)};function vS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var uz=hS.slice();uz[44]=!0;vS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,s=this.base64Accum,i=0;i0&&(t=this.iconv.decode(Ns.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t}});var mz=P(dz=>{"use strict";var jh=Aa().Buffer;dz._sbcs=yS;function yS(t,e){if(!t)throw new Error("SBCS codec is called without the data.");if(!t.chars||t.chars.length!==128&&t.chars.length!==256)throw new Error("Encoding '"+t.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(t.chars.length===128){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);t.chars=r+t.chars}this.decodeBuf=jh.from(t.chars,"ucs2");for(var s=jh.alloc(65536,e.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";fz.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var vz=P((wNe,gz)=>{"use strict";gz.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b \v\f\r\x1B !"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD`},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"},maccyrillic:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},macgreek:{type:"_sbcs",chars:"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"},maciceland:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macroman:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macromania:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macthai:{type:"_sbcs",chars:"\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"},macturkish:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macukraine:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},koi8r:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8u:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8ru:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8t:{type:"_sbcs",chars:"\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},armscii8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"},rk1048:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},tcvn:{type:"_sbcs",chars:`\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0`},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},viscii:{type:"_sbcs",chars:`\0\u1EB2\u1EB4\u1EAA\x07\b \v\f\r\u1EF6\u1EF8\x1B\u1EF4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE`},iso646cn:{type:"_sbcs",chars:`\0\x07\b \v\f\r\x1B !"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},iso646jp:{type:"_sbcs",chars:`\0\x07\b -\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var kz=P(Sz=>{"use strict";var pc=ja().Buffer;Sz._dbcs=ti;var pn=-1,wz=-2,Fn=-10,Ds=-1e3,uc=new Array(256),fp=-1;for(Mh=0;Mh<256;Mh++)uc[Mh]=pn;var Mh;function ti(t,e){if(this.encodingName=t.encodingName,!t)throw new Error("DBCS codec is called without the data.");if(!t.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=t.table();this.decodeTables=[],this.decodeTables[0]=uc.slice(0),this.decodeTableSeq=[];for(var n=0;n0;t>>=8)e.push(t&255);e.length==0&&e.push(0);for(var r=this.decodeTables[0],n=e.length-1;n>0;n--){var s=r[e[n]];if(s==pn)r[e[n]]=Ds-this.decodeTables.length,this.decodeTables.push(r=uc.slice(0));else if(s<=Ds)r=this.decodeTables[Ds-s];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+t.toString(16))}return r};ti.prototype._addDecodeChunk=function(t){var e=parseInt(t[0],16),r=this._getDecodeTrieNode(e);e=e&255;for(var n=1;n255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+t[0]+": too long"+e)};ti.prototype._getEncodeBucket=function(t){var e=t>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=uc.slice(0)),this.encodeTable[e]};ti.prototype._setEncodeChar=function(t,e){var r=this._getEncodeBucket(t),n=t&255;r[n]<=Fn?this.encodeTableSeq[Fn-r[n]][fp]=e:r[n]==pn&&(r[n]=e)};ti.prototype._setEncodeSequence=function(t,e){var r=t[0],n=this._getEncodeBucket(r),s=r&255,i;n[s]<=Fn?i=this.encodeTableSeq[Fn-n[s]]:(i={},n[s]!==pn&&(i[fp]=n[s]),n[s]=Fn-this.encodeTableSeq.length,this.encodeTableSeq.push(i));for(var a=1;a=0?this._setEncodeChar(i,a):i<=Ds?this._fillEncodeTable(Ds-i,a<<8,r):i<=Fn&&this._setEncodeSequence(this.decodeTableSeq[Fn-i],a))}};function zh(t,e){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=e.encodeTable,this.encodeTableSeq=e.encodeTableSeq,this.defaultCharSingleByte=e.defCharSB,this.gb18030=e.gb18030}zh.prototype.write=function(t){for(var e=pc.alloc(t.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,s=-1,i=0,a=0;;){if(s===-1){if(i==t.length)break;var o=t.charCodeAt(i++)}else{var o=s;s=-1}if(55296<=o&&o<57344)if(o<56320)if(r===-1){r=o;continue}else r=o,o=pn;else r!==-1?(o=65536+(r-55296)*1024+(o-56320),r=-1):o=pn;else r!==-1&&(s=o,o=pn,r=-1);var c=pn;if(n!==void 0&&o!=pn){var l=n[o];if(typeof l=="object"){n=l;continue}else typeof l=="number"?c=l:l==null&&(l=n[fp],l!==void 0&&(c=l,s=o));n=void 0}else if(o>=0){var u=this.encodeTable[o>>8];if(u!==void 0&&(c=u[o&255]),c<=Fn){n=this.encodeTableSeq[Fn-c];continue}if(c==pn&&this.gb18030){var p=ES(this.gb18030.uChars,o);if(p!=-1){var c=this.gb18030.gbChars[p]+(o-this.gb18030.uChars[p]);e[a++]=129+Math.floor(c/12600),c=c%12600,e[a++]=48+Math.floor(c/1260),c=c%1260,e[a++]=129+Math.floor(c/10),c=c%10,e[a++]=48+c;continue}}}c===pn&&(c=this.defaultCharSingleByte),c<256?e[a++]=c:c<65536?(e[a++]=c>>8,e[a++]=c&255):(e[a++]=c>>16,e[a++]=c>>8&255,e[a++]=c&255)}return this.seqObj=n,this.leadSurrogate=r,e.slice(0,a)};zh.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var t=pc.alloc(10),e=0;if(this.seqObj){var r=this.seqObj[fp];r!==void 0&&(r<256?t[e++]=r:(t[e++]=r>>8,t[e++]=r&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(t[e++]=this.defaultCharSingleByte,this.leadSurrogate=-1),t.slice(0,e)}};zh.prototype.findIdx=ES;function kS(t,e){this.nodeIdx=0,this.prevBuf=pc.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}kS.prototype.write=function(t){var e=pc.alloc(t.length*2),r=this.nodeIdx,n=this.prevBuf,s=this.prevBuf.length,i=-this.prevBuf.length,a;s>0&&(n=pc.concat([n,t.slice(0,10)]));for(var o=0,c=0;o=0?t[o]:n[o+s],a=this.decodeTables[r][l];if(!(a>=0))if(a===pn)o=i,a=this.defaultCharUnicode.charCodeAt(0);else if(a===wz){var u=i>=0?t.slice(i,o+1):n.slice(i+s,o+1+s),p=(u[0]-129)*12600+(u[1]-48)*1260+(u[2]-129)*10+(u[3]-48),d=ES(this.gb18030.gbChars,p);a=this.gb18030.uChars[d]+p-this.gb18030.gbChars[d]}else if(a<=Ds){r=Ds-a;continue}else if(a<=Fn){for(var m=this.decodeTableSeq[Fn-a],f=0;f>8;a=m[m.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+a+" at "+r+"/"+l);if(a>65535){a-=65536;var g=55296+Math.floor(a/1024);e[c++]=g&255,e[c++]=g>>8,a=56320+a%1024}e[c++]=a&255,e[c++]=a>>8,r=0,i=o+1}return this.nodeIdx=r,this.prevBuf=i>=0?t.slice(i):n.slice(i+s),e.slice(0,c).toString("ucs2")};kS.prototype.end=function(){for(var t="";this.prevBuf.length>0;){t+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=pc.alloc(0),this.nodeIdx=0,e.length>0&&(t+=this.write(e))}return this.nodeIdx=0,t};function ES(t,e){if(t[0]>e)return-1;for(var r=0,n=t.length;r{Tse.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var Tz=P((ANe,Rse)=>{Rse.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var $h=P((jNe,Pse)=>{Pse.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var TS=P((NNe,Ise)=>{Ise.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\uE7C7"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93]]});var Rz=P((DNe,Cse)=>{Cse.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var Pz=P((MNe,Ose)=>{Ose.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var RS=P((zNe,Ase)=>{Ase.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var Iz=P(($Ne,jse)=>{jse.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var Oz=P((LNe,Cz)=>{"use strict";Cz.exports={shiftjis:{type:"_dbcs",table:function(){return Ez()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return Tz()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return $h()}},gbk:{type:"_dbcs",table:function(){return $h().concat(TS())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return $h().concat(TS())},gb18030:function(){return Rz()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return Pz()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return RS()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return RS().concat(Iz())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var Nz=P((jz,dc)=>{"use strict";var Az=[pz(),mz(),hz(),vz(),bz(),_z(),kz(),Oz()];for(Lh=0;Lh{"use strict";var Dz=require("buffer").Buffer,qh=require("stream").Transform;Mz.exports=function(t){t.encodeStream=function(r,n){return new Da(t.getEncoder(r,n),n)},t.decodeStream=function(r,n){return new ji(t.getDecoder(r,n),n)},t.supportsStreams=!0,t.IconvLiteEncoderStream=Da,t.IconvLiteDecoderStream=ji,t._collect=ji.prototype.collect};function Da(t,e){this.conv=t,e=e||{},e.decodeStrings=!1,qh.call(this,e)}Da.prototype=Object.create(qh.prototype,{constructor:{value:Da}});Da.prototype._transform=function(t,e,r){if(typeof t!="string")return r(new Error("Iconv encoding stream needs strings as its input."));try{var n=this.conv.write(t);n&&n.length&&this.push(n),r()}catch(s){r(s)}};Da.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e),t()}catch(r){t(r)}};Da.prototype.collect=function(t){var e=[];return this.on("error",t),this.on("data",function(r){e.push(r)}),this.on("end",function(){t(null,Dz.concat(e))}),this};function ji(t,e){this.conv=t,e=e||{},e.encoding=this.encoding="utf8",qh.call(this,e)}ji.prototype=Object.create(qh.prototype,{constructor:{value:ji}});ji.prototype._transform=function(t,e,r){if(!Dz.isBuffer(t))return r(new Error("Iconv decoding stream needs buffers as its input."));try{var n=this.conv.write(t);n&&n.length&&this.push(n,this.encoding),r()}catch(s){r(s)}};ji.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),t()}catch(r){t(r)}};ji.prototype.collect=function(t){var e="";return this.on("error",t),this.on("data",function(r){e+=r}),this.on("end",function(){t(null,e)}),this}});var Lz=P((qNe,$z)=>{"use strict";var Bt=require("buffer").Buffer;$z.exports=function(t){var e=void 0;t.supportsNodeEncodingsExtension=!(Bt.from||new Bt(0)instanceof Uint8Array),t.extendNodeEncodings=function(){if(!e){if(e={},!t.supportsNodeEncodingsExtension){console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");return}var n={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};Bt.isNativeEncoding=function(a){return a&&n[a.toLowerCase()]};var s=require("buffer").SlowBuffer;if(e.SlowBufferToString=s.prototype.toString,s.prototype.toString=function(a,o,c){return a=String(a||"utf8").toLowerCase(),Bt.isNativeEncoding(a)?e.SlowBufferToString.call(this,a,o,c):(typeof o>"u"&&(o=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(o,c),a))},e.SlowBufferWrite=s.prototype.write,s.prototype.write=function(a,o,c,l){if(isFinite(o))isFinite(c)||(l=c,c=void 0);else{var u=l;l=o,o=c,c=u}o=+o||0;var p=this.length-o;if(c?(c=+c,c>p&&(c=p)):c=p,l=String(l||"utf8").toLowerCase(),Bt.isNativeEncoding(l))return e.SlowBufferWrite.call(this,a,o,c,l);if(a.length>0&&(c<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var d=t.encode(a,l);return d.length"u"&&(o=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(o,c),a))},e.BufferWrite=Bt.prototype.write,Bt.prototype.write=function(a,o,c,l){var u=o,p=c,d=l;if(isFinite(o))isFinite(c)||(l=c,c=void 0);else{var m=l;l=o,o=c,c=m}if(l=String(l||"utf8").toLowerCase(),Bt.isNativeEncoding(l))return e.BufferWrite.call(this,a,u,p,d);o=+o||0;var f=this.length-o;if(c?(c=+c,c>f&&(c=f)):c=f,a.length>0&&(c<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var g=t.encode(a,l);return g.length{"use strict";var qz=ja().Buffer,Fz=cz(),it=Hz.exports;it.encodings=null;it.defaultCharUnicode="\uFFFD";it.defaultCharSingleByte="?";it.encode=function(e,r,n){e=""+(e||"");var s=it.getEncoder(r,n),i=s.write(e),a=s.end();return a&&a.length>0?qz.concat([i,a]):i};it.decode=function(e,r,n){typeof e=="string"&&(it.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),it.skipDecodeWarning=!0),e=qz.from(""+(e||""),"binary"));var s=it.getDecoder(r,n),i=s.write(e),a=s.end();return a?i+a:i};it.encodingExists=function(e){try{return it.getCodec(e),!0}catch{return!1}};it.toEncoding=it.encode;it.fromEncoding=it.decode;it._codecDataCache={};it.getCodec=function(e){it.encodings||(it.encodings=Nz());for(var r=it._canonicalizeEncoding(e),n={};;){var s=it._codecDataCache[r];if(s)return s;var i=it.encodings[r];switch(typeof i){case"string":r=i;break;case"object":for(var a in i)n[a]=i[a];n.encodingName||(n.encodingName=r),r=i.type;break;case"function":return n.encodingName||(n.encodingName=r),s=new i(n,it),it._codecDataCache[n.encodingName]=s,s;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+r+"')")}}};it._canonicalizeEncoding=function(t){return(""+t).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};it.getEncoder=function(e,r){var n=it.getCodec(e),s=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(s=new Fz.PrependBOM(s,r)),s};it.getDecoder=function(e,r){var n=it.getCodec(e),s=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(s=new Fz.StripBOM(s,r)),s};var Uz=typeof process<"u"&&process.versions&&process.versions.node;Uz&&(PS=Uz.split(".").map(Number),(PS[0]>0||PS[1]>=10)&&zz()(it),Lz()(it));var PS});var Fh=P((HNe,Bz)=>{"use strict";Bz.exports=Dse;function Nse(t){for(var e=t.listeners("data"),r=0;r{"use strict";var Wz=Hse(),Mse=ic(),Ma=Oa(),zse=IS(),$se=Fh();Gz.exports=qse;var Lse=/^Encoding not recognized: /;function Use(t){if(!t)return null;try{return zse.getDecoder(t)}catch(e){throw Lse.test(e.message)?Ma(415,"specified encoding unsupported",{encoding:t,type:"encoding.unsupported"}):e}}function qse(t,e,r){var n=r,s=e||{};if(t===void 0)throw new TypeError("argument stream is required");if(typeof t!="object"||t===null||typeof t.on!="function")throw new TypeError("argument stream must be a stream");if((e===!0||typeof e=="string")&&(s={encoding:e}),typeof e=="function"&&(n=e,s={}),n!==void 0&&typeof n!="function")throw new TypeError("argument callback must be a function");if(!n&&!global.Promise)throw new TypeError("argument callback is required");var i=s.encoding!==!0?s.encoding:"utf-8",a=Mse.parse(s.limit),o=s.length!=null&&!isNaN(s.length)?parseInt(s.length,10):null;return n?Zz(t,i,o,a,Bse(n)):new Promise(function(l,u){Zz(t,i,o,a,function(d,m){if(d)return u(d);l(m)})})}function Fse(t){$se(t),typeof t.pause=="function"&&t.pause()}function Zz(t,e,r,n,s){var i=!1,a=!0;if(n!==null&&r!==null&&r>n)return p(Ma(413,"request entity too large",{expected:r,length:r,limit:n,type:"entity.too.large"}));var o=t._readableState;if(t._decoder||o&&(o.encoding||o.decoder))return p(Ma(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof t.readable<"u"&&!t.readable)return p(Ma(500,"stream is not readable",{type:"stream.not.readable"}));var c=0,l;try{l=Use(e)}catch(v){return p(v)}var u=l?"":[];t.on("aborted",d),t.on("close",g),t.on("data",m),t.on("end",f),t.on("error",f),a=!1;function p(){for(var v=new Array(arguments.length),h=0;hn?p(Ma(413,"request entity too large",{limit:n,received:c,type:"entity.too.large"})):l?u+=l.write(v):u.push(v))}function f(v){if(!i){if(v)return p(v);if(r!==null&&c!==r)p(Ma(400,"request size did not match content length",{expected:r,length:r,received:c,type:"request.size.invalid"}));else{var h=l?u+(l.end()||""):Buffer.concat(u);p(null,h)}}}function g(){u=null,t.removeListener("aborted",d),t.removeListener("data",m),t.removeListener("end",f),t.removeListener("error",f),t.removeListener("close",g)}}function Hse(){try{return require("async_hooks")}catch{return{}}}function Bse(t){var e;return Wz.AsyncResource&&(e=new Wz.AsyncResource(t.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?t:e.runInAsyncScope.bind(e,t,null)}});var Jz=P((WNe,Kz)=>{"use strict";Kz.exports=Wse;function Wse(t,e){if(!Array.isArray(t))throw new TypeError("arg must be an array of [ee, events...] arrays");for(var r=[],n=0;n{"use strict";CS.exports=Vse;CS.exports.isFinished=Xz;var Qz=Xse(),Yz=Jz(),Gse=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))};function Vse(t,e){return Xz(t)!==!1?(Gse(e,null,t),t):(Jse(t,eie(e)),t)}function Xz(t){var e=t.socket;if(typeof t.finished=="boolean")return!!(t.finished||e&&!e.writable);if(typeof t.complete=="boolean")return!!(t.upgrade||!e||!e.readable||t.complete&&!t.readable)}function Kse(t,e){var r,n,s=!1;function i(o){r.cancel(),n.cancel(),s=!0,e(o)}r=n=Yz([[t,"end","finish"]],i);function a(o){t.removeListener("socket",a),!s&&r===n&&(n=Yz([[o,"error","close"]],i))}if(t.socket){a(t.socket);return}t.on("socket",a),t.socket===void 0&&Yse(t,a)}function Jse(t,e){var r=t.__onFinished;(!r||!r.queue)&&(r=t.__onFinished=Qse(t),Kse(t,r)),r.queue.push(e)}function Qse(t){function e(r){if(t.__onFinished===e&&(t.__onFinished=null),!!e.queue){var n=e.queue;e.queue=null;for(var s=0;s{"use strict";var Ni=Oa(),tie=eS(),rie=Vz(),e4=IS(),t4=hp(),nie=Fh(),r4=require("zlib");n4.exports=sie;function sie(t,e,r,n,s,i){var a,o=i,c;t._body=!0;var l=o.encoding!==null?o.encoding:null,u=o.verify;try{c=iie(t,s,o.inflate),a=c.length,c.length=void 0}catch(p){return r(p)}if(o.length=a,o.encoding=u?null:l,o.encoding===null&&l!==null&&!e4.encodingExists(l))return r(Ni(415,'unsupported charset "'+l.toUpperCase()+'"',{charset:l.toLowerCase(),type:"charset.unsupported"}));s("read body"),rie(c,o,function(p,d){if(p){var m;p.type==="encoding.unsupported"?m=Ni(415,'unsupported charset "'+l.toUpperCase()+'"',{charset:l.toLowerCase(),type:"charset.unsupported"}):m=Ni(400,p),c!==t&&(nie(t),tie(c,!0)),aie(t,function(){r(Ni(400,m))});return}if(u)try{s("verify body"),u(t,e,d,l)}catch(g){r(Ni(403,g,{body:d,type:g.type||"entity.verify.failed"}));return}var f=d;try{s("parse body"),f=typeof d!="string"&&l!==null?e4.decode(d,l):d,t.body=n(f)}catch(g){r(Ni(400,g,{body:f,type:g.type||"entity.parse.failed"}));return}r()})}function iie(t,e,r){var n=(t.headers["content-encoding"]||"identity").toLowerCase(),s=t.headers["content-length"],i;if(e('content-encoding "%s"',n),r===!1&&n!=="identity")throw Ni(415,"content encoding unsupported",{encoding:n,type:"encoding.unsupported"});switch(n){case"deflate":i=r4.createInflate(),e("inflate body"),t.pipe(i);break;case"gzip":i=r4.createGunzip(),e("gunzip body"),t.pipe(i);break;case"identity":i=t,i.length=s;break;default:throw Ni(415,'unsupported content encoding "'+n+'"',{encoding:n,type:"encoding.unsupported"})}return i}function aie(t,e){t4.isFinished(t)?e(null):(t4(t,e),t.resume())}});var o4=P(OS=>{var s4=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,oie=/^[\u0020-\u007e\u0080-\u00ff]+$/,a4=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,cie=/\\([\u0000-\u007f])/g,lie=/([\\"])/g,uie=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,i4=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,pie=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;OS.format=die;OS.parse=mie;function die(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.subtype,n=t.suffix,s=t.type;if(!s||!i4.test(s))throw new TypeError("invalid type");if(!r||!uie.test(r))throw new TypeError("invalid subtype");var i=s+"/"+r;if(n){if(!i4.test(n))throw new TypeError("invalid suffix");i+="+"+n}if(e&&typeof e=="object")for(var a,o=Object.keys(e).sort(),c=0;c0&&!oie.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(lie,"\\$1")+'"'}function gie(t){var e=pie.exec(t.toLowerCase());if(!e)throw new TypeError("invalid media type");var r=e[1],n=e[2],s,i=n.lastIndexOf("+");i!==-1&&(s=n.substr(i+1),n=n.substr(0,i));var a={type:r,subtype:n,suffix:s};return a}});var c4=P((KNe,vie)=>{vie.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var u4=P((JNe,l4)=>{l4.exports=c4()});var m4=P(dn=>{"use strict";var Hh=u4(),yie=require("path").extname,p4=/^\s*([^;\s]*)(?:;|\s|$)/,bie=/^text\//i;dn.charset=d4;dn.charsets={lookup:d4};dn.contentType=xie;dn.extension=_ie;dn.extensions=Object.create(null);dn.lookup=wie;dn.types=Object.create(null);Sie(dn.extensions,dn.types);function d4(t){if(!t||typeof t!="string")return!1;var e=p4.exec(t),r=e&&Hh[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&bie.test(e[1])?"UTF-8":!1}function xie(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?dn.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=dn.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function _ie(t){if(!t||typeof t!="string")return!1;var e=p4.exec(t),r=e&&dn.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function wie(t){if(!t||typeof t!="string")return!1;var e=yie("x."+t).toLowerCase().substr(1);return e&&dn.types[e]||!1}function Sie(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(Hh).forEach(function(s){var i=Hh[s],a=i.extensions;if(!(!a||!a.length)){t[s]=a;for(var o=0;ou||l===u&&e[c].substr(0,12)==="application/"))continue}e[c]=s}}})}});var fc=P((YNe,mc)=>{"use strict";var f4=o4(),kie=m4();mc.exports=Eie;mc.exports.is=h4;mc.exports.hasBody=g4;mc.exports.normalize=v4;mc.exports.match=y4;function h4(t,e){var r,n=e,s=Rie(t);if(!s)return!1;if(n&&!Array.isArray(n))for(n=new Array(arguments.length-1),r=0;r2){r=new Array(arguments.length-1);for(var n=0;n{"use strict";var Pie=ic(),Iie=np(),Cie=Oa(),Di=pp()("body-parser:json"),Oie=gp(),x4=fc();w4.exports=Nie;var Aie=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,b4="#",jie=/#+/g;function Nie(t){var e=t||{},r=typeof e.limit!="number"?Pie.parse(e.limit||"100kb"):e.limit,n=e.inflate!==!1,s=e.reviver,i=e.strict!==!1,a=e.type||"application/json",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var c=typeof a!="function"?$ie(a):a;function l(u){if(u.length===0)return{};if(i){var p=Mie(u);if(p!=="{"&&p!=="[")throw Di("strict violation"),Die(u,p)}try{return Di("parse json"),JSON.parse(u,s)}catch(d){throw _4(d,{message:d.message,stack:d.stack})}}return function(p,d,m){if(p._body){Di("body already parsed"),m();return}if(p.body=p.body||{},!x4.hasBody(p)){Di("skip empty body"),m();return}if(Di("content-type %j",p.headers["content-type"]),!c(p)){Di("skip parsing"),m();return}var f=zie(p)||"utf-8";if(f.slice(0,4)!=="utf-"){Di("invalid charset"),m(Cie(415,'unsupported charset "'+f.toUpperCase()+'"',{charset:f,type:"charset.unsupported"}));return}Oie(p,d,m,l,Di,{encoding:f,inflate:n,limit:r,verify:o})}}function Die(t,e){var r=t.indexOf(e),n="";if(r!==-1){n=t.substring(0,r)+b4;for(var s=r+1;s{"use strict";var Lie=ic(),vp=pp()("body-parser:raw"),Uie=gp(),k4=fc();E4.exports=qie;function qie(t){var e=t||{},r=e.inflate!==!1,n=typeof e.limit!="number"?Lie.parse(e.limit||"100kb"):e.limit,s=e.type||"application/octet-stream",i=e.verify||!1;if(i!==!1&&typeof i!="function")throw new TypeError("option verify must be function");var a=typeof s!="function"?Fie(s):s;function o(c){return c}return function(l,u,p){if(l._body){vp("body already parsed"),p();return}if(l.body=l.body||{},!k4.hasBody(l)){vp("skip empty body"),p();return}if(vp("content-type %j",l.headers["content-type"]),!a(l)){vp("skip parsing"),p();return}Uie(l,u,p,o,vp,{encoding:null,inflate:r,limit:n,verify:i})}}function Fie(t){return function(r){return!!k4(r,t)}}});var I4=P((tDe,P4)=>{"use strict";var Hie=ic(),Bie=np(),yp=pp()("body-parser:text"),Wie=gp(),R4=fc();P4.exports=Zie;function Zie(t){var e=t||{},r=e.defaultCharset||"utf-8",n=e.inflate!==!1,s=typeof e.limit!="number"?Hie.parse(e.limit||"100kb"):e.limit,i=e.type||"text/plain",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var o=typeof i!="function"?Vie(i):i;function c(l){return l}return function(u,p,d){if(u._body){yp("body already parsed"),d();return}if(u.body=u.body||{},!R4.hasBody(u)){yp("skip empty body"),d();return}if(yp("content-type %j",u.headers["content-type"]),!o(u)){yp("skip parsing"),d();return}var m=Gie(u)||r;Wie(u,p,d,c,yp,{encoding:m,inflate:n,limit:s,verify:a})}}function Gie(t){try{return(Bie.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function Vie(t){return function(r){return!!R4(r,t)}}});var za=P((rDe,C4)=>{"use strict";C4.exports=TypeError});var A4=P((nDe,O4)=>{O4.exports=require("util").inspect});var Sp=P((sDe,Y4)=>{var qS=typeof Map=="function"&&Map.prototype,AS=Object.getOwnPropertyDescriptor&&qS?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Wh=qS&&AS&&typeof AS.get=="function"?AS.get:null,j4=qS&&Map.prototype.forEach,FS=typeof Set=="function"&&Set.prototype,jS=Object.getOwnPropertyDescriptor&&FS?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Zh=FS&&jS&&typeof jS.get=="function"?jS.get:null,N4=FS&&Set.prototype.forEach,Kie=typeof WeakMap=="function"&&WeakMap.prototype,xp=Kie?WeakMap.prototype.has:null,Jie=typeof WeakSet=="function"&&WeakSet.prototype,_p=Jie?WeakSet.prototype.has:null,Qie=typeof WeakRef=="function"&&WeakRef.prototype,D4=Qie?WeakRef.prototype.deref:null,Yie=Boolean.prototype.valueOf,Xie=Object.prototype.toString,eae=Function.prototype.toString,tae=String.prototype.match,HS=String.prototype.slice,Mi=String.prototype.replace,rae=String.prototype.toUpperCase,M4=String.prototype.toLowerCase,W4=RegExp.prototype.test,z4=Array.prototype.concat,Ms=Array.prototype.join,nae=Array.prototype.slice,$4=Math.floor,MS=typeof BigInt=="function"?BigInt.prototype.valueOf:null,NS=Object.getOwnPropertySymbols,zS=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,hc=typeof Symbol=="function"&&typeof Symbol.iterator=="object",wp=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===hc||!0)?Symbol.toStringTag:null,Z4=Object.prototype.propertyIsEnumerable,L4=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function U4(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||W4.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-$4(-t):$4(t);if(n!==t){var s=String(n),i=HS.call(e,s.length+1);return Mi.call(s,r,"$&_")+"."+Mi.call(Mi.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Mi.call(e,r,"$&_")}var $S=A4(),q4=$S.custom,F4=K4(q4)?q4:null,G4={__proto__:null,double:'"',single:"'"},sae={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};Y4.exports=function t(e,r,n,s){var i=r||{};if(ri(i,"quoteStyle")&&!ri(G4,i.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(ri(i,"maxStringLength")&&(typeof i.maxStringLength=="number"?i.maxStringLength<0&&i.maxStringLength!==1/0:i.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var a=ri(i,"customInspect")?i.customInspect:!0;if(typeof a!="boolean"&&a!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(ri(i,"indent")&&i.indent!==null&&i.indent!==" "&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(ri(i,"numericSeparator")&&typeof i.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=i.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return Q4(e,i);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return o?U4(e,c):c}if(typeof e=="bigint"){var l=String(e)+"n";return o?U4(e,l):l}var u=typeof i.depth>"u"?5:i.depth;if(typeof n>"u"&&(n=0),n>=u&&u>0&&typeof e=="object")return LS(e)?"[Array]":"[Object]";var p=wae(i,n);if(typeof s>"u")s=[];else if(J4(s,e)>=0)return"[Circular]";function d(q,Z,se){if(Z&&(s=nae.call(s),s.push(Z)),se){var K={depth:i.depth};return ri(i,"quoteStyle")&&(K.quoteStyle=i.quoteStyle),t(q,K,n+1,s)}return t(q,i,n+1,s)}if(typeof e=="function"&&!H4(e)){var m=mae(e),f=Bh(e,d);return"[Function"+(m?": "+m:" (anonymous)")+"]"+(f.length>0?" { "+Ms.call(f,", ")+" }":"")}if(K4(e)){var g=hc?Mi.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):zS.call(e);return typeof e=="object"&&!hc?bp(g):g}if(bae(e)){for(var v="<"+M4.call(String(e.nodeName)),h=e.attributes||[],y=0;y",v}if(LS(e)){if(e.length===0)return"[]";var b=Bh(e,d);return p&&!_ae(b)?"["+US(b,p)+"]":"[ "+Ms.call(b,", ")+" ]"}if(oae(e)){var x=Bh(e,d);return!("cause"in Error.prototype)&&"cause"in e&&!Z4.call(e,"cause")?"{ ["+String(e)+"] "+Ms.call(z4.call("[cause]: "+d(e.cause),x),", ")+" }":x.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+Ms.call(x,", ")+" }"}if(typeof e=="object"&&a){if(F4&&typeof e[F4]=="function"&&$S)return $S(e,{depth:u-n});if(a!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(fae(e)){var w=[];return j4&&j4.call(e,function(q,Z){w.push(d(Z,e,!0)+" => "+d(q,e))}),B4("Map",Wh.call(e),w,p)}if(vae(e)){var S=[];return N4&&N4.call(e,function(q){S.push(d(q,e))}),B4("Set",Zh.call(e),S,p)}if(hae(e))return DS("WeakMap");if(yae(e))return DS("WeakSet");if(gae(e))return DS("WeakRef");if(lae(e))return bp(d(Number(e)));if(pae(e))return bp(d(MS.call(e)));if(uae(e))return bp(Yie.call(e));if(cae(e))return bp(d(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(typeof globalThis<"u"&&e===globalThis||typeof global<"u"&&e===global)return"{ [object globalThis] }";if(!aae(e)&&!H4(e)){var k=Bh(e,d),E=L4?L4(e)===Object.prototype:e instanceof Object||e.constructor===Object,R=e instanceof Object?"":"null prototype",O=!E&&wp&&Object(e)===e&&wp in e?HS.call(zi(e),8,-1):R?"Object":"",C=E||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",U=C+(O||R?"["+Ms.call(z4.call([],O||[],R||[]),": ")+"] ":"");return k.length===0?U+"{}":p?U+"{"+US(k,p)+"}":U+"{ "+Ms.call(k,", ")+" }"}return String(e)};function V4(t,e,r){var n=r.quoteStyle||e,s=G4[n];return s+t+s}function iae(t){return Mi.call(String(t),/"/g,""")}function $a(t){return!wp||!(typeof t=="object"&&(wp in t||typeof t[wp]<"u"))}function LS(t){return zi(t)==="[object Array]"&&$a(t)}function aae(t){return zi(t)==="[object Date]"&&$a(t)}function H4(t){return zi(t)==="[object RegExp]"&&$a(t)}function oae(t){return zi(t)==="[object Error]"&&$a(t)}function cae(t){return zi(t)==="[object String]"&&$a(t)}function lae(t){return zi(t)==="[object Number]"&&$a(t)}function uae(t){return zi(t)==="[object Boolean]"&&$a(t)}function K4(t){if(hc)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!zS)return!1;try{return zS.call(t),!0}catch{}return!1}function pae(t){if(!t||typeof t!="object"||!MS)return!1;try{return MS.call(t),!0}catch{}return!1}var dae=Object.prototype.hasOwnProperty||function(t){return t in this};function ri(t,e){return dae.call(t,e)}function zi(t){return Xie.call(t)}function mae(t){if(t.name)return t.name;var e=tae.call(eae.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function J4(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return Q4(HS.call(t,0,e.maxStringLength),e)+n}var s=sae[e.quoteStyle||"single"];s.lastIndex=0;var i=Mi.call(Mi.call(t,s,"\\$1"),/[\x00-\x1f]/g,xae);return V4(i,"single",e)}function xae(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+rae.call(e.toString(16))}function bp(t){return"Object("+t+")"}function DS(t){return t+" { ? }"}function B4(t,e,r,n){var s=n?US(r,n):Ms.call(r,", ");return t+" ("+e+") {"+s+"}"}function _ae(t){for(var e=0;e=0)return!1;return!0}function wae(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=Ms.call(Array(t.indent+1)," ");else return null;return{base:r,prev:Ms.call(Array(e+1),r)}}function US(t,e){if(t.length===0)return"";var r=` +\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var xz=P(bz=>{"use strict";var uc=Aa().Buffer;bz._dbcs=ti;var pn=-1,yz=-2,Fn=-10,Ds=-1e3,lc=new Array(256),mp=-1;for(Nh=0;Nh<256;Nh++)lc[Nh]=pn;var Nh;function ti(t,e){if(this.encodingName=t.encodingName,!t)throw new Error("DBCS codec is called without the data.");if(!t.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=t.table();this.decodeTables=[],this.decodeTables[0]=lc.slice(0),this.decodeTableSeq=[];for(var n=0;n0;t>>=8)e.push(t&255);e.length==0&&e.push(0);for(var r=this.decodeTables[0],n=e.length-1;n>0;n--){var s=r[e[n]];if(s==pn)r[e[n]]=Ds-this.decodeTables.length,this.decodeTables.push(r=lc.slice(0));else if(s<=Ds)r=this.decodeTables[Ds-s];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+t.toString(16))}return r};ti.prototype._addDecodeChunk=function(t){var e=parseInt(t[0],16),r=this._getDecodeTrieNode(e);e=e&255;for(var n=1;n255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+t[0]+": too long"+e)};ti.prototype._getEncodeBucket=function(t){var e=t>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=lc.slice(0)),this.encodeTable[e]};ti.prototype._setEncodeChar=function(t,e){var r=this._getEncodeBucket(t),n=t&255;r[n]<=Fn?this.encodeTableSeq[Fn-r[n]][mp]=e:r[n]==pn&&(r[n]=e)};ti.prototype._setEncodeSequence=function(t,e){var r=t[0],n=this._getEncodeBucket(r),s=r&255,i;n[s]<=Fn?i=this.encodeTableSeq[Fn-n[s]]:(i={},n[s]!==pn&&(i[mp]=n[s]),n[s]=Fn-this.encodeTableSeq.length,this.encodeTableSeq.push(i));for(var a=1;a=0?this._setEncodeChar(i,a):i<=Ds?this._fillEncodeTable(Ds-i,a<<8,r):i<=Fn&&this._setEncodeSequence(this.decodeTableSeq[Fn-i],a))}};function Dh(t,e){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=e.encodeTable,this.encodeTableSeq=e.encodeTableSeq,this.defaultCharSingleByte=e.defCharSB,this.gb18030=e.gb18030}Dh.prototype.write=function(t){for(var e=uc.alloc(t.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,s=-1,i=0,a=0;;){if(s===-1){if(i==t.length)break;var o=t.charCodeAt(i++)}else{var o=s;s=-1}if(55296<=o&&o<57344)if(o<56320)if(r===-1){r=o;continue}else r=o,o=pn;else r!==-1?(o=65536+(r-55296)*1024+(o-56320),r=-1):o=pn;else r!==-1&&(s=o,o=pn,r=-1);var c=pn;if(n!==void 0&&o!=pn){var l=n[o];if(typeof l=="object"){n=l;continue}else typeof l=="number"?c=l:l==null&&(l=n[mp],l!==void 0&&(c=l,s=o));n=void 0}else if(o>=0){var u=this.encodeTable[o>>8];if(u!==void 0&&(c=u[o&255]),c<=Fn){n=this.encodeTableSeq[Fn-c];continue}if(c==pn&&this.gb18030){var p=wS(this.gb18030.uChars,o);if(p!=-1){var c=this.gb18030.gbChars[p]+(o-this.gb18030.uChars[p]);e[a++]=129+Math.floor(c/12600),c=c%12600,e[a++]=48+Math.floor(c/1260),c=c%1260,e[a++]=129+Math.floor(c/10),c=c%10,e[a++]=48+c;continue}}}c===pn&&(c=this.defaultCharSingleByte),c<256?e[a++]=c:c<65536?(e[a++]=c>>8,e[a++]=c&255):(e[a++]=c>>16,e[a++]=c>>8&255,e[a++]=c&255)}return this.seqObj=n,this.leadSurrogate=r,e.slice(0,a)};Dh.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var t=uc.alloc(10),e=0;if(this.seqObj){var r=this.seqObj[mp];r!==void 0&&(r<256?t[e++]=r:(t[e++]=r>>8,t[e++]=r&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(t[e++]=this.defaultCharSingleByte,this.leadSurrogate=-1),t.slice(0,e)}};Dh.prototype.findIdx=wS;function _S(t,e){this.nodeIdx=0,this.prevBuf=uc.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}_S.prototype.write=function(t){var e=uc.alloc(t.length*2),r=this.nodeIdx,n=this.prevBuf,s=this.prevBuf.length,i=-this.prevBuf.length,a;s>0&&(n=uc.concat([n,t.slice(0,10)]));for(var o=0,c=0;o=0?t[o]:n[o+s],a=this.decodeTables[r][l];if(!(a>=0))if(a===pn)o=i,a=this.defaultCharUnicode.charCodeAt(0);else if(a===yz){var u=i>=0?t.slice(i,o+1):n.slice(i+s,o+1+s),p=(u[0]-129)*12600+(u[1]-48)*1260+(u[2]-129)*10+(u[3]-48),d=wS(this.gb18030.gbChars,p);a=this.gb18030.uChars[d]+p-this.gb18030.gbChars[d]}else if(a<=Ds){r=Ds-a;continue}else if(a<=Fn){for(var m=this.decodeTableSeq[Fn-a],f=0;f>8;a=m[m.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+a+" at "+r+"/"+l);if(a>65535){a-=65536;var g=55296+Math.floor(a/1024);e[c++]=g&255,e[c++]=g>>8,a=56320+a%1024}e[c++]=a&255,e[c++]=a>>8,r=0,i=o+1}return this.nodeIdx=r,this.prevBuf=i>=0?t.slice(i):n.slice(i+s),e.slice(0,c).toString("ucs2")};_S.prototype.end=function(){for(var t="";this.prevBuf.length>0;){t+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=uc.alloc(0),this.nodeIdx=0,e.length>0&&(t+=this.write(e))}return this.nodeIdx=0,t};function wS(t,e){if(t[0]>e)return-1;for(var r=0,n=t.length;r{xse.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var wz=P((kNe,_se)=>{_se.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var Mh=P((TNe,wse)=>{wse.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var SS=P((RNe,Sse)=>{Sse.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\uE7C7"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93]]});var Sz=P((PNe,Ese)=>{Ese.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var Ez=P((INe,kse)=>{kse.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var ES=P((CNe,Tse)=>{Tse.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var kz=P((ONe,Rse)=>{Rse.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var Rz=P((ANe,Tz)=>{"use strict";Tz.exports={shiftjis:{type:"_dbcs",table:function(){return _z()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return wz()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return Mh()}},gbk:{type:"_dbcs",table:function(){return Mh().concat(SS())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return Mh().concat(SS())},gb18030:function(){return Sz()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return Ez()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return ES()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return ES().concat(kz())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var Cz=P((Iz,pc)=>{"use strict";var Pz=[oz(),lz(),pz(),mz(),hz(),vz(),xz(),Rz()];for(zh=0;zh{"use strict";var Oz=require("buffer").Buffer,Lh=require("stream").Transform;Az.exports=function(t){t.encodeStream=function(r,n){return new Na(t.getEncoder(r,n),n)},t.decodeStream=function(r,n){return new ji(t.getDecoder(r,n),n)},t.supportsStreams=!0,t.IconvLiteEncoderStream=Na,t.IconvLiteDecoderStream=ji,t._collect=ji.prototype.collect};function Na(t,e){this.conv=t,e=e||{},e.decodeStrings=!1,Lh.call(this,e)}Na.prototype=Object.create(Lh.prototype,{constructor:{value:Na}});Na.prototype._transform=function(t,e,r){if(typeof t!="string")return r(new Error("Iconv encoding stream needs strings as its input."));try{var n=this.conv.write(t);n&&n.length&&this.push(n),r()}catch(s){r(s)}};Na.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e),t()}catch(r){t(r)}};Na.prototype.collect=function(t){var e=[];return this.on("error",t),this.on("data",function(r){e.push(r)}),this.on("end",function(){t(null,Oz.concat(e))}),this};function ji(t,e){this.conv=t,e=e||{},e.encoding=this.encoding="utf8",Lh.call(this,e)}ji.prototype=Object.create(Lh.prototype,{constructor:{value:ji}});ji.prototype._transform=function(t,e,r){if(!Oz.isBuffer(t))return r(new Error("Iconv decoding stream needs buffers as its input."));try{var n=this.conv.write(t);n&&n.length&&this.push(n,this.encoding),r()}catch(s){r(s)}};ji.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),t()}catch(r){t(r)}};ji.prototype.collect=function(t){var e="";return this.on("error",t),this.on("data",function(r){e+=r}),this.on("end",function(){t(null,e)}),this}});var Dz=P((NNe,Nz)=>{"use strict";var Bt=require("buffer").Buffer;Nz.exports=function(t){var e=void 0;t.supportsNodeEncodingsExtension=!(Bt.from||new Bt(0)instanceof Uint8Array),t.extendNodeEncodings=function(){if(!e){if(e={},!t.supportsNodeEncodingsExtension){console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");return}var n={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};Bt.isNativeEncoding=function(a){return a&&n[a.toLowerCase()]};var s=require("buffer").SlowBuffer;if(e.SlowBufferToString=s.prototype.toString,s.prototype.toString=function(a,o,c){return a=String(a||"utf8").toLowerCase(),Bt.isNativeEncoding(a)?e.SlowBufferToString.call(this,a,o,c):(typeof o>"u"&&(o=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(o,c),a))},e.SlowBufferWrite=s.prototype.write,s.prototype.write=function(a,o,c,l){if(isFinite(o))isFinite(c)||(l=c,c=void 0);else{var u=l;l=o,o=c,c=u}o=+o||0;var p=this.length-o;if(c?(c=+c,c>p&&(c=p)):c=p,l=String(l||"utf8").toLowerCase(),Bt.isNativeEncoding(l))return e.SlowBufferWrite.call(this,a,o,c,l);if(a.length>0&&(c<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var d=t.encode(a,l);return d.length"u"&&(o=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(o,c),a))},e.BufferWrite=Bt.prototype.write,Bt.prototype.write=function(a,o,c,l){var u=o,p=c,d=l;if(isFinite(o))isFinite(c)||(l=c,c=void 0);else{var m=l;l=o,o=c,c=m}if(l=String(l||"utf8").toLowerCase(),Bt.isNativeEncoding(l))return e.BufferWrite.call(this,a,u,p,d);o=+o||0;var f=this.length-o;if(c?(c=+c,c>f&&(c=f)):c=f,a.length>0&&(c<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var g=t.encode(a,l);return g.length{"use strict";var zz=Aa().Buffer,$z=sz(),it=Lz.exports;it.encodings=null;it.defaultCharUnicode="\uFFFD";it.defaultCharSingleByte="?";it.encode=function(e,r,n){e=""+(e||"");var s=it.getEncoder(r,n),i=s.write(e),a=s.end();return a&&a.length>0?zz.concat([i,a]):i};it.decode=function(e,r,n){typeof e=="string"&&(it.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),it.skipDecodeWarning=!0),e=zz.from(""+(e||""),"binary"));var s=it.getDecoder(r,n),i=s.write(e),a=s.end();return a?i+a:i};it.encodingExists=function(e){try{return it.getCodec(e),!0}catch{return!1}};it.toEncoding=it.encode;it.fromEncoding=it.decode;it._codecDataCache={};it.getCodec=function(e){it.encodings||(it.encodings=Cz());for(var r=it._canonicalizeEncoding(e),n={};;){var s=it._codecDataCache[r];if(s)return s;var i=it.encodings[r];switch(typeof i){case"string":r=i;break;case"object":for(var a in i)n[a]=i[a];n.encodingName||(n.encodingName=r),r=i.type;break;case"function":return n.encodingName||(n.encodingName=r),s=new i(n,it),it._codecDataCache[n.encodingName]=s,s;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+r+"')")}}};it._canonicalizeEncoding=function(t){return(""+t).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};it.getEncoder=function(e,r){var n=it.getCodec(e),s=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(s=new $z.PrependBOM(s,r)),s};it.getDecoder=function(e,r){var n=it.getCodec(e),s=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(s=new $z.StripBOM(s,r)),s};var Mz=typeof process<"u"&&process.versions&&process.versions.node;Mz&&(kS=Mz.split(".").map(Number),(kS[0]>0||kS[1]>=10)&&jz()(it),Dz()(it));var kS});var Uh=P((MNe,Uz)=>{"use strict";Uz.exports=Ise;function Pse(t){for(var e=t.listeners("data"),r=0;r{"use strict";var qz=zse(),Cse=sc(),Da=Ca(),Ose=TS(),Ase=Uh();Hz.exports=Dse;var jse=/^Encoding not recognized: /;function Nse(t){if(!t)return null;try{return Ose.getDecoder(t)}catch(e){throw jse.test(e.message)?Da(415,"specified encoding unsupported",{encoding:t,type:"encoding.unsupported"}):e}}function Dse(t,e,r){var n=r,s=e||{};if(t===void 0)throw new TypeError("argument stream is required");if(typeof t!="object"||t===null||typeof t.on!="function")throw new TypeError("argument stream must be a stream");if((e===!0||typeof e=="string")&&(s={encoding:e}),typeof e=="function"&&(n=e,s={}),n!==void 0&&typeof n!="function")throw new TypeError("argument callback must be a function");if(!n&&!global.Promise)throw new TypeError("argument callback is required");var i=s.encoding!==!0?s.encoding:"utf-8",a=Cse.parse(s.limit),o=s.length!=null&&!isNaN(s.length)?parseInt(s.length,10):null;return n?Fz(t,i,o,a,$se(n)):new Promise(function(l,u){Fz(t,i,o,a,function(d,m){if(d)return u(d);l(m)})})}function Mse(t){Ase(t),typeof t.pause=="function"&&t.pause()}function Fz(t,e,r,n,s){var i=!1,a=!0;if(n!==null&&r!==null&&r>n)return p(Da(413,"request entity too large",{expected:r,length:r,limit:n,type:"entity.too.large"}));var o=t._readableState;if(t._decoder||o&&(o.encoding||o.decoder))return p(Da(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof t.readable<"u"&&!t.readable)return p(Da(500,"stream is not readable",{type:"stream.not.readable"}));var c=0,l;try{l=Nse(e)}catch(v){return p(v)}var u=l?"":[];t.on("aborted",d),t.on("close",g),t.on("data",m),t.on("end",f),t.on("error",f),a=!1;function p(){for(var v=new Array(arguments.length),h=0;hn?p(Da(413,"request entity too large",{limit:n,received:c,type:"entity.too.large"})):l?u+=l.write(v):u.push(v))}function f(v){if(!i){if(v)return p(v);if(r!==null&&c!==r)p(Da(400,"request size did not match content length",{expected:r,length:r,received:c,type:"request.size.invalid"}));else{var h=l?u+(l.end()||""):Buffer.concat(u);p(null,h)}}}function g(){u=null,t.removeListener("aborted",d),t.removeListener("data",m),t.removeListener("end",f),t.removeListener("error",f),t.removeListener("close",g)}}function zse(){try{return require("async_hooks")}catch{return{}}}function $se(t){var e;return qz.AsyncResource&&(e=new qz.AsyncResource(t.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?t:e.runInAsyncScope.bind(e,t,null)}});var Zz=P(($Ne,Wz)=>{"use strict";Wz.exports=Lse;function Lse(t,e){if(!Array.isArray(t))throw new TypeError("arg must be an array of [ee, events...] arrays");for(var r=[],n=0;n{"use strict";RS.exports=Fse;RS.exports.isFinished=Kz;var Gz=Gse(),Vz=Zz(),qse=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))};function Fse(t,e){return Kz(t)!==!1?(qse(e,null,t),t):(Bse(t,Vse(e)),t)}function Kz(t){var e=t.socket;if(typeof t.finished=="boolean")return!!(t.finished||e&&!e.writable);if(typeof t.complete=="boolean")return!!(t.upgrade||!e||!e.readable||t.complete&&!t.readable)}function Hse(t,e){var r,n,s=!1;function i(o){r.cancel(),n.cancel(),s=!0,e(o)}r=n=Vz([[t,"end","finish"]],i);function a(o){t.removeListener("socket",a),!s&&r===n&&(n=Vz([[o,"error","close"]],i))}if(t.socket){a(t.socket);return}t.on("socket",a),t.socket===void 0&&Zse(t,a)}function Bse(t,e){var r=t.__onFinished;(!r||!r.queue)&&(r=t.__onFinished=Wse(t),Hse(t,r)),r.queue.push(e)}function Wse(t){function e(r){if(t.__onFinished===e&&(t.__onFinished=null),!!e.queue){var n=e.queue;e.queue=null;for(var s=0;s{"use strict";var Ni=Ca(),Kse=Qw(),Jse=Bz(),Jz=TS(),Qz=fp(),Qse=Uh(),Yz=require("zlib");Xz.exports=Yse;function Yse(t,e,r,n,s,i){var a,o=i,c;t._body=!0;var l=o.encoding!==null?o.encoding:null,u=o.verify;try{c=Xse(t,s,o.inflate),a=c.length,c.length=void 0}catch(p){return r(p)}if(o.length=a,o.encoding=u?null:l,o.encoding===null&&l!==null&&!Jz.encodingExists(l))return r(Ni(415,'unsupported charset "'+l.toUpperCase()+'"',{charset:l.toLowerCase(),type:"charset.unsupported"}));s("read body"),Jse(c,o,function(p,d){if(p){var m;p.type==="encoding.unsupported"?m=Ni(415,'unsupported charset "'+l.toUpperCase()+'"',{charset:l.toLowerCase(),type:"charset.unsupported"}):m=Ni(400,p),c!==t&&(Qse(t),Kse(c,!0)),eie(t,function(){r(Ni(400,m))});return}if(u)try{s("verify body"),u(t,e,d,l)}catch(g){r(Ni(403,g,{body:d,type:g.type||"entity.verify.failed"}));return}var f=d;try{s("parse body"),f=typeof d!="string"&&l!==null?Jz.decode(d,l):d,t.body=n(f)}catch(g){r(Ni(400,g,{body:f,type:g.type||"entity.parse.failed"}));return}r()})}function Xse(t,e,r){var n=(t.headers["content-encoding"]||"identity").toLowerCase(),s=t.headers["content-length"],i;if(e('content-encoding "%s"',n),r===!1&&n!=="identity")throw Ni(415,"content encoding unsupported",{encoding:n,type:"encoding.unsupported"});switch(n){case"deflate":i=Yz.createInflate(),e("inflate body"),t.pipe(i);break;case"gzip":i=Yz.createGunzip(),e("gunzip body"),t.pipe(i);break;case"identity":i=t,i.length=s;break;default:throw Ni(415,'unsupported content encoding "'+n+'"',{encoding:n,type:"encoding.unsupported"})}return i}function eie(t,e){Qz.isFinished(t)?e(null):(Qz(t,e),t.resume())}});var n4=P(PS=>{var e4=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,tie=/^[\u0020-\u007e\u0080-\u00ff]+$/,r4=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,rie=/\\([\u0000-\u007f])/g,nie=/([\\"])/g,sie=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,t4=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,iie=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;PS.format=aie;PS.parse=oie;function aie(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.subtype,n=t.suffix,s=t.type;if(!s||!t4.test(s))throw new TypeError("invalid type");if(!r||!sie.test(r))throw new TypeError("invalid subtype");var i=s+"/"+r;if(n){if(!t4.test(n))throw new TypeError("invalid suffix");i+="+"+n}if(e&&typeof e=="object")for(var a,o=Object.keys(e).sort(),c=0;c0&&!tie.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(nie,"\\$1")+'"'}function uie(t){var e=iie.exec(t.toLowerCase());if(!e)throw new TypeError("invalid media type");var r=e[1],n=e[2],s,i=n.lastIndexOf("+");i!==-1&&(s=n.substr(i+1),n=n.substr(0,i));var a={type:r,subtype:n,suffix:s};return a}});var s4=P((FNe,pie)=>{pie.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var a4=P((HNe,i4)=>{i4.exports=s4()});var l4=P(dn=>{"use strict";var qh=a4(),die=require("path").extname,o4=/^\s*([^;\s]*)(?:;|\s|$)/,mie=/^text\//i;dn.charset=c4;dn.charsets={lookup:c4};dn.contentType=fie;dn.extension=hie;dn.extensions=Object.create(null);dn.lookup=gie;dn.types=Object.create(null);vie(dn.extensions,dn.types);function c4(t){if(!t||typeof t!="string")return!1;var e=o4.exec(t),r=e&&qh[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&mie.test(e[1])?"UTF-8":!1}function fie(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?dn.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=dn.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function hie(t){if(!t||typeof t!="string")return!1;var e=o4.exec(t),r=e&&dn.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function gie(t){if(!t||typeof t!="string")return!1;var e=die("x."+t).toLowerCase().substr(1);return e&&dn.types[e]||!1}function vie(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(qh).forEach(function(s){var i=qh[s],a=i.extensions;if(!(!a||!a.length)){t[s]=a;for(var o=0;ou||l===u&&e[c].substr(0,12)==="application/"))continue}e[c]=s}}})}});var mc=P((WNe,dc)=>{"use strict";var u4=n4(),yie=l4();dc.exports=bie;dc.exports.is=p4;dc.exports.hasBody=d4;dc.exports.normalize=m4;dc.exports.match=f4;function p4(t,e){var r,n=e,s=_ie(t);if(!s)return!1;if(n&&!Array.isArray(n))for(n=new Array(arguments.length-1),r=0;r2){r=new Array(arguments.length-1);for(var n=0;n{"use strict";var wie=sc(),Sie=rp(),Eie=Ca(),Di=up()("body-parser:json"),kie=hp(),g4=mc();y4.exports=Pie;var Tie=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,h4="#",Rie=/#+/g;function Pie(t){var e=t||{},r=typeof e.limit!="number"?wie.parse(e.limit||"100kb"):e.limit,n=e.inflate!==!1,s=e.reviver,i=e.strict!==!1,a=e.type||"application/json",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var c=typeof a!="function"?Aie(a):a;function l(u){if(u.length===0)return{};if(i){var p=Cie(u);if(p!=="{"&&p!=="[")throw Di("strict violation"),Iie(u,p)}try{return Di("parse json"),JSON.parse(u,s)}catch(d){throw v4(d,{message:d.message,stack:d.stack})}}return function(p,d,m){if(p._body){Di("body already parsed"),m();return}if(p.body=p.body||{},!g4.hasBody(p)){Di("skip empty body"),m();return}if(Di("content-type %j",p.headers["content-type"]),!c(p)){Di("skip parsing"),m();return}var f=Oie(p)||"utf-8";if(f.slice(0,4)!=="utf-"){Di("invalid charset"),m(Eie(415,'unsupported charset "'+f.toUpperCase()+'"',{charset:f,type:"charset.unsupported"}));return}kie(p,d,m,l,Di,{encoding:f,inflate:n,limit:r,verify:o})}}function Iie(t,e){var r=t.indexOf(e),n="";if(r!==-1){n=t.substring(0,r)+h4;for(var s=r+1;s{"use strict";var jie=sc(),gp=up()("body-parser:raw"),Nie=hp(),x4=mc();_4.exports=Die;function Die(t){var e=t||{},r=e.inflate!==!1,n=typeof e.limit!="number"?jie.parse(e.limit||"100kb"):e.limit,s=e.type||"application/octet-stream",i=e.verify||!1;if(i!==!1&&typeof i!="function")throw new TypeError("option verify must be function");var a=typeof s!="function"?Mie(s):s;function o(c){return c}return function(l,u,p){if(l._body){gp("body already parsed"),p();return}if(l.body=l.body||{},!x4.hasBody(l)){gp("skip empty body"),p();return}if(gp("content-type %j",l.headers["content-type"]),!a(l)){gp("skip parsing"),p();return}Nie(l,u,p,o,gp,{encoding:null,inflate:r,limit:n,verify:i})}}function Mie(t){return function(r){return!!x4(r,t)}}});var k4=P((VNe,E4)=>{"use strict";var zie=sc(),$ie=rp(),vp=up()("body-parser:text"),Lie=hp(),S4=mc();E4.exports=Uie;function Uie(t){var e=t||{},r=e.defaultCharset||"utf-8",n=e.inflate!==!1,s=typeof e.limit!="number"?zie.parse(e.limit||"100kb"):e.limit,i=e.type||"text/plain",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var o=typeof i!="function"?Fie(i):i;function c(l){return l}return function(u,p,d){if(u._body){vp("body already parsed"),d();return}if(u.body=u.body||{},!S4.hasBody(u)){vp("skip empty body"),d();return}if(vp("content-type %j",u.headers["content-type"]),!o(u)){vp("skip parsing"),d();return}var m=qie(u)||r;Lie(u,p,d,c,vp,{encoding:m,inflate:n,limit:s,verify:a})}}function qie(t){try{return($ie.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function Fie(t){return function(r){return!!S4(r,t)}}});var Ma=P((KNe,T4)=>{"use strict";T4.exports=TypeError});var P4=P((JNe,R4)=>{R4.exports=require("util").inspect});var wp=P((QNe,V4)=>{var $S=typeof Map=="function"&&Map.prototype,IS=Object.getOwnPropertyDescriptor&&$S?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Hh=$S&&IS&&typeof IS.get=="function"?IS.get:null,I4=$S&&Map.prototype.forEach,LS=typeof Set=="function"&&Set.prototype,CS=Object.getOwnPropertyDescriptor&&LS?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Bh=LS&&CS&&typeof CS.get=="function"?CS.get:null,C4=LS&&Set.prototype.forEach,Hie=typeof WeakMap=="function"&&WeakMap.prototype,bp=Hie?WeakMap.prototype.has:null,Bie=typeof WeakSet=="function"&&WeakSet.prototype,xp=Bie?WeakSet.prototype.has:null,Wie=typeof WeakRef=="function"&&WeakRef.prototype,O4=Wie?WeakRef.prototype.deref:null,Zie=Boolean.prototype.valueOf,Gie=Object.prototype.toString,Vie=Function.prototype.toString,Kie=String.prototype.match,US=String.prototype.slice,Mi=String.prototype.replace,Jie=String.prototype.toUpperCase,A4=String.prototype.toLowerCase,q4=RegExp.prototype.test,j4=Array.prototype.concat,Ms=Array.prototype.join,Qie=Array.prototype.slice,N4=Math.floor,jS=typeof BigInt=="function"?BigInt.prototype.valueOf:null,OS=Object.getOwnPropertySymbols,NS=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,fc=typeof Symbol=="function"&&typeof Symbol.iterator=="object",_p=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===fc||!0)?Symbol.toStringTag:null,F4=Object.prototype.propertyIsEnumerable,D4=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function M4(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||q4.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-N4(-t):N4(t);if(n!==t){var s=String(n),i=US.call(e,s.length+1);return Mi.call(s,r,"$&_")+"."+Mi.call(Mi.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Mi.call(e,r,"$&_")}var DS=P4(),z4=DS.custom,$4=W4(z4)?z4:null,H4={__proto__:null,double:'"',single:"'"},Yie={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};V4.exports=function t(e,r,n,s){var i=r||{};if(ri(i,"quoteStyle")&&!ri(H4,i.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(ri(i,"maxStringLength")&&(typeof i.maxStringLength=="number"?i.maxStringLength<0&&i.maxStringLength!==1/0:i.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var a=ri(i,"customInspect")?i.customInspect:!0;if(typeof a!="boolean"&&a!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(ri(i,"indent")&&i.indent!==null&&i.indent!==" "&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(ri(i,"numericSeparator")&&typeof i.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=i.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return G4(e,i);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return o?M4(e,c):c}if(typeof e=="bigint"){var l=String(e)+"n";return o?M4(e,l):l}var u=typeof i.depth>"u"?5:i.depth;if(typeof n>"u"&&(n=0),n>=u&&u>0&&typeof e=="object")return MS(e)?"[Array]":"[Object]";var p=gae(i,n);if(typeof s>"u")s=[];else if(Z4(s,e)>=0)return"[Circular]";function d(q,Z,se){if(Z&&(s=Qie.call(s),s.push(Z)),se){var K={depth:i.depth};return ri(i,"quoteStyle")&&(K.quoteStyle=i.quoteStyle),t(q,K,n+1,s)}return t(q,i,n+1,s)}if(typeof e=="function"&&!L4(e)){var m=oae(e),f=Fh(e,d);return"[Function"+(m?": "+m:" (anonymous)")+"]"+(f.length>0?" { "+Ms.call(f,", ")+" }":"")}if(W4(e)){var g=fc?Mi.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):NS.call(e);return typeof e=="object"&&!fc?yp(g):g}if(mae(e)){for(var v="<"+A4.call(String(e.nodeName)),h=e.attributes||[],y=0;y",v}if(MS(e)){if(e.length===0)return"[]";var b=Fh(e,d);return p&&!hae(b)?"["+zS(b,p)+"]":"[ "+Ms.call(b,", ")+" ]"}if(tae(e)){var x=Fh(e,d);return!("cause"in Error.prototype)&&"cause"in e&&!F4.call(e,"cause")?"{ ["+String(e)+"] "+Ms.call(j4.call("[cause]: "+d(e.cause),x),", ")+" }":x.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+Ms.call(x,", ")+" }"}if(typeof e=="object"&&a){if($4&&typeof e[$4]=="function"&&DS)return DS(e,{depth:u-n});if(a!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(cae(e)){var w=[];return I4&&I4.call(e,function(q,Z){w.push(d(Z,e,!0)+" => "+d(q,e))}),U4("Map",Hh.call(e),w,p)}if(pae(e)){var S=[];return C4&&C4.call(e,function(q){S.push(d(q,e))}),U4("Set",Bh.call(e),S,p)}if(lae(e))return AS("WeakMap");if(dae(e))return AS("WeakSet");if(uae(e))return AS("WeakRef");if(nae(e))return yp(d(Number(e)));if(iae(e))return yp(d(jS.call(e)));if(sae(e))return yp(Zie.call(e));if(rae(e))return yp(d(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(typeof globalThis<"u"&&e===globalThis||typeof global<"u"&&e===global)return"{ [object globalThis] }";if(!eae(e)&&!L4(e)){var E=Fh(e,d),k=D4?D4(e)===Object.prototype:e instanceof Object||e.constructor===Object,R=e instanceof Object?"":"null prototype",O=!k&&_p&&Object(e)===e&&_p in e?US.call(zi(e),8,-1):R?"Object":"",C=k||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",U=C+(O||R?"["+Ms.call(j4.call([],O||[],R||[]),": ")+"] ":"");return E.length===0?U+"{}":p?U+"{"+zS(E,p)+"}":U+"{ "+Ms.call(E,", ")+" }"}return String(e)};function B4(t,e,r){var n=r.quoteStyle||e,s=H4[n];return s+t+s}function Xie(t){return Mi.call(String(t),/"/g,""")}function za(t){return!_p||!(typeof t=="object"&&(_p in t||typeof t[_p]<"u"))}function MS(t){return zi(t)==="[object Array]"&&za(t)}function eae(t){return zi(t)==="[object Date]"&&za(t)}function L4(t){return zi(t)==="[object RegExp]"&&za(t)}function tae(t){return zi(t)==="[object Error]"&&za(t)}function rae(t){return zi(t)==="[object String]"&&za(t)}function nae(t){return zi(t)==="[object Number]"&&za(t)}function sae(t){return zi(t)==="[object Boolean]"&&za(t)}function W4(t){if(fc)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!NS)return!1;try{return NS.call(t),!0}catch{}return!1}function iae(t){if(!t||typeof t!="object"||!jS)return!1;try{return jS.call(t),!0}catch{}return!1}var aae=Object.prototype.hasOwnProperty||function(t){return t in this};function ri(t,e){return aae.call(t,e)}function zi(t){return Gie.call(t)}function oae(t){if(t.name)return t.name;var e=Kie.call(Vie.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function Z4(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return G4(US.call(t,0,e.maxStringLength),e)+n}var s=Yie[e.quoteStyle||"single"];s.lastIndex=0;var i=Mi.call(Mi.call(t,s,"\\$1"),/[\x00-\x1f]/g,fae);return B4(i,"single",e)}function fae(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+Jie.call(e.toString(16))}function yp(t){return"Object("+t+")"}function AS(t){return t+" { ? }"}function U4(t,e,r,n){var s=n?zS(r,n):Ms.call(r,", ");return t+" ("+e+") {"+s+"}"}function hae(t){for(var e=0;e=0)return!1;return!0}function gae(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=Ms.call(Array(t.indent+1)," ");else return null;return{base:r,prev:Ms.call(Array(e+1),r)}}function zS(t,e){if(t.length===0)return"";var r=` `+e.prev+e.base;return r+Ms.call(t,","+r)+` -`+e.prev}function Bh(t,e){var r=LS(t),n=[];if(r){n.length=t.length;for(var s=0;s{"use strict";var Sae=Sp(),kae=za(),Gh=function(t,e,r){for(var n=t,s;(s=n.next)!=null;n=s)if(s.key===e)return n.next=s.next,r||(s.next=t.next,t.next=s),s},Eae=function(t,e){if(t){var r=Gh(t,e);return r&&r.value}},Tae=function(t,e,r){var n=Gh(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}},Rae=function(t,e){return t?!!Gh(t,e):!1},Pae=function(t,e){if(t)return Gh(t,e,!0)};X4.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new kae("Side channel does not contain "+Sae(n))},delete:function(n){var s=e&&e.next,i=Pae(e,n);return i&&s&&s===i&&(e=void 0),!!i},get:function(n){return Eae(e,n)},has:function(n){return Rae(e,n)},set:function(n,s){e||(e={next:void 0}),Tae(e,n,s)}};return r}});var BS=P((aDe,t$)=>{"use strict";t$.exports=Object});var n$=P((oDe,r$)=>{"use strict";r$.exports=Error});var i$=P((cDe,s$)=>{"use strict";s$.exports=EvalError});var o$=P((lDe,a$)=>{"use strict";a$.exports=RangeError});var l$=P((uDe,c$)=>{"use strict";c$.exports=ReferenceError});var p$=P((pDe,u$)=>{"use strict";u$.exports=SyntaxError});var m$=P((dDe,d$)=>{"use strict";d$.exports=URIError});var h$=P((mDe,f$)=>{"use strict";f$.exports=Math.abs});var v$=P((fDe,g$)=>{"use strict";g$.exports=Math.floor});var b$=P((hDe,y$)=>{"use strict";y$.exports=Math.max});var _$=P((gDe,x$)=>{"use strict";x$.exports=Math.min});var S$=P((vDe,w$)=>{"use strict";w$.exports=Math.pow});var E$=P((yDe,k$)=>{"use strict";k$.exports=Math.round});var R$=P((bDe,T$)=>{"use strict";T$.exports=Number.isNaN||function(e){return e!==e}});var I$=P((xDe,P$)=>{"use strict";var Iae=R$();P$.exports=function(e){return Iae(e)||e===0?e:e<0?-1:1}});var O$=P((_De,C$)=>{"use strict";C$.exports=Object.getOwnPropertyDescriptor});var WS=P((wDe,A$)=>{"use strict";var Vh=O$();if(Vh)try{Vh([],"length")}catch{Vh=null}A$.exports=Vh});var N$=P((SDe,j$)=>{"use strict";var Kh=Object.defineProperty||!1;if(Kh)try{Kh({},"a",{value:1})}catch{Kh=!1}j$.exports=Kh});var M$=P((kDe,D$)=>{"use strict";D$.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var s=42;e[r]=s;for(var i in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var a=Object.getOwnPropertySymbols(e);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,r);if(o.value!==s||o.enumerable!==!0)return!1}return!0}});var L$=P((EDe,$$)=>{"use strict";var z$=typeof Symbol<"u"&&Symbol,Cae=M$();$$.exports=function(){return typeof z$!="function"||typeof Symbol!="function"||typeof z$("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:Cae()}});var ZS=P((TDe,U$)=>{"use strict";U$.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var GS=P((RDe,q$)=>{"use strict";var Oae=BS();q$.exports=Oae.getPrototypeOf||null});var B$=P((PDe,H$)=>{"use strict";var Aae="Function.prototype.bind called on incompatible ",jae=Object.prototype.toString,Nae=Math.max,Dae="[object Function]",F$=function(e,r){for(var n=[],s=0;s{"use strict";var $ae=B$();W$.exports=Function.prototype.bind||$ae});var Jh=P((CDe,Z$)=>{"use strict";Z$.exports=Function.prototype.call});var VS=P((ODe,G$)=>{"use strict";G$.exports=Function.prototype.apply});var K$=P((ADe,V$)=>{"use strict";V$.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var Q$=P((jDe,J$)=>{"use strict";var Lae=kp(),Uae=VS(),qae=Jh(),Fae=K$();J$.exports=Fae||Lae.call(qae,Uae)});var KS=P((NDe,Y$)=>{"use strict";var Hae=kp(),Bae=za(),Wae=Jh(),Zae=Q$();Y$.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new Bae("a function is required");return Zae(Hae,Wae,e)}});var sL=P((DDe,nL)=>{"use strict";var Gae=KS(),X$=WS(),tL;try{tL=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var JS=!!tL&&X$&&X$(Object.prototype,"__proto__"),rL=Object,eL=rL.getPrototypeOf;nL.exports=JS&&typeof JS.get=="function"?Gae([JS.get]):typeof eL=="function"?function(e){return eL(e==null?e:rL(e))}:!1});var lL=P((MDe,cL)=>{"use strict";var iL=ZS(),aL=GS(),oL=sL();cL.exports=iL?function(e){return iL(e)}:aL?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return aL(e)}:oL?function(e){return oL(e)}:null});var pL=P((zDe,uL)=>{"use strict";var Vae=Function.prototype.call,Kae=Object.prototype.hasOwnProperty,Jae=kp();uL.exports=Jae.call(Vae,Kae)});var Xh=P(($De,vL)=>{"use strict";var He,Qae=BS(),Yae=n$(),Xae=i$(),eoe=o$(),toe=l$(),bc=p$(),yc=za(),roe=m$(),noe=h$(),soe=v$(),ioe=b$(),aoe=_$(),ooe=S$(),coe=E$(),loe=I$(),hL=Function,QS=function(t){try{return hL('"use strict"; return ('+t+").constructor;")()}catch{}},Ep=WS(),uoe=N$(),YS=function(){throw new yc},poe=Ep?(function(){try{return arguments.callee,YS}catch{try{return Ep(arguments,"callee").get}catch{return YS}}})():YS,gc=L$()(),ur=lL(),doe=GS(),moe=ZS(),gL=VS(),Tp=Jh(),vc={},foe=typeof Uint8Array>"u"||!ur?He:ur(Uint8Array),La={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?He:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?He:ArrayBuffer,"%ArrayIteratorPrototype%":gc&&ur?ur([][Symbol.iterator]()):He,"%AsyncFromSyncIteratorPrototype%":He,"%AsyncFunction%":vc,"%AsyncGenerator%":vc,"%AsyncGeneratorFunction%":vc,"%AsyncIteratorPrototype%":vc,"%Atomics%":typeof Atomics>"u"?He:Atomics,"%BigInt%":typeof BigInt>"u"?He:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?He:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?He:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?He:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Yae,"%eval%":eval,"%EvalError%":Xae,"%Float16Array%":typeof Float16Array>"u"?He:Float16Array,"%Float32Array%":typeof Float32Array>"u"?He:Float32Array,"%Float64Array%":typeof Float64Array>"u"?He:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?He:FinalizationRegistry,"%Function%":hL,"%GeneratorFunction%":vc,"%Int8Array%":typeof Int8Array>"u"?He:Int8Array,"%Int16Array%":typeof Int16Array>"u"?He:Int16Array,"%Int32Array%":typeof Int32Array>"u"?He:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":gc&&ur?ur(ur([][Symbol.iterator]())):He,"%JSON%":typeof JSON=="object"?JSON:He,"%Map%":typeof Map>"u"?He:Map,"%MapIteratorPrototype%":typeof Map>"u"||!gc||!ur?He:ur(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Qae,"%Object.getOwnPropertyDescriptor%":Ep,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?He:Promise,"%Proxy%":typeof Proxy>"u"?He:Proxy,"%RangeError%":eoe,"%ReferenceError%":toe,"%Reflect%":typeof Reflect>"u"?He:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?He:Set,"%SetIteratorPrototype%":typeof Set>"u"||!gc||!ur?He:ur(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?He:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":gc&&ur?ur(""[Symbol.iterator]()):He,"%Symbol%":gc?Symbol:He,"%SyntaxError%":bc,"%ThrowTypeError%":poe,"%TypedArray%":foe,"%TypeError%":yc,"%Uint8Array%":typeof Uint8Array>"u"?He:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?He:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?He:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?He:Uint32Array,"%URIError%":roe,"%WeakMap%":typeof WeakMap>"u"?He:WeakMap,"%WeakRef%":typeof WeakRef>"u"?He:WeakRef,"%WeakSet%":typeof WeakSet>"u"?He:WeakSet,"%Function.prototype.call%":Tp,"%Function.prototype.apply%":gL,"%Object.defineProperty%":uoe,"%Object.getPrototypeOf%":doe,"%Math.abs%":noe,"%Math.floor%":soe,"%Math.max%":ioe,"%Math.min%":aoe,"%Math.pow%":ooe,"%Math.round%":coe,"%Math.sign%":loe,"%Reflect.getPrototypeOf%":moe};if(ur)try{null.error}catch(t){dL=ur(ur(t)),La["%Error.prototype%"]=dL}var dL,hoe=function t(e){var r;if(e==="%AsyncFunction%")r=QS("async function () {}");else if(e==="%GeneratorFunction%")r=QS("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=QS("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var s=t("%AsyncGenerator%");s&&ur&&(r=ur(s.prototype))}return La[e]=r,r},mL={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Rp=kp(),Qh=pL(),goe=Rp.call(Tp,Array.prototype.concat),voe=Rp.call(gL,Array.prototype.splice),fL=Rp.call(Tp,String.prototype.replace),Yh=Rp.call(Tp,String.prototype.slice),yoe=Rp.call(Tp,RegExp.prototype.exec),boe=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,xoe=/\\(\\)?/g,_oe=function(e){var r=Yh(e,0,1),n=Yh(e,-1);if(r==="%"&&n!=="%")throw new bc("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new bc("invalid intrinsic syntax, expected opening `%`");var s=[];return fL(e,boe,function(i,a,o,c){s[s.length]=o?fL(c,xoe,"$1"):a||i}),s},woe=function(e,r){var n=e,s;if(Qh(mL,n)&&(s=mL[n],n="%"+s[0]+"%"),Qh(La,n)){var i=La[n];if(i===vc&&(i=hoe(n)),typeof i>"u"&&!r)throw new yc("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:s,name:n,value:i}}throw new bc("intrinsic "+e+" does not exist!")};vL.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new yc("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new yc('"allowMissing" argument must be a boolean');if(yoe(/^%?[^%]*%?$/,e)===null)throw new bc("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=_oe(e),s=n.length>0?n[0]:"",i=woe("%"+s+"%",r),a=i.name,o=i.value,c=!1,l=i.alias;l&&(s=l[0],voe(n,goe([0,1],l)));for(var u=1,p=!0;u=n.length){var g=Ep(o,d);p=!!g,p&&"get"in g&&!("originalValue"in g.get)?o=g.get:o=o[d]}else p=Qh(o,d),o=o[d];p&&!c&&(La[a]=o)}}return o}});var XS=P((LDe,xL)=>{"use strict";var yL=Xh(),bL=KS(),Soe=bL([yL("%String.prototype.indexOf%")]);xL.exports=function(e,r){var n=yL(e,!!r);return typeof n=="function"&&Soe(e,".prototype.")>-1?bL([n]):n}});var ek=P((UDe,wL)=>{"use strict";var koe=Xh(),Pp=XS(),Eoe=Sp(),Toe=za(),_L=koe("%Map%",!0),Roe=Pp("Map.prototype.get",!0),Poe=Pp("Map.prototype.set",!0),Ioe=Pp("Map.prototype.has",!0),Coe=Pp("Map.prototype.delete",!0),Ooe=Pp("Map.prototype.size",!0);wL.exports=!!_L&&function(){var e,r={assert:function(n){if(!r.has(n))throw new Toe("Side channel does not contain "+Eoe(n))},delete:function(n){if(e){var s=Coe(e,n);return Ooe(e)===0&&(e=void 0),s}return!1},get:function(n){if(e)return Roe(e,n)},has:function(n){return e?Ioe(e,n):!1},set:function(n,s){e||(e=new _L),Poe(e,n,s)}};return r}});var kL=P((qDe,SL)=>{"use strict";var Aoe=Xh(),tg=XS(),joe=Sp(),eg=ek(),Noe=za(),xc=Aoe("%WeakMap%",!0),Doe=tg("WeakMap.prototype.get",!0),Moe=tg("WeakMap.prototype.set",!0),zoe=tg("WeakMap.prototype.has",!0),$oe=tg("WeakMap.prototype.delete",!0);SL.exports=xc?function(){var e,r,n={assert:function(s){if(!n.has(s))throw new Noe("Side channel does not contain "+joe(s))},delete:function(s){if(xc&&s&&(typeof s=="object"||typeof s=="function")){if(e)return $oe(e,s)}else if(eg&&r)return r.delete(s);return!1},get:function(s){return xc&&s&&(typeof s=="object"||typeof s=="function")&&e?Doe(e,s):r&&r.get(s)},has:function(s){return xc&&s&&(typeof s=="object"||typeof s=="function")&&e?zoe(e,s):!!r&&r.has(s)},set:function(s,i){xc&&s&&(typeof s=="object"||typeof s=="function")?(e||(e=new xc),Moe(e,s,i)):eg&&(r||(r=eg()),r.set(s,i))}};return n}:eg});var tk=P((FDe,EL)=>{"use strict";var Loe=za(),Uoe=Sp(),qoe=e$(),Foe=ek(),Hoe=kL(),Boe=Hoe||Foe||qoe;EL.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new Loe("Side channel does not contain "+Uoe(n))},delete:function(n){return!!e&&e.delete(n)},get:function(n){return e&&e.get(n)},has:function(n){return!!e&&e.has(n)},set:function(n,s){e||(e=Boe()),e.set(n,s)}};return r}});var rg=P((HDe,TL)=>{"use strict";var Woe=String.prototype.replace,Zoe=/%20/g,rk={RFC1738:"RFC1738",RFC3986:"RFC3986"};TL.exports={default:rk.RFC3986,formatters:{RFC1738:function(t){return Woe.call(t,Zoe,"+")},RFC3986:function(t){return String(t)}},RFC1738:rk.RFC1738,RFC3986:rk.RFC3986}});var ak=P((BDe,RL)=>{"use strict";var Goe=rg(),Voe=tk(),nk=Object.prototype.hasOwnProperty,Ua=Array.isArray,ng=Voe(),_c=function(e,r){return ng.set(e,r),e},qa=function(e){return ng.has(e)},Ip=function(e){return ng.get(e)},ik=function(e,r){ng.set(e,r)},zs=(function(){for(var t=[],e=0;e<256;++e)t[t.length]="%"+((e<16?"0":"")+e.toString(16)).toUpperCase();return t})(),Koe=function(e){for(;e.length>1;){var r=e.pop(),n=r.obj[r.prop];if(Ua(n)){for(var s=[],i=0;in.arrayLimit)return _c(Cp(e.concat(r),n),s);e[s]=r}else if(e&&typeof e=="object")if(qa(e)){var i=Ip(e)+1;e[i]=r,ik(e,i)}else(n&&(n.plainObjects||n.allowPrototypes)||!nk.call(Object.prototype,r))&&(e[r]=!0);else return[e,r];return e}if(!e||typeof e!="object"){if(qa(r)){for(var a=Object.keys(r),o=n&&n.plainObjects?{__proto__:null,0:e}:{0:e},c=0;cn.arrayLimit?_c(Cp(u,n),u.length-1):u}var p=e;return Ua(e)&&!Ua(r)&&(p=Cp(e,n)),Ua(e)&&Ua(r)?(r.forEach(function(d,m){if(nk.call(e,m)){var f=e[m];f&&typeof f=="object"&&d&&typeof d=="object"?e[m]=t(f,d,n):e[e.length]=d}else e[m]=d}),e):Object.keys(r).reduce(function(d,m){var f=r[m];if(nk.call(d,m)?d[m]=t(d[m],f,n):d[m]=f,qa(r)&&!qa(d)&&_c(d,Ip(r)),qa(d)){var g=parseInt(m,10);String(g)===m&&g>=0&&g>Ip(d)&&ik(d,g)}return d},p)},Qoe=function(e,r){return Object.keys(r).reduce(function(n,s){return n[s]=r[s],n},e)},Yoe=function(t,e,r){var n=t.replace(/\+/g," ");if(r==="iso-8859-1")return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch{return n}},sk=1024,Xoe=function(e,r,n,s,i){if(e.length===0)return e;var a=e;if(typeof e=="symbol"?a=Symbol.prototype.toString.call(e):typeof e!="string"&&(a=String(e)),n==="iso-8859-1")return escape(a).replace(/%u[0-9a-f]{4}/gi,function(m){return"%26%23"+parseInt(m.slice(2),16)+"%3B"});for(var o="",c=0;c=sk?a.slice(c,c+sk):a,u=[],p=0;p=48&&d<=57||d>=65&&d<=90||d>=97&&d<=122||i===Goe.RFC1738&&(d===40||d===41)){u[u.length]=l.charAt(p);continue}if(d<128){u[u.length]=zs[d];continue}if(d<2048){u[u.length]=zs[192|d>>6]+zs[128|d&63];continue}if(d<55296||d>=57344){u[u.length]=zs[224|d>>12]+zs[128|d>>6&63]+zs[128|d&63];continue}p+=1,d=65536+((d&1023)<<10|l.charCodeAt(p)&1023),u[u.length]=zs[240|d>>18]+zs[128|d>>12&63]+zs[128|d>>6&63]+zs[128|d&63]}o+=u.join("")}return o},ece=function(e){for(var r=[{obj:{o:e},prop:"o"}],n=[],s=0;sn?_c(Cp(a,{plainObjects:s}),a.length-1):a},sce=function(e,r){if(Ua(e)){for(var n=[],s=0;s{"use strict";var IL=tk(),sg=ak(),Op=rg(),ice=Object.prototype.hasOwnProperty,CL={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,r){return e+"["+r+"]"},repeat:function(e){return e}},$s=Array.isArray,ace=Array.prototype.push,OL=function(t,e){ace.apply(t,$s(e)?e:[e])},oce=Date.prototype.toISOString,PL=Op.default,nr={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:sg.encode,encodeValuesOnly:!1,filter:void 0,format:PL,formatter:Op.formatters[PL],indices:!1,serializeDate:function(e){return oce.call(e)},skipNulls:!1,strictNullHandling:!1},cce=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},ok={},lce=function t(e,r,n,s,i,a,o,c,l,u,p,d,m,f,g,v,h,y){for(var b=e,x=y,w=0,S=!1;(x=x.get(ok))!==void 0&&!S;){var k=x.get(e);if(w+=1,typeof k<"u"){if(k===w)throw new RangeError("Cyclic object value");S=!0}typeof x.get(ok)>"u"&&(w=0)}if(typeof u=="function"?b=u(r,b):b instanceof Date?b=m(b):n==="comma"&&$s(b)&&(b=sg.maybeMap(b,function(V){return V instanceof Date?m(V):V})),b===null){if(a)return l&&!v?l(r,nr.encoder,h,"key",f):r;b=""}if(cce(b)||sg.isBuffer(b)){if(l){var E=v?r:l(r,nr.encoder,h,"key",f);return[g(E)+"="+g(l(b,nr.encoder,h,"value",f))]}return[g(r)+"="+g(String(b))]}var R=[];if(typeof b>"u")return R;var O;if(n==="comma"&&$s(b))v&&l&&(b=sg.maybeMap(b,l)),O=[{value:b.length>0?b.join(",")||null:void 0}];else if($s(u))O=u;else{var C=Object.keys(b);O=p?C.sort(p):C}var U=c?String(r).replace(/\./g,"%2E"):String(r),q=s&&$s(b)&&b.length===1?U+"[]":U;if(i&&$s(b)&&b.length===0)return q+"[]";for(var Z=0;Z"u"?e.encodeDotInKeys===!0?!0:nr.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:nr.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:nr.allowEmptyArrays,arrayFormat:a,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:nr.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?nr.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:nr.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:nr.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:nr.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:nr.encodeValuesOnly,filter:i,format:n,formatter:s,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:nr.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:nr.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:nr.strictNullHandling}};AL.exports=function(t,e){var r=t,n=uce(e),s,i;typeof n.filter=="function"?(i=n.filter,r=i("",r)):$s(n.filter)&&(i=n.filter,s=i);var a=[];if(typeof r!="object"||r===null)return"";var o=CL[n.arrayFormat],c=o==="comma"&&n.commaRoundTrip;s||(s=Object.keys(r)),n.sort&&s.sort(n.sort);for(var l=IL(),u=0;u0?f+m:""}});var ML=P((ZDe,DL)=>{"use strict";var Ls=ak(),ig=Object.prototype.hasOwnProperty,ck=Array.isArray,Wt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:Ls.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},pce=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},NL=function(t,e,r){if(t&&typeof t=="string"&&e.comma&&t.indexOf(",")>-1)return t.split(",");if(e.throwOnLimitExceeded&&r>=e.arrayLimit)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(e.arrayLimit===1?"":"s")+" allowed in an array.");return t},dce="utf8=%26%2310003%3B",mce="utf8=%E2%9C%93",fce=function(e,r){var n={__proto__:null},s=r.ignoreQueryPrefix?e.replace(/^\?/,""):e;s=s.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i=r.parameterLimit===1/0?void 0:r.parameterLimit,a=s.split(r.delimiter,r.throwOnLimitExceeded?i+1:i);if(r.throwOnLimitExceeded&&a.length>i)throw new RangeError("Parameter limit exceeded. Only "+i+" parameter"+(i===1?"":"s")+" allowed.");var o=-1,c,l=r.charset;if(r.charsetSentinel)for(c=0;c-1&&(f=ck(f)?[f]:f),r.comma&&ck(f)&&f.length>r.arrayLimit){if(r.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+r.arrayLimit+" element"+(r.arrayLimit===1?"":"s")+" allowed in an array.");f=Ls.combine([],f,r.arrayLimit,r.plainObjects)}if(m!==null){var g=ig.call(n,m);g&&r.duplicates==="combine"?n[m]=Ls.combine(n[m],f,r.arrayLimit,r.plainObjects):(!g||r.duplicates==="last")&&(n[m]=f)}}return n},hce=function(t,e,r,n){var s=0;if(t.length>0&&t[t.length-1]==="[]"){var i=t.slice(0,-1).join("");s=Array.isArray(e)&&e[i]?e[i].length:0}for(var a=n?e:NL(e,r,s),o=t.length-1;o>=0;--o){var c,l=t[o];if(l==="[]"&&r.parseArrays)Ls.isOverflow(a)?c=a:c=r.allowEmptyArrays&&(a===""||r.strictNullHandling&&a===null)?[]:Ls.combine([],a,r.arrayLimit,r.plainObjects);else{c=r.plainObjects?{__proto__:null}:{};var u=l.charAt(0)==="["&&l.charAt(l.length-1)==="]"?l.slice(1,-1):l,p=r.decodeDotInKeys?u.replace(/%2E/g,"."):u,d=parseInt(p,10),m=!isNaN(d)&&l!==p&&String(d)===p&&d>=0&&r.parseArrays;if(!r.parseArrays&&p==="")c={0:a};else if(m&&d"u"?Wt.charset:e.charset,n=typeof e.duplicates>"u"?Wt.duplicates:e.duplicates;if(n!=="combine"&&n!=="first"&&n!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var s=typeof e.allowDots>"u"?e.decodeDotInKeys===!0?!0:Wt.allowDots:!!e.allowDots;return{allowDots:s,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:Wt.allowEmptyArrays,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:Wt.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:Wt.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:Wt.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Wt.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:Wt.comma,decodeDotInKeys:typeof e.decodeDotInKeys=="boolean"?e.decodeDotInKeys:Wt.decodeDotInKeys,decoder:typeof e.decoder=="function"?e.decoder:Wt.decoder,delimiter:typeof e.delimiter=="string"||Ls.isRegExp(e.delimiter)?e.delimiter:Wt.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:Wt.depth,duplicates:n,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:Wt.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:Wt.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:Wt.plainObjects,strictDepth:typeof e.strictDepth=="boolean"?!!e.strictDepth:Wt.strictDepth,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Wt.strictNullHandling,throwOnLimitExceeded:typeof e.throwOnLimitExceeded=="boolean"?e.throwOnLimitExceeded:!1}};DL.exports=function(t,e){var r=yce(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?{__proto__:null}:{};for(var n=typeof t=="string"?fce(t,r):t,s=r.plainObjects?{__proto__:null}:{},i=Object.keys(n),a=0;a{"use strict";var bce=jL(),xce=ML(),_ce=rg();zL.exports={formats:_ce,parse:xce,stringify:bce}});var HL=P((VDe,FL)=>{"use strict";var wce=ic(),Sce=np(),og=Oa(),fs=pp()("body-parser:urlencoded"),kce=js()("body-parser"),Ece=gp(),LL=fc();FL.exports=Tce;var $L=Object.create(null);function Tce(t){var e=t||{};e.extended===void 0&&kce("undefined extended: provide extended option");var r=e.extended!==!1,n=e.inflate!==!1,s=typeof e.limit!="number"?wce.parse(e.limit||"100kb"):e.limit,i=e.type||"application/x-www-form-urlencoded",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var o=r?Rce(e):Ice(e),c=typeof i!="function"?Cce(i):i;function l(u){return u.length?o(u):{}}return function(p,d,m){if(p._body){fs("body already parsed"),m();return}if(p.body=p.body||{},!LL.hasBody(p)){fs("skip empty body"),m();return}if(fs("content-type %j",p.headers["content-type"]),!c(p)){fs("skip parsing"),m();return}var f=Pce(p)||"utf-8";if(f!=="utf-8"){fs("invalid charset"),m(og(415,'unsupported charset "'+f.toUpperCase()+'"',{charset:f,type:"charset.unsupported"}));return}Ece(p,d,m,l,fs,{debug:fs,encoding:f,inflate:n,limit:s,verify:a})}}function Rce(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=t.depth!==void 0?t.depth:32,n=qL("qs");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");if(isNaN(r)||r<0)throw new TypeError("option depth must be a zero or a positive number");return isFinite(e)&&(e=e|0),function(i){var a=UL(i,e);if(a===void 0)throw fs("too many parameters"),og(413,"too many parameters",{type:"parameters.too.many"});var o=Math.max(100,a);fs("parse extended urlencoding");try{return n(i,{allowPrototypes:!0,arrayLimit:o,depth:r,strictDepth:!0,parameterLimit:e})}catch(c){throw c instanceof RangeError?og(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):c}}}function Pce(t){try{return(Sce.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function UL(t,e){for(var r=0,n=0;(n=t.indexOf("&",n))!==-1;)if(r++,n++,r===e)return;return r}function qL(t){var e=$L[t];if(e!==void 0)return e.parse;switch(t){case"qs":e=ag();break;case"querystring":e=require("querystring");break}return $L[t]=e,e.parse}function Ice(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=qL("querystring");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");return isFinite(e)&&(e=e|0),function(s){var i=UL(s,e);if(i===void 0)throw fs("too many parameters"),og(413,"too many parameters",{type:"parameters.too.many"});return fs("parse urlencoding"),r(s,void 0,void 0,{maxKeys:e})}}function Cce(t){return function(r){return!!LL(r,t)}}});var ZL=P(($i,WL)=>{"use strict";var Oce=js()("body-parser"),BL=Object.create(null);$i=WL.exports=Oce.function(Ace,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty($i,"json",{configurable:!0,enumerable:!0,get:cg("json")});Object.defineProperty($i,"raw",{configurable:!0,enumerable:!0,get:cg("raw")});Object.defineProperty($i,"text",{configurable:!0,enumerable:!0,get:cg("text")});Object.defineProperty($i,"urlencoded",{configurable:!0,enumerable:!0,get:cg("urlencoded")});function Ace(t){var e=Object.create(t||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),r=$i.urlencoded(e),n=$i.json(e);return function(i,a,o){n(i,a,function(c){if(c)return o(c);r(i,a,o)})}}function cg(t){return function(){return jce(t)}}function jce(t){var e=BL[t];if(e!==void 0)return e;switch(t){case"json":e=S4();break;case"raw":e=T4();break;case"text":e=I4();break;case"urlencoded":e=HL();break}return BL[t]=e}});var VL=P((KDe,GL)=>{"use strict";GL.exports=Dce;var Nce=Object.prototype.hasOwnProperty;function Dce(t,e,r){if(!t)throw new TypeError("argument dest is required");if(!e)throw new TypeError("argument src is required");return r===void 0&&(r=!0),Object.getOwnPropertyNames(e).forEach(function(s){if(!(!r&&Nce.call(t,s))){var i=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,i)}}),t}});var JL=P((JDe,KL)=>{var Ap=1e3,jp=Ap*60,Np=jp*60,Dp=Np*24,Mce=Dp*365.25;KL.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return zce(t);if(r==="number"&&isNaN(t)===!1)return e.long?Lce(t):$ce(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function zce(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Mce;case"days":case"day":case"d":return r*Dp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Np;case"minutes":case"minute":case"mins":case"min":case"m":return r*jp;case"seconds":case"second":case"secs":case"sec":case"s":return r*Ap;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function $ce(t){return t>=Dp?Math.round(t/Dp)+"d":t>=Np?Math.round(t/Np)+"h":t>=jp?Math.round(t/jp)+"m":t>=Ap?Math.round(t/Ap)+"s":t+"ms"}function Lce(t){return lg(t,Dp,"day")||lg(t,Np,"hour")||lg(t,jp,"minute")||lg(t,Ap,"second")||t+" ms"}function lg(t,e,r){if(!(t{ct=QL.exports=uk.debug=uk.default=uk;ct.coerce=Bce;ct.disable=Fce;ct.enable=qce;ct.enabled=Hce;ct.humanize=JL();ct.names=[];ct.skips=[];ct.formatters={};var lk;function Uce(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ct.colors[Math.abs(e)%ct.colors.length]}function uk(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(lk||n);r.diff=s,r.prev=lk,r.curr=n,lk=n;for(var i=new Array(arguments.length),a=0;a{Fr=XL.exports=pk();Fr.log=Gce;Fr.formatArgs=Zce;Fr.save=Vce;Fr.load=YL;Fr.useColors=Wce;Fr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:Kce();Fr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function Wce(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Fr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function Zce(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Fr.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function Gce(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function Vce(t){try{t==null?Fr.storage.removeItem("debug"):Fr.storage.debug=t}catch{}}function YL(){var t;try{t=Fr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Fr.enable(YL());function Kce(){try{return window.localStorage}catch{}}});var s2=P((pr,n2)=>{var t2=require("tty"),Mp=require("util");pr=n2.exports=pk();pr.init=rle;pr.log=Xce;pr.formatArgs=Yce;pr.save=ele;pr.load=r2;pr.useColors=Qce;pr.colors=[6,2,3,4,5,1];pr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var wc=parseInt(process.env.DEBUG_FD,10)||2;wc!==1&&wc!==2&&Mp.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var Jce=wc===1?process.stdout:wc===2?process.stderr:tle(wc);function Qce(){return"colors"in pr.inspectOpts?!!pr.inspectOpts.colors:t2.isatty(wc)}pr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Mp.inspect(t,this.inspectOpts).split(` -`).map(function(e){return e.trim()}).join(" ")};pr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,Mp.inspect(t,this.inspectOpts)};function Yce(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` +`+e.prev}function Fh(t,e){var r=MS(t),n=[];if(r){n.length=t.length;for(var s=0;s{"use strict";var vae=wp(),yae=Ma(),Wh=function(t,e,r){for(var n=t,s;(s=n.next)!=null;n=s)if(s.key===e)return n.next=s.next,r||(s.next=t.next,t.next=s),s},bae=function(t,e){if(t){var r=Wh(t,e);return r&&r.value}},xae=function(t,e,r){var n=Wh(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}},_ae=function(t,e){return t?!!Wh(t,e):!1},wae=function(t,e){if(t)return Wh(t,e,!0)};K4.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new yae("Side channel does not contain "+vae(n))},delete:function(n){var s=e&&e.next,i=wae(e,n);return i&&s&&s===i&&(e=void 0),!!i},get:function(n){return bae(e,n)},has:function(n){return _ae(e,n)},set:function(n,s){e||(e={next:void 0}),xae(e,n,s)}};return r}});var qS=P((XNe,Q4)=>{"use strict";Q4.exports=Object});var X4=P((eDe,Y4)=>{"use strict";Y4.exports=Error});var t$=P((tDe,e$)=>{"use strict";e$.exports=EvalError});var n$=P((rDe,r$)=>{"use strict";r$.exports=RangeError});var i$=P((nDe,s$)=>{"use strict";s$.exports=ReferenceError});var o$=P((sDe,a$)=>{"use strict";a$.exports=SyntaxError});var l$=P((iDe,c$)=>{"use strict";c$.exports=URIError});var p$=P((aDe,u$)=>{"use strict";u$.exports=Math.abs});var m$=P((oDe,d$)=>{"use strict";d$.exports=Math.floor});var h$=P((cDe,f$)=>{"use strict";f$.exports=Math.max});var v$=P((lDe,g$)=>{"use strict";g$.exports=Math.min});var b$=P((uDe,y$)=>{"use strict";y$.exports=Math.pow});var _$=P((pDe,x$)=>{"use strict";x$.exports=Math.round});var S$=P((dDe,w$)=>{"use strict";w$.exports=Number.isNaN||function(e){return e!==e}});var k$=P((mDe,E$)=>{"use strict";var Sae=S$();E$.exports=function(e){return Sae(e)||e===0?e:e<0?-1:1}});var R$=P((fDe,T$)=>{"use strict";T$.exports=Object.getOwnPropertyDescriptor});var FS=P((hDe,P$)=>{"use strict";var Zh=R$();if(Zh)try{Zh([],"length")}catch{Zh=null}P$.exports=Zh});var C$=P((gDe,I$)=>{"use strict";var Gh=Object.defineProperty||!1;if(Gh)try{Gh({},"a",{value:1})}catch{Gh=!1}I$.exports=Gh});var A$=P((vDe,O$)=>{"use strict";O$.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var s=42;e[r]=s;for(var i in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var a=Object.getOwnPropertySymbols(e);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,r);if(o.value!==s||o.enumerable!==!0)return!1}return!0}});var D$=P((yDe,N$)=>{"use strict";var j$=typeof Symbol<"u"&&Symbol,Eae=A$();N$.exports=function(){return typeof j$!="function"||typeof Symbol!="function"||typeof j$("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:Eae()}});var HS=P((bDe,M$)=>{"use strict";M$.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var BS=P((xDe,z$)=>{"use strict";var kae=qS();z$.exports=kae.getPrototypeOf||null});var U$=P((_De,L$)=>{"use strict";var Tae="Function.prototype.bind called on incompatible ",Rae=Object.prototype.toString,Pae=Math.max,Iae="[object Function]",$$=function(e,r){for(var n=[],s=0;s{"use strict";var Aae=U$();q$.exports=Function.prototype.bind||Aae});var Vh=P((SDe,F$)=>{"use strict";F$.exports=Function.prototype.call});var WS=P((EDe,H$)=>{"use strict";H$.exports=Function.prototype.apply});var W$=P((kDe,B$)=>{"use strict";B$.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var G$=P((TDe,Z$)=>{"use strict";var jae=Sp(),Nae=WS(),Dae=Vh(),Mae=W$();Z$.exports=Mae||jae.call(Dae,Nae)});var ZS=P((RDe,V$)=>{"use strict";var zae=Sp(),$ae=Ma(),Lae=Vh(),Uae=G$();V$.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new $ae("a function is required");return Uae(zae,Lae,e)}});var eL=P((PDe,X$)=>{"use strict";var qae=ZS(),K$=FS(),Q$;try{Q$=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var GS=!!Q$&&K$&&K$(Object.prototype,"__proto__"),Y$=Object,J$=Y$.getPrototypeOf;X$.exports=GS&&typeof GS.get=="function"?qae([GS.get]):typeof J$=="function"?function(e){return J$(e==null?e:Y$(e))}:!1});var iL=P((IDe,sL)=>{"use strict";var tL=HS(),rL=BS(),nL=eL();sL.exports=tL?function(e){return tL(e)}:rL?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return rL(e)}:nL?function(e){return nL(e)}:null});var oL=P((CDe,aL)=>{"use strict";var Fae=Function.prototype.call,Hae=Object.prototype.hasOwnProperty,Bae=Sp();aL.exports=Bae.call(Fae,Hae)});var Qh=P((ODe,mL)=>{"use strict";var He,Wae=qS(),Zae=X4(),Gae=t$(),Vae=n$(),Kae=i$(),yc=o$(),vc=Ma(),Jae=l$(),Qae=p$(),Yae=m$(),Xae=h$(),eoe=v$(),toe=b$(),roe=_$(),noe=k$(),pL=Function,VS=function(t){try{return pL('"use strict"; return ('+t+").constructor;")()}catch{}},Ep=FS(),soe=C$(),KS=function(){throw new vc},ioe=Ep?(function(){try{return arguments.callee,KS}catch{try{return Ep(arguments,"callee").get}catch{return KS}}})():KS,hc=D$()(),ur=iL(),aoe=BS(),ooe=HS(),dL=WS(),kp=Vh(),gc={},coe=typeof Uint8Array>"u"||!ur?He:ur(Uint8Array),$a={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?He:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?He:ArrayBuffer,"%ArrayIteratorPrototype%":hc&&ur?ur([][Symbol.iterator]()):He,"%AsyncFromSyncIteratorPrototype%":He,"%AsyncFunction%":gc,"%AsyncGenerator%":gc,"%AsyncGeneratorFunction%":gc,"%AsyncIteratorPrototype%":gc,"%Atomics%":typeof Atomics>"u"?He:Atomics,"%BigInt%":typeof BigInt>"u"?He:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?He:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?He:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?He:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Zae,"%eval%":eval,"%EvalError%":Gae,"%Float16Array%":typeof Float16Array>"u"?He:Float16Array,"%Float32Array%":typeof Float32Array>"u"?He:Float32Array,"%Float64Array%":typeof Float64Array>"u"?He:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?He:FinalizationRegistry,"%Function%":pL,"%GeneratorFunction%":gc,"%Int8Array%":typeof Int8Array>"u"?He:Int8Array,"%Int16Array%":typeof Int16Array>"u"?He:Int16Array,"%Int32Array%":typeof Int32Array>"u"?He:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hc&&ur?ur(ur([][Symbol.iterator]())):He,"%JSON%":typeof JSON=="object"?JSON:He,"%Map%":typeof Map>"u"?He:Map,"%MapIteratorPrototype%":typeof Map>"u"||!hc||!ur?He:ur(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Wae,"%Object.getOwnPropertyDescriptor%":Ep,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?He:Promise,"%Proxy%":typeof Proxy>"u"?He:Proxy,"%RangeError%":Vae,"%ReferenceError%":Kae,"%Reflect%":typeof Reflect>"u"?He:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?He:Set,"%SetIteratorPrototype%":typeof Set>"u"||!hc||!ur?He:ur(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?He:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hc&&ur?ur(""[Symbol.iterator]()):He,"%Symbol%":hc?Symbol:He,"%SyntaxError%":yc,"%ThrowTypeError%":ioe,"%TypedArray%":coe,"%TypeError%":vc,"%Uint8Array%":typeof Uint8Array>"u"?He:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?He:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?He:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?He:Uint32Array,"%URIError%":Jae,"%WeakMap%":typeof WeakMap>"u"?He:WeakMap,"%WeakRef%":typeof WeakRef>"u"?He:WeakRef,"%WeakSet%":typeof WeakSet>"u"?He:WeakSet,"%Function.prototype.call%":kp,"%Function.prototype.apply%":dL,"%Object.defineProperty%":soe,"%Object.getPrototypeOf%":aoe,"%Math.abs%":Qae,"%Math.floor%":Yae,"%Math.max%":Xae,"%Math.min%":eoe,"%Math.pow%":toe,"%Math.round%":roe,"%Math.sign%":noe,"%Reflect.getPrototypeOf%":ooe};if(ur)try{null.error}catch(t){cL=ur(ur(t)),$a["%Error.prototype%"]=cL}var cL,loe=function t(e){var r;if(e==="%AsyncFunction%")r=VS("async function () {}");else if(e==="%GeneratorFunction%")r=VS("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=VS("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var s=t("%AsyncGenerator%");s&&ur&&(r=ur(s.prototype))}return $a[e]=r,r},lL={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Tp=Sp(),Kh=oL(),uoe=Tp.call(kp,Array.prototype.concat),poe=Tp.call(dL,Array.prototype.splice),uL=Tp.call(kp,String.prototype.replace),Jh=Tp.call(kp,String.prototype.slice),doe=Tp.call(kp,RegExp.prototype.exec),moe=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,foe=/\\(\\)?/g,hoe=function(e){var r=Jh(e,0,1),n=Jh(e,-1);if(r==="%"&&n!=="%")throw new yc("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new yc("invalid intrinsic syntax, expected opening `%`");var s=[];return uL(e,moe,function(i,a,o,c){s[s.length]=o?uL(c,foe,"$1"):a||i}),s},goe=function(e,r){var n=e,s;if(Kh(lL,n)&&(s=lL[n],n="%"+s[0]+"%"),Kh($a,n)){var i=$a[n];if(i===gc&&(i=loe(n)),typeof i>"u"&&!r)throw new vc("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:s,name:n,value:i}}throw new yc("intrinsic "+e+" does not exist!")};mL.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new vc("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new vc('"allowMissing" argument must be a boolean');if(doe(/^%?[^%]*%?$/,e)===null)throw new yc("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=hoe(e),s=n.length>0?n[0]:"",i=goe("%"+s+"%",r),a=i.name,o=i.value,c=!1,l=i.alias;l&&(s=l[0],poe(n,uoe([0,1],l)));for(var u=1,p=!0;u=n.length){var g=Ep(o,d);p=!!g,p&&"get"in g&&!("originalValue"in g.get)?o=g.get:o=o[d]}else p=Kh(o,d),o=o[d];p&&!c&&($a[a]=o)}}return o}});var JS=P((ADe,gL)=>{"use strict";var fL=Qh(),hL=ZS(),voe=hL([fL("%String.prototype.indexOf%")]);gL.exports=function(e,r){var n=fL(e,!!r);return typeof n=="function"&&voe(e,".prototype.")>-1?hL([n]):n}});var QS=P((jDe,yL)=>{"use strict";var yoe=Qh(),Rp=JS(),boe=wp(),xoe=Ma(),vL=yoe("%Map%",!0),_oe=Rp("Map.prototype.get",!0),woe=Rp("Map.prototype.set",!0),Soe=Rp("Map.prototype.has",!0),Eoe=Rp("Map.prototype.delete",!0),koe=Rp("Map.prototype.size",!0);yL.exports=!!vL&&function(){var e,r={assert:function(n){if(!r.has(n))throw new xoe("Side channel does not contain "+boe(n))},delete:function(n){if(e){var s=Eoe(e,n);return koe(e)===0&&(e=void 0),s}return!1},get:function(n){if(e)return _oe(e,n)},has:function(n){return e?Soe(e,n):!1},set:function(n,s){e||(e=new vL),woe(e,n,s)}};return r}});var xL=P((NDe,bL)=>{"use strict";var Toe=Qh(),Xh=JS(),Roe=wp(),Yh=QS(),Poe=Ma(),bc=Toe("%WeakMap%",!0),Ioe=Xh("WeakMap.prototype.get",!0),Coe=Xh("WeakMap.prototype.set",!0),Ooe=Xh("WeakMap.prototype.has",!0),Aoe=Xh("WeakMap.prototype.delete",!0);bL.exports=bc?function(){var e,r,n={assert:function(s){if(!n.has(s))throw new Poe("Side channel does not contain "+Roe(s))},delete:function(s){if(bc&&s&&(typeof s=="object"||typeof s=="function")){if(e)return Aoe(e,s)}else if(Yh&&r)return r.delete(s);return!1},get:function(s){return bc&&s&&(typeof s=="object"||typeof s=="function")&&e?Ioe(e,s):r&&r.get(s)},has:function(s){return bc&&s&&(typeof s=="object"||typeof s=="function")&&e?Ooe(e,s):!!r&&r.has(s)},set:function(s,i){bc&&s&&(typeof s=="object"||typeof s=="function")?(e||(e=new bc),Coe(e,s,i)):Yh&&(r||(r=Yh()),r.set(s,i))}};return n}:Yh});var YS=P((DDe,_L)=>{"use strict";var joe=Ma(),Noe=wp(),Doe=J4(),Moe=QS(),zoe=xL(),$oe=zoe||Moe||Doe;_L.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new joe("Side channel does not contain "+Noe(n))},delete:function(n){return!!e&&e.delete(n)},get:function(n){return e&&e.get(n)},has:function(n){return!!e&&e.has(n)},set:function(n,s){e||(e=$oe()),e.set(n,s)}};return r}});var eg=P((MDe,wL)=>{"use strict";var Loe=String.prototype.replace,Uoe=/%20/g,XS={RFC1738:"RFC1738",RFC3986:"RFC3986"};wL.exports={default:XS.RFC3986,formatters:{RFC1738:function(t){return Loe.call(t,Uoe,"+")},RFC3986:function(t){return String(t)}},RFC1738:XS.RFC1738,RFC3986:XS.RFC3986}});var nE=P((zDe,SL)=>{"use strict";var qoe=eg(),Foe=YS(),eE=Object.prototype.hasOwnProperty,La=Array.isArray,tg=Foe(),xc=function(e,r){return tg.set(e,r),e},Ua=function(e){return tg.has(e)},Pp=function(e){return tg.get(e)},rE=function(e,r){tg.set(e,r)},zs=(function(){for(var t=[],e=0;e<256;++e)t[t.length]="%"+((e<16?"0":"")+e.toString(16)).toUpperCase();return t})(),Hoe=function(e){for(;e.length>1;){var r=e.pop(),n=r.obj[r.prop];if(La(n)){for(var s=[],i=0;in.arrayLimit)return xc(Ip(e.concat(r),n),s);e[s]=r}else if(e&&typeof e=="object")if(Ua(e)){var i=Pp(e)+1;e[i]=r,rE(e,i)}else(n&&(n.plainObjects||n.allowPrototypes)||!eE.call(Object.prototype,r))&&(e[r]=!0);else return[e,r];return e}if(!e||typeof e!="object"){if(Ua(r)){for(var a=Object.keys(r),o=n&&n.plainObjects?{__proto__:null,0:e}:{0:e},c=0;cn.arrayLimit?xc(Ip(u,n),u.length-1):u}var p=e;return La(e)&&!La(r)&&(p=Ip(e,n)),La(e)&&La(r)?(r.forEach(function(d,m){if(eE.call(e,m)){var f=e[m];f&&typeof f=="object"&&d&&typeof d=="object"?e[m]=t(f,d,n):e[e.length]=d}else e[m]=d}),e):Object.keys(r).reduce(function(d,m){var f=r[m];if(eE.call(d,m)?d[m]=t(d[m],f,n):d[m]=f,Ua(r)&&!Ua(d)&&xc(d,Pp(r)),Ua(d)){var g=parseInt(m,10);String(g)===m&&g>=0&&g>Pp(d)&&rE(d,g)}return d},p)},Woe=function(e,r){return Object.keys(r).reduce(function(n,s){return n[s]=r[s],n},e)},Zoe=function(t,e,r){var n=t.replace(/\+/g," ");if(r==="iso-8859-1")return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch{return n}},tE=1024,Goe=function(e,r,n,s,i){if(e.length===0)return e;var a=e;if(typeof e=="symbol"?a=Symbol.prototype.toString.call(e):typeof e!="string"&&(a=String(e)),n==="iso-8859-1")return escape(a).replace(/%u[0-9a-f]{4}/gi,function(m){return"%26%23"+parseInt(m.slice(2),16)+"%3B"});for(var o="",c=0;c=tE?a.slice(c,c+tE):a,u=[],p=0;p=48&&d<=57||d>=65&&d<=90||d>=97&&d<=122||i===qoe.RFC1738&&(d===40||d===41)){u[u.length]=l.charAt(p);continue}if(d<128){u[u.length]=zs[d];continue}if(d<2048){u[u.length]=zs[192|d>>6]+zs[128|d&63];continue}if(d<55296||d>=57344){u[u.length]=zs[224|d>>12]+zs[128|d>>6&63]+zs[128|d&63];continue}p+=1,d=65536+((d&1023)<<10|l.charCodeAt(p)&1023),u[u.length]=zs[240|d>>18]+zs[128|d>>12&63]+zs[128|d>>6&63]+zs[128|d&63]}o+=u.join("")}return o},Voe=function(e){for(var r=[{obj:{o:e},prop:"o"}],n=[],s=0;sn?xc(Ip(a,{plainObjects:s}),a.length-1):a},Yoe=function(e,r){if(La(e)){for(var n=[],s=0;s{"use strict";var kL=YS(),rg=nE(),Cp=eg(),Xoe=Object.prototype.hasOwnProperty,TL={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,r){return e+"["+r+"]"},repeat:function(e){return e}},$s=Array.isArray,ece=Array.prototype.push,RL=function(t,e){ece.apply(t,$s(e)?e:[e])},tce=Date.prototype.toISOString,EL=Cp.default,nr={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:rg.encode,encodeValuesOnly:!1,filter:void 0,format:EL,formatter:Cp.formatters[EL],indices:!1,serializeDate:function(e){return tce.call(e)},skipNulls:!1,strictNullHandling:!1},rce=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},sE={},nce=function t(e,r,n,s,i,a,o,c,l,u,p,d,m,f,g,v,h,y){for(var b=e,x=y,w=0,S=!1;(x=x.get(sE))!==void 0&&!S;){var E=x.get(e);if(w+=1,typeof E<"u"){if(E===w)throw new RangeError("Cyclic object value");S=!0}typeof x.get(sE)>"u"&&(w=0)}if(typeof u=="function"?b=u(r,b):b instanceof Date?b=m(b):n==="comma"&&$s(b)&&(b=rg.maybeMap(b,function(V){return V instanceof Date?m(V):V})),b===null){if(a)return l&&!v?l(r,nr.encoder,h,"key",f):r;b=""}if(rce(b)||rg.isBuffer(b)){if(l){var k=v?r:l(r,nr.encoder,h,"key",f);return[g(k)+"="+g(l(b,nr.encoder,h,"value",f))]}return[g(r)+"="+g(String(b))]}var R=[];if(typeof b>"u")return R;var O;if(n==="comma"&&$s(b))v&&l&&(b=rg.maybeMap(b,l)),O=[{value:b.length>0?b.join(",")||null:void 0}];else if($s(u))O=u;else{var C=Object.keys(b);O=p?C.sort(p):C}var U=c?String(r).replace(/\./g,"%2E"):String(r),q=s&&$s(b)&&b.length===1?U+"[]":U;if(i&&$s(b)&&b.length===0)return q+"[]";for(var Z=0;Z"u"?e.encodeDotInKeys===!0?!0:nr.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:nr.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:nr.allowEmptyArrays,arrayFormat:a,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:nr.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?nr.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:nr.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:nr.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:nr.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:nr.encodeValuesOnly,filter:i,format:n,formatter:s,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:nr.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:nr.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:nr.strictNullHandling}};PL.exports=function(t,e){var r=t,n=sce(e),s,i;typeof n.filter=="function"?(i=n.filter,r=i("",r)):$s(n.filter)&&(i=n.filter,s=i);var a=[];if(typeof r!="object"||r===null)return"";var o=TL[n.arrayFormat],c=o==="comma"&&n.commaRoundTrip;s||(s=Object.keys(r)),n.sort&&s.sort(n.sort);for(var l=kL(),u=0;u0?f+m:""}});var AL=P((LDe,OL)=>{"use strict";var Ls=nE(),ng=Object.prototype.hasOwnProperty,iE=Array.isArray,Wt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:Ls.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},ice=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},CL=function(t,e,r){if(t&&typeof t=="string"&&e.comma&&t.indexOf(",")>-1)return t.split(",");if(e.throwOnLimitExceeded&&r>=e.arrayLimit)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(e.arrayLimit===1?"":"s")+" allowed in an array.");return t},ace="utf8=%26%2310003%3B",oce="utf8=%E2%9C%93",cce=function(e,r){var n={__proto__:null},s=r.ignoreQueryPrefix?e.replace(/^\?/,""):e;s=s.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i=r.parameterLimit===1/0?void 0:r.parameterLimit,a=s.split(r.delimiter,r.throwOnLimitExceeded?i+1:i);if(r.throwOnLimitExceeded&&a.length>i)throw new RangeError("Parameter limit exceeded. Only "+i+" parameter"+(i===1?"":"s")+" allowed.");var o=-1,c,l=r.charset;if(r.charsetSentinel)for(c=0;c-1&&(f=iE(f)?[f]:f),r.comma&&iE(f)&&f.length>r.arrayLimit){if(r.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+r.arrayLimit+" element"+(r.arrayLimit===1?"":"s")+" allowed in an array.");f=Ls.combine([],f,r.arrayLimit,r.plainObjects)}if(m!==null){var g=ng.call(n,m);g&&r.duplicates==="combine"?n[m]=Ls.combine(n[m],f,r.arrayLimit,r.plainObjects):(!g||r.duplicates==="last")&&(n[m]=f)}}return n},lce=function(t,e,r,n){var s=0;if(t.length>0&&t[t.length-1]==="[]"){var i=t.slice(0,-1).join("");s=Array.isArray(e)&&e[i]?e[i].length:0}for(var a=n?e:CL(e,r,s),o=t.length-1;o>=0;--o){var c,l=t[o];if(l==="[]"&&r.parseArrays)Ls.isOverflow(a)?c=a:c=r.allowEmptyArrays&&(a===""||r.strictNullHandling&&a===null)?[]:Ls.combine([],a,r.arrayLimit,r.plainObjects);else{c=r.plainObjects?{__proto__:null}:{};var u=l.charAt(0)==="["&&l.charAt(l.length-1)==="]"?l.slice(1,-1):l,p=r.decodeDotInKeys?u.replace(/%2E/g,"."):u,d=parseInt(p,10),m=!isNaN(d)&&l!==p&&String(d)===p&&d>=0&&r.parseArrays;if(!r.parseArrays&&p==="")c={0:a};else if(m&&d"u"?Wt.charset:e.charset,n=typeof e.duplicates>"u"?Wt.duplicates:e.duplicates;if(n!=="combine"&&n!=="first"&&n!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var s=typeof e.allowDots>"u"?e.decodeDotInKeys===!0?!0:Wt.allowDots:!!e.allowDots;return{allowDots:s,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:Wt.allowEmptyArrays,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:Wt.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:Wt.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:Wt.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Wt.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:Wt.comma,decodeDotInKeys:typeof e.decodeDotInKeys=="boolean"?e.decodeDotInKeys:Wt.decodeDotInKeys,decoder:typeof e.decoder=="function"?e.decoder:Wt.decoder,delimiter:typeof e.delimiter=="string"||Ls.isRegExp(e.delimiter)?e.delimiter:Wt.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:Wt.depth,duplicates:n,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:Wt.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:Wt.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:Wt.plainObjects,strictDepth:typeof e.strictDepth=="boolean"?!!e.strictDepth:Wt.strictDepth,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Wt.strictNullHandling,throwOnLimitExceeded:typeof e.throwOnLimitExceeded=="boolean"?e.throwOnLimitExceeded:!1}};OL.exports=function(t,e){var r=dce(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?{__proto__:null}:{};for(var n=typeof t=="string"?cce(t,r):t,s=r.plainObjects?{__proto__:null}:{},i=Object.keys(n),a=0;a{"use strict";var mce=IL(),fce=AL(),hce=eg();jL.exports={formats:hce,parse:fce,stringify:mce}});var LL=P((qDe,$L)=>{"use strict";var gce=sc(),vce=rp(),ig=Ca(),fs=up()("body-parser:urlencoded"),yce=js()("body-parser"),bce=hp(),DL=mc();$L.exports=xce;var NL=Object.create(null);function xce(t){var e=t||{};e.extended===void 0&&yce("undefined extended: provide extended option");var r=e.extended!==!1,n=e.inflate!==!1,s=typeof e.limit!="number"?gce.parse(e.limit||"100kb"):e.limit,i=e.type||"application/x-www-form-urlencoded",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var o=r?_ce(e):Sce(e),c=typeof i!="function"?Ece(i):i;function l(u){return u.length?o(u):{}}return function(p,d,m){if(p._body){fs("body already parsed"),m();return}if(p.body=p.body||{},!DL.hasBody(p)){fs("skip empty body"),m();return}if(fs("content-type %j",p.headers["content-type"]),!c(p)){fs("skip parsing"),m();return}var f=wce(p)||"utf-8";if(f!=="utf-8"){fs("invalid charset"),m(ig(415,'unsupported charset "'+f.toUpperCase()+'"',{charset:f,type:"charset.unsupported"}));return}bce(p,d,m,l,fs,{debug:fs,encoding:f,inflate:n,limit:s,verify:a})}}function _ce(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=t.depth!==void 0?t.depth:32,n=zL("qs");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");if(isNaN(r)||r<0)throw new TypeError("option depth must be a zero or a positive number");return isFinite(e)&&(e=e|0),function(i){var a=ML(i,e);if(a===void 0)throw fs("too many parameters"),ig(413,"too many parameters",{type:"parameters.too.many"});var o=Math.max(100,a);fs("parse extended urlencoding");try{return n(i,{allowPrototypes:!0,arrayLimit:o,depth:r,strictDepth:!0,parameterLimit:e})}catch(c){throw c instanceof RangeError?ig(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):c}}}function wce(t){try{return(vce.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function ML(t,e){for(var r=0,n=0;(n=t.indexOf("&",n))!==-1;)if(r++,n++,r===e)return;return r}function zL(t){var e=NL[t];if(e!==void 0)return e.parse;switch(t){case"qs":e=sg();break;case"querystring":e=require("querystring");break}return NL[t]=e,e.parse}function Sce(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=zL("querystring");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");return isFinite(e)&&(e=e|0),function(s){var i=ML(s,e);if(i===void 0)throw fs("too many parameters"),ig(413,"too many parameters",{type:"parameters.too.many"});return fs("parse urlencoding"),r(s,void 0,void 0,{maxKeys:e})}}function Ece(t){return function(r){return!!DL(r,t)}}});var FL=P(($i,qL)=>{"use strict";var kce=js()("body-parser"),UL=Object.create(null);$i=qL.exports=kce.function(Tce,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty($i,"json",{configurable:!0,enumerable:!0,get:ag("json")});Object.defineProperty($i,"raw",{configurable:!0,enumerable:!0,get:ag("raw")});Object.defineProperty($i,"text",{configurable:!0,enumerable:!0,get:ag("text")});Object.defineProperty($i,"urlencoded",{configurable:!0,enumerable:!0,get:ag("urlencoded")});function Tce(t){var e=Object.create(t||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),r=$i.urlencoded(e),n=$i.json(e);return function(i,a,o){n(i,a,function(c){if(c)return o(c);r(i,a,o)})}}function ag(t){return function(){return Rce(t)}}function Rce(t){var e=UL[t];if(e!==void 0)return e;switch(t){case"json":e=b4();break;case"raw":e=w4();break;case"text":e=k4();break;case"urlencoded":e=LL();break}return UL[t]=e}});var BL=P((FDe,HL)=>{"use strict";HL.exports=Ice;var Pce=Object.prototype.hasOwnProperty;function Ice(t,e,r){if(!t)throw new TypeError("argument dest is required");if(!e)throw new TypeError("argument src is required");return r===void 0&&(r=!0),Object.getOwnPropertyNames(e).forEach(function(s){if(!(!r&&Pce.call(t,s))){var i=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,i)}}),t}});var ZL=P((HDe,WL)=>{var Op=1e3,Ap=Op*60,jp=Ap*60,Np=jp*24,Cce=Np*365.25;WL.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Oce(t);if(r==="number"&&isNaN(t)===!1)return e.long?jce(t):Ace(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Oce(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Cce;case"days":case"day":case"d":return r*Np;case"hours":case"hour":case"hrs":case"hr":case"h":return r*jp;case"minutes":case"minute":case"mins":case"min":case"m":return r*Ap;case"seconds":case"second":case"secs":case"sec":case"s":return r*Op;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Ace(t){return t>=Np?Math.round(t/Np)+"d":t>=jp?Math.round(t/jp)+"h":t>=Ap?Math.round(t/Ap)+"m":t>=Op?Math.round(t/Op)+"s":t+"ms"}function jce(t){return og(t,Np,"day")||og(t,jp,"hour")||og(t,Ap,"minute")||og(t,Op,"second")||t+" ms"}function og(t,e,r){if(!(t{ct=GL.exports=oE.debug=oE.default=oE;ct.coerce=$ce;ct.disable=Mce;ct.enable=Dce;ct.enabled=zce;ct.humanize=ZL();ct.names=[];ct.skips=[];ct.formatters={};var aE;function Nce(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ct.colors[Math.abs(e)%ct.colors.length]}function oE(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(aE||n);r.diff=s,r.prev=aE,r.curr=n,aE=n;for(var i=new Array(arguments.length),a=0;a{Fr=KL.exports=cE();Fr.log=qce;Fr.formatArgs=Uce;Fr.save=Fce;Fr.load=VL;Fr.useColors=Lce;Fr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:Hce();Fr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function Lce(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Fr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function Uce(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Fr.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function qce(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function Fce(t){try{t==null?Fr.storage.removeItem("debug"):Fr.storage.debug=t}catch{}}function VL(){var t;try{t=Fr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Fr.enable(VL());function Hce(){try{return window.localStorage}catch{}}});var e2=P((pr,XL)=>{var QL=require("tty"),Dp=require("util");pr=XL.exports=cE();pr.init=Jce;pr.log=Gce;pr.formatArgs=Zce;pr.save=Vce;pr.load=YL;pr.useColors=Wce;pr.colors=[6,2,3,4,5,1];pr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var _c=parseInt(process.env.DEBUG_FD,10)||2;_c!==1&&_c!==2&&Dp.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var Bce=_c===1?process.stdout:_c===2?process.stderr:Kce(_c);function Wce(){return"colors"in pr.inspectOpts?!!pr.inspectOpts.colors:QL.isatty(_c)}pr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Dp.inspect(t,this.inspectOpts).split(` +`).map(function(e){return e.trim()}).join(" ")};pr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,Dp.inspect(t,this.inspectOpts)};function Zce(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` `).join(` -`+s),t.push("\x1B[3"+n+"m+"+pr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function Xce(){return Jce.write(Mp.format.apply(Mp,arguments)+` -`)}function ele(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function r2(){return process.env.DEBUG}function tle(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new t2.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function rle(t){t.inspectOpts={};for(var e=Object.keys(pr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?dk.exports=e2():dk.exports=s2()});var zp=P((YDe,a2)=>{"use strict";a2.exports=ale;var nle=/(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,sle=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,ile="$1\uFFFD$2";function ale(t){return String(t).replace(sle,ile).replace(nle,encodeURI)}});var $p=P((XDe,o2)=>{"use strict";var ole=/["'&<>]/;o2.exports=cle;function cle(t){var e=""+t,r=ole.exec(e);if(!r)return e;var n,s="",i=0,a=0;for(i=r.index;i{"use strict";var l2=require("url"),c2=l2.parse,ug=l2.Url;mk.exports=u2;mk.exports.original=lle;function u2(t){var e=t.url;if(e!==void 0){var r=t._parsedUrl;return d2(e,r)?r:(r=p2(e),r._raw=e,t._parsedUrl=r)}}function lle(t){var e=t.originalUrl;if(typeof e!="string")return u2(t);var r=t._parsedOriginalUrl;return d2(e,r)?r:(r=p2(e),r._raw=e,t._parsedOriginalUrl=r)}function p2(t){if(typeof t!="string"||t.charCodeAt(0)!==47)return c2(t);for(var e=t,r=null,n=null,s=1;s{"use strict";var fk=i2()("finalhandler"),ule=zp(),ple=$p(),f2=hp(),dle=Sc(),h2=ip(),mle=Fh(),fle=/\x20{2}/g,hle=/\n/g,gle=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))},vle=f2.isFinished;function yle(t){var e=ple(t).replace(hle,"
").replace(fle,"  ");return` +`+s),t.push("\x1B[3"+n+"m+"+pr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function Gce(){return Bce.write(Dp.format.apply(Dp,arguments)+` +`)}function Vce(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function YL(){return process.env.DEBUG}function Kce(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new QL.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function Jce(t){t.inspectOpts={};for(var e=Object.keys(pr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?lE.exports=JL():lE.exports=e2()});var Mp=P((WDe,r2)=>{"use strict";r2.exports=ele;var Qce=/(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,Yce=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,Xce="$1\uFFFD$2";function ele(t){return String(t).replace(Yce,Xce).replace(Qce,encodeURI)}});var zp=P((ZDe,n2)=>{"use strict";var tle=/["'&<>]/;n2.exports=rle;function rle(t){var e=""+t,r=tle.exec(e);if(!r)return e;var n,s="",i=0,a=0;for(i=r.index;i{"use strict";var i2=require("url"),s2=i2.parse,cg=i2.Url;uE.exports=a2;uE.exports.original=nle;function a2(t){var e=t.url;if(e!==void 0){var r=t._parsedUrl;return c2(e,r)?r:(r=o2(e),r._raw=e,t._parsedUrl=r)}}function nle(t){var e=t.originalUrl;if(typeof e!="string")return a2(t);var r=t._parsedOriginalUrl;return c2(e,r)?r:(r=o2(e),r._raw=e,t._parsedOriginalUrl=r)}function o2(t){if(typeof t!="string"||t.charCodeAt(0)!==47)return s2(t);for(var e=t,r=null,n=null,s=1;s{"use strict";var pE=t2()("finalhandler"),sle=Mp(),ile=zp(),u2=fp(),ale=wc(),p2=sp(),ole=Uh(),cle=/\x20{2}/g,lle=/\n/g,ule=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))},ple=u2.isFinished;function dle(t){var e=ile(t).replace(lle,"
").replace(cle,"  ");return` @@ -57,15 +57,15 @@ return fn.apply(this, arguments)
`+e+`
-`}g2.exports=ble;function ble(t,e,r){var n=r||{},s=n.env||process.env.NODE_ENV||"development",i=n.onerror;return function(a){var o,c,l;if(!a&&m2(e)){fk("cannot 404 after headers sent");return}if(a?(l=wle(a),l===void 0?l=kle(e):o=xle(a),c=_le(a,l,s)):(l=404,c="Cannot "+t.method+" "+ule(Sle(t))),fk("default %s",l),a&&i&&gle(i,a,t,e),m2(e)){fk("cannot %d after headers sent",l),t.socket&&t.socket.destroy();return}Ele(t,e,l,o,c)}}function xle(t){if(!(!t.headers||typeof t.headers!="object")){for(var e=Object.create(null),r=Object.keys(t.headers),n=0;n=400&&t.status<600)return t.status;if(typeof t.statusCode=="number"&&t.statusCode>=400&&t.statusCode<600)return t.statusCode}function Sle(t){try{return dle.original(t).pathname}catch{return"resource"}}function kle(t){var e=t.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function m2(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function Ele(t,e,r,n,s){function i(){var a=yle(s);if(e.statusCode=r,t.httpVersionMajor<2&&(e.statusMessage=h2.message[r]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),Tle(e,n),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Content-Type","text/html; charset=utf-8"),e.setHeader("Content-Length",Buffer.byteLength(a,"utf8")),t.method==="HEAD"){e.end();return}e.end(a,"utf8")}if(vle(t)){i();return}mle(t),f2(t,i),t.resume()}function Tle(t,e){if(e)for(var r=Object.keys(e),n=0;n{var Lp=1e3,Up=Lp*60,qp=Up*60,Fp=qp*24,Rle=Fp*365.25;y2.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Ple(t);if(r==="number"&&isNaN(t)===!1)return e.long?Cle(t):Ile(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Ple(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Rle;case"days":case"day":case"d":return r*Fp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*qp;case"minutes":case"minute":case"mins":case"min":case"m":return r*Up;case"seconds":case"second":case"secs":case"sec":case"s":return r*Lp;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Ile(t){return t>=Fp?Math.round(t/Fp)+"d":t>=qp?Math.round(t/qp)+"h":t>=Up?Math.round(t/Up)+"m":t>=Lp?Math.round(t/Lp)+"s":t+"ms"}function Cle(t){return pg(t,Fp,"day")||pg(t,qp,"hour")||pg(t,Up,"minute")||pg(t,Lp,"second")||t+" ms"}function pg(t,e,r){if(!(t{lt=x2.exports=gk.debug=gk.default=gk;lt.coerce=Dle;lt.disable=jle;lt.enable=Ale;lt.enabled=Nle;lt.humanize=b2();lt.names=[];lt.skips=[];lt.formatters={};var hk;function Ole(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return lt.colors[Math.abs(e)%lt.colors.length]}function gk(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(hk||n);r.diff=s,r.prev=hk,r.curr=n,hk=n;for(var i=new Array(arguments.length),a=0;a{Hr=w2.exports=vk();Hr.log=$le;Hr.formatArgs=zle;Hr.save=Lle;Hr.load=_2;Hr.useColors=Mle;Hr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:Ule();Hr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function Mle(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Hr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function zle(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Hr.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function $le(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function Lle(t){try{t==null?Hr.storage.removeItem("debug"):Hr.storage.debug=t}catch{}}function _2(){var t;try{t=Hr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Hr.enable(_2());function Ule(){try{return window.localStorage}catch{}}});var R2=P((dr,T2)=>{var k2=require("tty"),Hp=require("util");dr=T2.exports=vk();dr.init=Gle;dr.log=Ble;dr.formatArgs=Hle;dr.save=Wle;dr.load=E2;dr.useColors=Fle;dr.colors=[6,2,3,4,5,1];dr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var kc=parseInt(process.env.DEBUG_FD,10)||2;kc!==1&&kc!==2&&Hp.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var qle=kc===1?process.stdout:kc===2?process.stderr:Zle(kc);function Fle(){return"colors"in dr.inspectOpts?!!dr.inspectOpts.colors:k2.isatty(kc)}dr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Hp.inspect(t,this.inspectOpts).split(` -`).map(function(e){return e.trim()}).join(" ")};dr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,Hp.inspect(t,this.inspectOpts)};function Hle(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` +`}d2.exports=mle;function mle(t,e,r){var n=r||{},s=n.env||process.env.NODE_ENV||"development",i=n.onerror;return function(a){var o,c,l;if(!a&&l2(e)){pE("cannot 404 after headers sent");return}if(a?(l=gle(a),l===void 0?l=yle(e):o=fle(a),c=hle(a,l,s)):(l=404,c="Cannot "+t.method+" "+sle(vle(t))),pE("default %s",l),a&&i&&ule(i,a,t,e),l2(e)){pE("cannot %d after headers sent",l),t.socket&&t.socket.destroy();return}ble(t,e,l,o,c)}}function fle(t){if(!(!t.headers||typeof t.headers!="object")){for(var e=Object.create(null),r=Object.keys(t.headers),n=0;n=400&&t.status<600)return t.status;if(typeof t.statusCode=="number"&&t.statusCode>=400&&t.statusCode<600)return t.statusCode}function vle(t){try{return ale.original(t).pathname}catch{return"resource"}}function yle(t){var e=t.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function l2(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function ble(t,e,r,n,s){function i(){var a=dle(s);if(e.statusCode=r,t.httpVersionMajor<2&&(e.statusMessage=p2.message[r]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),xle(e,n),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Content-Type","text/html; charset=utf-8"),e.setHeader("Content-Length",Buffer.byteLength(a,"utf8")),t.method==="HEAD"){e.end();return}e.end(a,"utf8")}if(ple(t)){i();return}ole(t),u2(t,i),t.resume()}function xle(t,e){if(e)for(var r=Object.keys(e),n=0;n{var $p=1e3,Lp=$p*60,Up=Lp*60,qp=Up*24,_le=qp*365.25;f2.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return wle(t);if(r==="number"&&isNaN(t)===!1)return e.long?Ele(t):Sle(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function wle(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*_le;case"days":case"day":case"d":return r*qp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Up;case"minutes":case"minute":case"mins":case"min":case"m":return r*Lp;case"seconds":case"second":case"secs":case"sec":case"s":return r*$p;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Sle(t){return t>=qp?Math.round(t/qp)+"d":t>=Up?Math.round(t/Up)+"h":t>=Lp?Math.round(t/Lp)+"m":t>=$p?Math.round(t/$p)+"s":t+"ms"}function Ele(t){return lg(t,qp,"day")||lg(t,Up,"hour")||lg(t,Lp,"minute")||lg(t,$p,"second")||t+" ms"}function lg(t,e,r){if(!(t{lt=g2.exports=mE.debug=mE.default=mE;lt.coerce=Ile;lt.disable=Rle;lt.enable=Tle;lt.enabled=Ple;lt.humanize=h2();lt.names=[];lt.skips=[];lt.formatters={};var dE;function kle(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return lt.colors[Math.abs(e)%lt.colors.length]}function mE(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(dE||n);r.diff=s,r.prev=dE,r.curr=n,dE=n;for(var i=new Array(arguments.length),a=0;a{Hr=y2.exports=fE();Hr.log=Ale;Hr.formatArgs=Ole;Hr.save=jle;Hr.load=v2;Hr.useColors=Cle;Hr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:Nle();Hr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function Cle(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Hr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function Ole(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Hr.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function Ale(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function jle(t){try{t==null?Hr.storage.removeItem("debug"):Hr.storage.debug=t}catch{}}function v2(){var t;try{t=Hr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Hr.enable(v2());function Nle(){try{return window.localStorage}catch{}}});var S2=P((dr,w2)=>{var x2=require("tty"),Fp=require("util");dr=w2.exports=fE();dr.init=qle;dr.log=$le;dr.formatArgs=zle;dr.save=Lle;dr.load=_2;dr.useColors=Mle;dr.colors=[6,2,3,4,5,1];dr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var Sc=parseInt(process.env.DEBUG_FD,10)||2;Sc!==1&&Sc!==2&&Fp.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var Dle=Sc===1?process.stdout:Sc===2?process.stderr:Ule(Sc);function Mle(){return"colors"in dr.inspectOpts?!!dr.inspectOpts.colors:x2.isatty(Sc)}dr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Fp.inspect(t,this.inspectOpts).split(` +`).map(function(e){return e.trim()}).join(" ")};dr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,Fp.inspect(t,this.inspectOpts)};function zle(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` `).join(` -`+s),t.push("\x1B[3"+n+"m+"+dr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function Ble(){return qle.write(Hp.format.apply(Hp,arguments)+` -`)}function Wle(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function E2(){return process.env.DEBUG}function Zle(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new k2.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function Gle(t){t.inspectOpts={};for(var e=Object.keys(dr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?yk.exports=S2():yk.exports=R2()});var Bp=P((sMe,C2)=>{"use strict";C2.exports=Vle;function P2(t,e,r){for(var n=0;n0&&Array.isArray(s)?P2(s,e,r-1):e.push(s)}return e}function I2(t,e){for(var r=0;r{j2.exports=A2;var O2=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function A2(t,e,r){r=r||{},e=e||[];var n=r.strict,s=r.end!==!1,i=r.sensitive?"":"i",a=r.lookahead!==!1,o=0,c=e.length,l=0,u=0,p=0,d="",m;if(t instanceof RegExp){for(;m=O2.exec(t.source);)m[0][0]!=="\\"&&e.push({name:m[1]||u++,optional:!1,offset:m.index});return t}if(Array.isArray(t))return t=t.map(function(f){return A2(f,e,r).source}),new RegExp(t.join("|"),i);if(typeof t!="string")throw new TypeError("path must be a string, array of strings, or regular expression");for(t=t.replace(/\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g,function(f,g,v,h,y,b,x,w){if(f[0]==="\\")return d+=f,p+=2,f;if(f===".")return d+="\\.",o+=1,p+=1,"\\.";if(g||v?d="":d+=t.slice(p,w),p=w+f.length,f==="*")return d="",o+=3,"(.*)";if(f==="/(")return d+="/",o+=2,"/(?:";g=g||"",v=v?"\\.":"",x=x||"",y=y?y.replace(/\\.|\*/,function(k){return k==="*"?"(.*)":k}):d?"((?:(?!/|"+d+").)+?)":"([^/"+v+"]+?)",e.push({name:h,optional:!!x,offset:w+o});var S="(?:"+v+g+y+(b?"((?:[/"+v+"].+?)?)":"")+")"+x;return d="",o+=S.length-f.length,S});m=O2.exec(t);)m[0][0]!=="\\"&&((c+l===e.length||e[c+l].offset>m.index)&&e.splice(c+l,0,{name:u++,optional:!1,offset:m.index}),l++);return t+=n?"":t[t.length-1]==="/"?"?":"/?",s?t+="$":t[t.length-1]!=="/"&&(t+=a?"(?=/|$)":"(?:/|$)"),new RegExp("^"+t,i)}});var bk=P((aMe,M2)=>{"use strict";var Kle=N2(),Jle=Ec()("express:router:layer"),Qle=Object.prototype.hasOwnProperty;M2.exports=Tc;function Tc(t,e,r){if(!(this instanceof Tc))return new Tc(t,e,r);Jle("new %o",t);var n=e||{};this.handle=r,this.name=r.name||"",this.params=void 0,this.path=void 0,this.regexp=Kle(t,this.keys=[],n),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&n.end===!1}Tc.prototype.handle_error=function(e,r,n,s){var i=this.handle;if(i.length!==4)return s(e);try{i(e,r,n,s)}catch(a){s(a)}};Tc.prototype.handle_request=function(e,r,n){var s=this.handle;if(s.length>3)return n();try{s(e,r,n)}catch(i){n(i)}};Tc.prototype.match=function(e){var r;if(e!=null){if(this.regexp.fast_slash)return this.params={},this.path="",!0;if(this.regexp.fast_star)return this.params={0:D2(e)},this.path=e,!0;r=this.regexp.exec(e)}if(!r)return this.params=void 0,this.path=void 0,!1;this.params={},this.path=r[0];for(var n=this.keys,s=this.params,i=1;i{"use strict";var z2=require("http");$2.exports=Yle()||Xle();function Yle(){return z2.METHODS&&z2.METHODS.map(function(e){return e.toLowerCase()})}function Xle(){return["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}});var xk=P((cMe,B2)=>{"use strict";var L2=Ec()("express:router:route"),U2=Bp(),q2=bk(),eue=dg(),F2=Array.prototype.slice,H2=Object.prototype.toString;B2.exports=Rc;function Rc(t){this.path=t,this.stack=[],L2("new %o",t),this.methods={}}Rc.prototype._handles_method=function(e){if(this.methods._all)return!0;var r=typeof e=="string"?e.toLowerCase():e;return r==="head"&&!this.methods.head&&(r="get"),!!this.methods[r]};Rc.prototype._options=function(){var e=Object.keys(this.methods);this.methods.get&&!this.methods.head&&e.push("head");for(var r=0;r100)return setImmediate(c,l);var u=i[s++];if(!u)return n(l);u.method&&u.method!==o?c(l):l?u.handle_error(l,e,r,c):u.handle_request(e,r,c),a=0}};Rc.prototype.all=function(){for(var e=U2(F2.call(arguments)),r=0;r{W2=Z2.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var wk=P((lMe,J2)=>{"use strict";var tue=xk(),V2=bk(),rue=dg(),_k=Wp(),mg=Ec()("express:router"),G2=js()("express"),nue=Bp(),sue=Sc(),iue=sp(),aue=/^\[object (\S+)\]$/,K2=Array.prototype.slice,oue=Object.prototype.toString,Fa=J2.exports=function(t){var e=t||{};function r(n,s,i){r.handle(n,s,i)}return iue(r,Fa),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};Fa.param=function(e,r){if(typeof e=="function"){G2("router.param(fn): Refactor to use path params"),this._params.push(e);return}var n=this._params,s=n.length,i;e[0]===":"&&(G2("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var a=0;a=d.length){setImmediate(g,b);return}if(++l>100)return setImmediate(v,y);var x=lue(e);if(x==null)return g(b);for(var w,S,k;S!==!0&&i=o.length)return i();if(u=0,p=o[c++],l=p.name,d=n.params[l],m=a[l],f=r[l],d===void 0||!m)return g();if(f&&(f.match===d||f.error&&f.error!=="route"))return n.params[l]=f.value,g(f.error);r[l]=f={error:null,match:d,value:d},v()}function v(h){var y=m[u++];if(f.value=n.params[p.name],h){f.error=h,g(h);return}if(!y)return g();try{y(n,s,v,d,p.name)}catch(b){v(b)}}g()};Fa.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(r=1,n=e)}var i=nue(K2.call(arguments,r));if(i.length===0)throw new TypeError("Router.use() requires a middleware function");for(var a=0;a");var o=new V2(n,{sensitive:this.caseSensitive,strict:!1,end:!1},e);o.route=void 0,this.stack.push(o)}return this};Fa.route=function(e){var r=new tue(e),n=new V2(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return n.route=r,this.stack.push(n),r};rue.concat("all").forEach(function(t){Fa[t]=function(e){var r=this.route(e);return r[t].apply(r,K2.call(arguments,1)),this}});function cue(t,e){for(var r=0;r=0;n--)t[n+s]=t[n],n{"use strict";var Q2=sp();Y2.init=function(t){return function(r,n,s){t.enabled("x-powered-by")&&n.setHeader("X-Powered-By","Express"),r.res=n,n.req=r,r.next=s,Q2(r,t.request),Q2(n,t.response),n.locals=n.locals||Object.create(null),s()}}});var Sk=P((pMe,eU)=>{"use strict";var vue=Wp(),yue=Sc(),bue=ag();eU.exports=function(e){var r=vue({},e),n=bue.parse;return typeof e=="function"&&(n=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(i,a,o){if(!i.query){var c=yue(i).query;i.query=n(c,r)}o()}}});var iU=P((dMe,sU)=>{"use strict";var fg=Ec()("express:view"),Zp=require("path"),xue=require("fs"),_ue=Zp.dirname,nU=Zp.basename,wue=Zp.extname,tU=Zp.join,Sue=Zp.resolve;sU.exports=hg;function hg(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=wue(t),this.name=t,this.root=r.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var n=t;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,n+=this.ext),!r.engines[this.ext]){var s=this.ext.slice(1);fg('require "%s"',s);var i=require(s).__express;if(typeof i!="function")throw new Error('Module "'+s+'" does not provide a view engine.');r.engines[this.ext]=i}this.engine=r.engines[this.ext],this.path=this.lookup(n)}hg.prototype.lookup=function(e){var r,n=[].concat(this.root);fg('lookup "%s"',e);for(var s=0;s{var gg=require("buffer"),Us=gg.Buffer;function aU(t,e){for(var r in t)e[r]=t[r]}Us.from&&Us.alloc&&Us.allocUnsafe&&Us.allocUnsafeSlow?oU.exports=gg:(aU(gg,kk),kk.Buffer=Ha);function Ha(t,e,r){return Us(t,e,r)}Ha.prototype=Object.create(Us.prototype);aU(Us,Ha);Ha.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return Us(t,e,r)};Ha.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=Us(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};Ha.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Us(t)};Ha.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return gg.SlowBuffer(t)}});var Tk=P((mMe,Ek)=>{"use strict";Ek.exports=Nue;Ek.exports.parse=$ue;var cU=require("path").basename,kue=vg().Buffer,Eue=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,Tue=/%[0-9A-Fa-f]{2}/,Rue=/%([0-9A-Fa-f]{2})/g,uU=/[^\x20-\x7e\xa0-\xff]/g,Pue=/\\([\u0000-\u007f])/g,Iue=/([\\"])/g,lU=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,Cue=/^[\x20-\x7e\x80-\xff]+$/,Oue=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,Aue=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,jue=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function Nue(t,e){var r=e||{},n=r.type||"attachment",s=Due(t,r.fallback);return Mue(new dU(n,s))}function Due(t,e){if(t!==void 0){var r={};if(typeof t!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&uU.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var n=cU(t),s=Cue.test(n),i=typeof e!="string"?e&&pU(n):cU(e),a=typeof i=="string"&&i!==n;return(a||!s||Tue.test(n))&&(r["filename*"]=n),(s||a)&&(r.filename=a?i:n),r}}function Mue(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!Oue.test(r))throw new TypeError("invalid type");var n=String(r).toLowerCase();if(e&&typeof e=="object")for(var s,i=Object.keys(e).sort(),a=0;a{var Gp=1e3,Vp=Gp*60,Kp=Vp*60,Jp=Kp*24,Hue=Jp*365.25;mU.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Bue(t);if(r==="number"&&isNaN(t)===!1)return e.long?Zue(t):Wue(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Bue(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Hue;case"days":case"day":case"d":return r*Jp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Kp;case"minutes":case"minute":case"mins":case"min":case"m":return r*Vp;case"seconds":case"second":case"secs":case"sec":case"s":return r*Gp;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Wue(t){return t>=Jp?Math.round(t/Jp)+"d":t>=Kp?Math.round(t/Kp)+"h":t>=Vp?Math.round(t/Vp)+"m":t>=Gp?Math.round(t/Gp)+"s":t+"ms"}function Zue(t){return yg(t,Jp,"day")||yg(t,Kp,"hour")||yg(t,Vp,"minute")||yg(t,Gp,"second")||t+" ms"}function yg(t,e,r){if(!(t{ut=hU.exports=Pk.debug=Pk.default=Pk;ut.coerce=Que;ut.disable=Kue;ut.enable=Vue;ut.enabled=Jue;ut.humanize=fU();ut.names=[];ut.skips=[];ut.formatters={};var Rk;function Gue(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ut.colors[Math.abs(e)%ut.colors.length]}function Pk(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(Rk||n);r.diff=s,r.prev=Rk,r.curr=n,Rk=n;for(var i=new Array(arguments.length),a=0;a{Br=vU.exports=Ik();Br.log=epe;Br.formatArgs=Xue;Br.save=tpe;Br.load=gU;Br.useColors=Yue;Br.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:rpe();Br.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function Yue(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Br.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function Xue(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Br.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function epe(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function tpe(t){try{t==null?Br.storage.removeItem("debug"):Br.storage.debug=t}catch{}}function gU(){var t;try{t=Br.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Br.enable(gU());function rpe(){try{return window.localStorage}catch{}}});var wU=P((mr,_U)=>{var bU=require("tty"),Qp=require("util");mr=_U.exports=Ik();mr.init=lpe;mr.log=ape;mr.formatArgs=ipe;mr.save=ope;mr.load=xU;mr.useColors=spe;mr.colors=[6,2,3,4,5,1];mr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var Pc=parseInt(process.env.DEBUG_FD,10)||2;Pc!==1&&Pc!==2&&Qp.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var npe=Pc===1?process.stdout:Pc===2?process.stderr:cpe(Pc);function spe(){return"colors"in mr.inspectOpts?!!mr.inspectOpts.colors:bU.isatty(Pc)}mr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Qp.inspect(t,this.inspectOpts).split(` -`).map(function(e){return e.trim()}).join(" ")};mr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,Qp.inspect(t,this.inspectOpts)};function ipe(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` +`+s),t.push("\x1B[3"+n+"m+"+dr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function $le(){return Dle.write(Fp.format.apply(Fp,arguments)+` +`)}function Lle(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function _2(){return process.env.DEBUG}function Ule(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new x2.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function qle(t){t.inspectOpts={};for(var e=Object.keys(dr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?hE.exports=b2():hE.exports=S2()});var Hp=P((QDe,T2)=>{"use strict";T2.exports=Fle;function E2(t,e,r){for(var n=0;n0&&Array.isArray(s)?E2(s,e,r-1):e.push(s)}return e}function k2(t,e){for(var r=0;r{I2.exports=P2;var R2=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function P2(t,e,r){r=r||{},e=e||[];var n=r.strict,s=r.end!==!1,i=r.sensitive?"":"i",a=r.lookahead!==!1,o=0,c=e.length,l=0,u=0,p=0,d="",m;if(t instanceof RegExp){for(;m=R2.exec(t.source);)m[0][0]!=="\\"&&e.push({name:m[1]||u++,optional:!1,offset:m.index});return t}if(Array.isArray(t))return t=t.map(function(f){return P2(f,e,r).source}),new RegExp(t.join("|"),i);if(typeof t!="string")throw new TypeError("path must be a string, array of strings, or regular expression");for(t=t.replace(/\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g,function(f,g,v,h,y,b,x,w){if(f[0]==="\\")return d+=f,p+=2,f;if(f===".")return d+="\\.",o+=1,p+=1,"\\.";if(g||v?d="":d+=t.slice(p,w),p=w+f.length,f==="*")return d="",o+=3,"(.*)";if(f==="/(")return d+="/",o+=2,"/(?:";g=g||"",v=v?"\\.":"",x=x||"",y=y?y.replace(/\\.|\*/,function(E){return E==="*"?"(.*)":E}):d?"((?:(?!/|"+d+").)+?)":"([^/"+v+"]+?)",e.push({name:h,optional:!!x,offset:w+o});var S="(?:"+v+g+y+(b?"((?:[/"+v+"].+?)?)":"")+")"+x;return d="",o+=S.length-f.length,S});m=R2.exec(t);)m[0][0]!=="\\"&&((c+l===e.length||e[c+l].offset>m.index)&&e.splice(c+l,0,{name:u++,optional:!1,offset:m.index}),l++);return t+=n?"":t[t.length-1]==="/"?"?":"/?",s?t+="$":t[t.length-1]!=="/"&&(t+=a?"(?=/|$)":"(?:/|$)"),new RegExp("^"+t,i)}});var gE=P((XDe,A2)=>{"use strict";var Hle=C2(),Ble=Ec()("express:router:layer"),Wle=Object.prototype.hasOwnProperty;A2.exports=kc;function kc(t,e,r){if(!(this instanceof kc))return new kc(t,e,r);Ble("new %o",t);var n=e||{};this.handle=r,this.name=r.name||"",this.params=void 0,this.path=void 0,this.regexp=Hle(t,this.keys=[],n),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&n.end===!1}kc.prototype.handle_error=function(e,r,n,s){var i=this.handle;if(i.length!==4)return s(e);try{i(e,r,n,s)}catch(a){s(a)}};kc.prototype.handle_request=function(e,r,n){var s=this.handle;if(s.length>3)return n();try{s(e,r,n)}catch(i){n(i)}};kc.prototype.match=function(e){var r;if(e!=null){if(this.regexp.fast_slash)return this.params={},this.path="",!0;if(this.regexp.fast_star)return this.params={0:O2(e)},this.path=e,!0;r=this.regexp.exec(e)}if(!r)return this.params=void 0,this.path=void 0,!1;this.params={},this.path=r[0];for(var n=this.keys,s=this.params,i=1;i{"use strict";var j2=require("http");N2.exports=Zle()||Gle();function Zle(){return j2.METHODS&&j2.METHODS.map(function(e){return e.toLowerCase()})}function Gle(){return["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}});var vE=P((tMe,U2)=>{"use strict";var D2=Ec()("express:router:route"),M2=Hp(),z2=gE(),Vle=ug(),$2=Array.prototype.slice,L2=Object.prototype.toString;U2.exports=Tc;function Tc(t){this.path=t,this.stack=[],D2("new %o",t),this.methods={}}Tc.prototype._handles_method=function(e){if(this.methods._all)return!0;var r=typeof e=="string"?e.toLowerCase():e;return r==="head"&&!this.methods.head&&(r="get"),!!this.methods[r]};Tc.prototype._options=function(){var e=Object.keys(this.methods);this.methods.get&&!this.methods.head&&e.push("head");for(var r=0;r100)return setImmediate(c,l);var u=i[s++];if(!u)return n(l);u.method&&u.method!==o?c(l):l?u.handle_error(l,e,r,c):u.handle_request(e,r,c),a=0}};Tc.prototype.all=function(){for(var e=M2($2.call(arguments)),r=0;r{q2=F2.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var bE=P((rMe,Z2)=>{"use strict";var Kle=vE(),B2=gE(),Jle=ug(),yE=Bp(),pg=Ec()("express:router"),H2=js()("express"),Qle=Hp(),Yle=wc(),Xle=np(),eue=/^\[object (\S+)\]$/,W2=Array.prototype.slice,tue=Object.prototype.toString,qa=Z2.exports=function(t){var e=t||{};function r(n,s,i){r.handle(n,s,i)}return Xle(r,qa),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};qa.param=function(e,r){if(typeof e=="function"){H2("router.param(fn): Refactor to use path params"),this._params.push(e);return}var n=this._params,s=n.length,i;e[0]===":"&&(H2("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var a=0;a=d.length){setImmediate(g,b);return}if(++l>100)return setImmediate(v,y);var x=nue(e);if(x==null)return g(b);for(var w,S,E;S!==!0&&i=o.length)return i();if(u=0,p=o[c++],l=p.name,d=n.params[l],m=a[l],f=r[l],d===void 0||!m)return g();if(f&&(f.match===d||f.error&&f.error!=="route"))return n.params[l]=f.value,g(f.error);r[l]=f={error:null,match:d,value:d},v()}function v(h){var y=m[u++];if(f.value=n.params[p.name],h){f.error=h,g(h);return}if(!y)return g();try{y(n,s,v,d,p.name)}catch(b){v(b)}}g()};qa.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(r=1,n=e)}var i=Qle(W2.call(arguments,r));if(i.length===0)throw new TypeError("Router.use() requires a middleware function");for(var a=0;a");var o=new B2(n,{sensitive:this.caseSensitive,strict:!1,end:!1},e);o.route=void 0,this.stack.push(o)}return this};qa.route=function(e){var r=new Kle(e),n=new B2(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return n.route=r,this.stack.push(n),r};Jle.concat("all").forEach(function(t){qa[t]=function(e){var r=this.route(e);return r[t].apply(r,W2.call(arguments,1)),this}});function rue(t,e){for(var r=0;r=0;n--)t[n+s]=t[n],n{"use strict";var G2=np();V2.init=function(t){return function(r,n,s){t.enabled("x-powered-by")&&n.setHeader("X-Powered-By","Express"),r.res=n,n.req=r,r.next=s,G2(r,t.request),G2(n,t.response),n.locals=n.locals||Object.create(null),s()}}});var xE=P((sMe,J2)=>{"use strict";var pue=Bp(),due=wc(),mue=sg();J2.exports=function(e){var r=pue({},e),n=mue.parse;return typeof e=="function"&&(n=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(i,a,o){if(!i.query){var c=due(i).query;i.query=n(c,r)}o()}}});var tU=P((iMe,eU)=>{"use strict";var dg=Ec()("express:view"),Wp=require("path"),fue=require("fs"),hue=Wp.dirname,X2=Wp.basename,gue=Wp.extname,Q2=Wp.join,vue=Wp.resolve;eU.exports=mg;function mg(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=gue(t),this.name=t,this.root=r.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var n=t;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,n+=this.ext),!r.engines[this.ext]){var s=this.ext.slice(1);dg('require "%s"',s);var i=require(s).__express;if(typeof i!="function")throw new Error('Module "'+s+'" does not provide a view engine.');r.engines[this.ext]=i}this.engine=r.engines[this.ext],this.path=this.lookup(n)}mg.prototype.lookup=function(e){var r,n=[].concat(this.root);dg('lookup "%s"',e);for(var s=0;s{var fg=require("buffer"),Us=fg.Buffer;function rU(t,e){for(var r in t)e[r]=t[r]}Us.from&&Us.alloc&&Us.allocUnsafe&&Us.allocUnsafeSlow?nU.exports=fg:(rU(fg,_E),_E.Buffer=Fa);function Fa(t,e,r){return Us(t,e,r)}Fa.prototype=Object.create(Us.prototype);rU(Us,Fa);Fa.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return Us(t,e,r)};Fa.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=Us(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};Fa.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Us(t)};Fa.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return fg.SlowBuffer(t)}});var SE=P((aMe,wE)=>{"use strict";wE.exports=Pue;wE.exports.parse=Aue;var sU=require("path").basename,yue=hg().Buffer,bue=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,xue=/%[0-9A-Fa-f]{2}/,_ue=/%([0-9A-Fa-f]{2})/g,aU=/[^\x20-\x7e\xa0-\xff]/g,wue=/\\([\u0000-\u007f])/g,Sue=/([\\"])/g,iU=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,Eue=/^[\x20-\x7e\x80-\xff]+$/,kue=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,Tue=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,Rue=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function Pue(t,e){var r=e||{},n=r.type||"attachment",s=Iue(t,r.fallback);return Cue(new cU(n,s))}function Iue(t,e){if(t!==void 0){var r={};if(typeof t!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&aU.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var n=sU(t),s=Eue.test(n),i=typeof e!="string"?e&&oU(n):sU(e),a=typeof i=="string"&&i!==n;return(a||!s||xue.test(n))&&(r["filename*"]=n),(s||a)&&(r.filename=a?i:n),r}}function Cue(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!kue.test(r))throw new TypeError("invalid type");var n=String(r).toLowerCase();if(e&&typeof e=="object")for(var s,i=Object.keys(e).sort(),a=0;a{var Zp=1e3,Gp=Zp*60,Vp=Gp*60,Kp=Vp*24,zue=Kp*365.25;lU.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return $ue(t);if(r==="number"&&isNaN(t)===!1)return e.long?Uue(t):Lue(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function $ue(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*zue;case"days":case"day":case"d":return r*Kp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Vp;case"minutes":case"minute":case"mins":case"min":case"m":return r*Gp;case"seconds":case"second":case"secs":case"sec":case"s":return r*Zp;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Lue(t){return t>=Kp?Math.round(t/Kp)+"d":t>=Vp?Math.round(t/Vp)+"h":t>=Gp?Math.round(t/Gp)+"m":t>=Zp?Math.round(t/Zp)+"s":t+"ms"}function Uue(t){return gg(t,Kp,"day")||gg(t,Vp,"hour")||gg(t,Gp,"minute")||gg(t,Zp,"second")||t+" ms"}function gg(t,e,r){if(!(t{ut=pU.exports=kE.debug=kE.default=kE;ut.coerce=Wue;ut.disable=Hue;ut.enable=Fue;ut.enabled=Bue;ut.humanize=uU();ut.names=[];ut.skips=[];ut.formatters={};var EE;function que(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ut.colors[Math.abs(e)%ut.colors.length]}function kE(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(EE||n);r.diff=s,r.prev=EE,r.curr=n,EE=n;for(var i=new Array(arguments.length),a=0;a{Br=mU.exports=TE();Br.log=Vue;Br.formatArgs=Gue;Br.save=Kue;Br.load=dU;Br.useColors=Zue;Br.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:Jue();Br.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function Zue(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Br.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function Gue(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Br.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function Vue(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function Kue(t){try{t==null?Br.storage.removeItem("debug"):Br.storage.debug=t}catch{}}function dU(){var t;try{t=Br.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Br.enable(dU());function Jue(){try{return window.localStorage}catch{}}});var yU=P((mr,vU)=>{var hU=require("tty"),Jp=require("util");mr=vU.exports=TE();mr.init=npe;mr.log=epe;mr.formatArgs=Xue;mr.save=tpe;mr.load=gU;mr.useColors=Yue;mr.colors=[6,2,3,4,5,1];mr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var Rc=parseInt(process.env.DEBUG_FD,10)||2;Rc!==1&&Rc!==2&&Jp.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var Que=Rc===1?process.stdout:Rc===2?process.stderr:rpe(Rc);function Yue(){return"colors"in mr.inspectOpts?!!mr.inspectOpts.colors:hU.isatty(Rc)}mr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Jp.inspect(t,this.inspectOpts).split(` +`).map(function(e){return e.trim()}).join(" ")};mr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,Jp.inspect(t,this.inspectOpts)};function Xue(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` `).join(` -`+s),t.push("\x1B[3"+n+"m+"+mr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function ape(){return npe.write(Qp.format.apply(Qp,arguments)+` -`)}function ope(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function xU(){return process.env.DEBUG}function cpe(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new bU.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function lpe(t){t.inspectOpts={};for(var e=Object.keys(mr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?Ck.exports=yU():Ck.exports=wU()});var Ok=P((gMe,TU)=>{"use strict";TU.exports=dpe;var upe=require("crypto"),kU=require("fs").Stats,EU=Object.prototype.toString;function ppe(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=upe.createHash("sha1").update(t,"utf8").digest("base64").substring(0,27),r=typeof t=="string"?Buffer.byteLength(t,"utf8"):t.length;return'"'+r.toString(16)+"-"+e+'"'}function dpe(t,e){if(t==null)throw new TypeError("argument entity is required");var r=mpe(t),n=e&&typeof e.weak=="boolean"?e.weak:r;if(!r&&typeof t!="string"&&!Buffer.isBuffer(t))throw new TypeError("argument entity must be string, Buffer, or fs.Stats");var s=r?fpe(t):ppe(t);return n?"W/"+s:s}function mpe(t){return typeof kU=="function"&&t instanceof kU?!0:t&&typeof t=="object"&&"ctime"in t&&EU.call(t.ctime)==="[object Date]"&&"mtime"in t&&EU.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function fpe(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var Ak=P((vMe,PU)=>{"use strict";var hpe=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;PU.exports=gpe;function gpe(t,e){var r=t["if-modified-since"],n=t["if-none-match"];if(!r&&!n)return!1;var s=t["cache-control"];if(s&&hpe.test(s))return!1;if(n&&n!=="*"){var i=e.etag;if(!i)return!1;for(var a=!0,o=vpe(n),c=0;c{ype.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}});var OU=P((xMe,CU)=>{var bMe=require("path"),bpe=require("fs");function Cc(){this.types=Object.create(null),this.extensions=Object.create(null)}Cc.prototype.define=function(t){for(var e in t){for(var r=t[e],n=0;n{var Oc=1e3,Ac=Oc*60,jc=Ac*60,Ba=jc*24,xpe=Ba*7,_pe=Ba*365.25;AU.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return wpe(t);if(r==="number"&&isFinite(t))return e.long?kpe(t):Spe(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function wpe(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*_pe;case"weeks":case"week":case"w":return r*xpe;case"days":case"day":case"d":return r*Ba;case"hours":case"hour":case"hrs":case"hr":case"h":return r*jc;case"minutes":case"minute":case"mins":case"min":case"m":return r*Ac;case"seconds":case"second":case"secs":case"sec":case"s":return r*Oc;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Spe(t){var e=Math.abs(t);return e>=Ba?Math.round(t/Ba)+"d":e>=jc?Math.round(t/jc)+"h":e>=Ac?Math.round(t/Ac)+"m":e>=Oc?Math.round(t/Oc)+"s":t+"ms"}function kpe(t){var e=Math.abs(t);return e>=Ba?bg(t,e,Ba,"day"):e>=jc?bg(t,e,jc,"hour"):e>=Ac?bg(t,e,Ac,"minute"):e>=Oc?bg(t,e,Oc,"second"):t+" ms"}function bg(t,e,r,n){var s=e>=r*1.5;return Math.round(t/r)+" "+n+(s?"s":"")}});var jk=P((wMe,NU)=>{"use strict";NU.exports=Epe;function Epe(t,e,r){if(typeof e!="string")throw new TypeError("argument str must be a string");var n=e.indexOf("=");if(n===-1)return-2;var s=e.slice(n+1).split(","),i=[];i.type=e.slice(0,n);for(var a=0;at-1&&(l=t-1),!(isNaN(c)||isNaN(l)||c>l||c<0)&&i.push({start:c,end:l})}return i.length<1?-1:r&&r.combine?Tpe(i):i}function Tpe(t){for(var e=t.map(Rpe).sort(Cpe),r=0,n=1;ni.end+1?e[++r]=s:s.end>i.end&&(i.end=s.end,i.index=Math.min(i.index,s.index))}e.length=r+1;var a=e.sort(Ipe).map(Ppe);return a.type=t.type,a}function Rpe(t,e){return{start:t.start,end:t.end,index:e}}function Ppe(t){return{start:t.start,end:t.end}}function Ipe(t,e){return t.index-e.index}function Cpe(t,e){return t.start-e.start}});var Sg=P((SMe,Lk)=>{"use strict";var Nk=Oa(),Ft=SU()("send"),Wa=js()("send"),Ope=eS(),Ape=zp(),zU=$p(),jpe=Ok(),Npe=Ak(),_g=require("fs"),Mk=OU(),$U=jU(),Dpe=hp(),Mpe=jk(),Yp=require("path"),zpe=ip(),LU=require("stream"),$pe=require("util"),Lpe=Yp.extname,UU=Yp.join,Dk=Yp.normalize,$k=Yp.resolve,xg=Yp.sep,Upe=/^ *bytes=/,qU=3600*24*365*1e3,DU=/(?:^|[\\/])\.\.(?:[\\/]|$)/;Lk.exports=qpe;Lk.exports.mime=Mk;function qpe(t,e,r){return new pt(t,e,r)}function pt(t,e,r){LU.call(this);var n=r||{};if(this.options=n,this.path=e,this.req=t,this._acceptRanges=n.acceptRanges!==void 0?!!n.acceptRanges:!0,this._cacheControl=n.cacheControl!==void 0?!!n.cacheControl:!0,this._etag=n.etag!==void 0?!!n.etag:!0,this._dotfiles=n.dotfiles!==void 0?n.dotfiles:"ignore",this._dotfiles!=="ignore"&&this._dotfiles!=="allow"&&this._dotfiles!=="deny")throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._hidden=!!n.hidden,n.hidden!==void 0&&Wa("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),n.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=n.extensions!==void 0?zk(n.extensions,"extensions option"):[],this._immutable=n.immutable!==void 0?!!n.immutable:!1,this._index=n.index!==void 0?zk(n.index,"index option"):["index.html"],this._lastModified=n.lastModified!==void 0?!!n.lastModified:!0,this._maxage=n.maxAge||n.maxage,this._maxage=typeof this._maxage=="string"?$U(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),qU),this._root=n.root?$k(n.root):null,!this._root&&n.from&&this.from(n.from)}$pe.inherits(pt,LU);pt.prototype.etag=Wa.function(function(e){return this._etag=!!e,Ft("etag %s",this._etag),this},"send.etag: pass etag as option");pt.prototype.hidden=Wa.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,Ft("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");pt.prototype.index=Wa.function(function(e){var r=e?zk(e,"paths argument"):[];return Ft("index %o",e),this._index=r,this},"send.index: pass index as option");pt.prototype.root=function(e){return this._root=$k(String(e)),Ft("root %s",this._root),this};pt.prototype.from=Wa.function(pt.prototype.root,"send.from: pass root as option");pt.prototype.root=Wa.function(pt.prototype.root,"send.root: pass root as option");pt.prototype.maxage=Wa.function(function(e){return this._maxage=typeof e=="string"?$U(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),qU),Ft("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");pt.prototype.error=function(e,r){if(HU(this,"error"))return this.emit("error",Wpe(e,r));var n=this.res,s=zpe.message[e]||String(e),i=FU("Error",zU(s));Fpe(n),r&&r.headers&&Jpe(n,r.headers),n.statusCode=e,n.setHeader("Content-Type","text/html; charset=UTF-8"),n.setHeader("Content-Length",Buffer.byteLength(i)),n.setHeader("Content-Security-Policy","default-src 'none'"),n.setHeader("X-Content-Type-Options","nosniff"),n.end(i)};pt.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};pt.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]};pt.prototype.isPreconditionFailure=function(){var e=this.req,r=this.res,n=e.headers["if-match"];if(n){var s=r.getHeader("ETag");return!s||n!=="*"&&Kpe(n).every(function(o){return o!==s&&o!=="W/"+s&&"W/"+o!==s})}var i=wg(e.headers["if-unmodified-since"]);if(!isNaN(i)){var a=wg(r.getHeader("Last-Modified"));return isNaN(a)||a>i}return!1};pt.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")};pt.prototype.notModified=function(){var e=this.res;Ft("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};pt.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");Ft("headers already sent"),this.error(500,e)};pt.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};pt.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};pt.prototype.isFresh=function(){return Npe(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};pt.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(e.indexOf('"')!==-1){var r=this.res.getHeader("ETag");return!!(r&&e.indexOf(r)!==-1)}var n=this.res.getHeader("Last-Modified");return wg(n)<=wg(e)};pt.prototype.redirect=function(e){var r=this.res;if(HU(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var n=Ape(Hpe(this.path+"/")),s=FU("Redirecting","Redirecting to "+zU(n));r.statusCode=301,r.setHeader("Content-Type","text/html; charset=UTF-8"),r.setHeader("Content-Length",Buffer.byteLength(s)),r.setHeader("Content-Security-Policy","default-src 'none'"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("Location",n),r.end(s)};pt.prototype.pipe=function(e){var r=this._root;this.res=e;var n=Zpe(this.path);if(n===-1)return this.error(400),e;if(~n.indexOf("\0"))return this.error(400),e;var s;if(r!==null){if(n&&(n=Dk("."+xg+n)),DU.test(n))return Ft('malicious path "%s"',n),this.error(403),e;s=n.split(xg),n=Dk(UU(r,n))}else{if(DU.test(n))return Ft('malicious path "%s"',n),this.error(403),e;s=Dk(n).split(xg),n=$k(n)}if(Bpe(s)){var i=this._dotfiles;switch(i===void 0&&(i=s[s.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),Ft('%s dotfile "%s"',i,n),i){case"allow":break;case"deny":return this.error(403),e;default:return this.error(404),e}}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(n),e):(this.sendFile(n),e)};pt.prototype.send=function(e,r){var n=r.size,s=this.options,i={},a=this.res,o=this.req,c=o.headers.range,l=s.start||0;if(Vpe(a)){this.headersAlreadySent();return}if(Ft('pipe "%s"',e),this.setHeader(e,r),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure()){this.error(412);return}if(this.isCachable()&&this.isFresh()){this.notModified();return}}if(n=Math.max(0,n-l),s.end!==void 0){var u=s.end-l+1;n>u&&(n=u)}if(this._acceptRanges&&Upe.test(c)){if(c=Mpe(n,c,{combine:!0}),this.isRangeFresh()||(Ft("range stale"),c=-2),c===-1)return Ft("range unsatisfiable"),a.setHeader("Content-Range",MU("bytes",n)),this.error(416,{headers:{"Content-Range":a.getHeader("Content-Range")}});c!==-2&&c.length===1&&(Ft("range %j",c),a.statusCode=206,a.setHeader("Content-Range",MU("bytes",n,c[0])),l+=c[0].start,n=c[0].end-c[0].start+1)}for(var p in s)i[p]=s[p];if(i.start=l,i.end=Math.max(l,l+n-1),a.setHeader("Content-Length",n),o.method==="HEAD"){a.end();return}this.stream(e,i)};pt.prototype.sendFile=function(e){var r=0,n=this;Ft('stat "%s"',e),_g.stat(e,function(a,o){if(a&&a.code==="ENOENT"&&!Lpe(e)&&e[e.length-1]!==xg)return s(a);if(a)return n.onStatError(a);if(o.isDirectory())return n.redirect(e);n.emit("file",e,o),n.send(e,o)});function s(i){if(n._extensions.length<=r)return i?n.onStatError(i):n.error(404);var a=e+"."+n._extensions[r++];Ft('stat "%s"',a),_g.stat(a,function(o,c){if(o)return s(o);if(c.isDirectory())return s();n.emit("file",a,c),n.send(a,c)})}};pt.prototype.sendIndex=function(e){var r=-1,n=this;function s(i){if(++r>=n._index.length)return i?n.onStatError(i):n.error(404);var a=UU(e,n._index[r]);Ft('stat "%s"',a),_g.stat(a,function(o,c){if(o)return s(o);if(c.isDirectory())return s();n.emit("file",a,c),n.send(a,c)})}s()};pt.prototype.stream=function(e,r){var n=this,s=this.res,i=_g.createReadStream(e,r);this.emit("stream",i),i.pipe(s);function a(){Ope(i,!0)}Dpe(s,a),i.on("error",function(c){a(),n.onStatError(c)}),i.on("end",function(){n.emit("end")})};pt.prototype.type=function(e){var r=this.res;if(!r.getHeader("Content-Type")){var n=Mk.lookup(e);if(!n){Ft("no content-type");return}var s=Mk.charsets.lookup(n);Ft("content-type %s",n),r.setHeader("Content-Type",n+(s?"; charset="+s:""))}};pt.prototype.setHeader=function(e,r){var n=this.res;if(this.emit("headers",n,e,r),this._acceptRanges&&!n.getHeader("Accept-Ranges")&&(Ft("accept ranges"),n.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!n.getHeader("Cache-Control")){var s="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(s+=", immutable"),Ft("cache-control %s",s),n.setHeader("Cache-Control",s)}if(this._lastModified&&!n.getHeader("Last-Modified")){var i=r.mtime.toUTCString();Ft("modified %s",i),n.setHeader("Last-Modified",i)}if(this._etag&&!n.getHeader("ETag")){var a=jpe(r);Ft("etag %s",a),n.setHeader("ETag",a)}};function Fpe(t){for(var e=Gpe(t),r=0;r1?"/"+t.substr(e):t}function Bpe(t){for(var e=0;e1&&r[0]===".")return!0}return!1}function MU(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function FU(t,e){return` +`+s),t.push("\x1B[3"+n+"m+"+mr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function epe(){return Que.write(Jp.format.apply(Jp,arguments)+` +`)}function tpe(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function gU(){return process.env.DEBUG}function rpe(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new hU.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function npe(t){t.inspectOpts={};for(var e=Object.keys(mr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?RE.exports=fU():RE.exports=yU()});var PE=P((lMe,wU)=>{"use strict";wU.exports=ape;var spe=require("crypto"),xU=require("fs").Stats,_U=Object.prototype.toString;function ipe(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=spe.createHash("sha1").update(t,"utf8").digest("base64").substring(0,27),r=typeof t=="string"?Buffer.byteLength(t,"utf8"):t.length;return'"'+r.toString(16)+"-"+e+'"'}function ape(t,e){if(t==null)throw new TypeError("argument entity is required");var r=ope(t),n=e&&typeof e.weak=="boolean"?e.weak:r;if(!r&&typeof t!="string"&&!Buffer.isBuffer(t))throw new TypeError("argument entity must be string, Buffer, or fs.Stats");var s=r?cpe(t):ipe(t);return n?"W/"+s:s}function ope(t){return typeof xU=="function"&&t instanceof xU?!0:t&&typeof t=="object"&&"ctime"in t&&_U.call(t.ctime)==="[object Date]"&&"mtime"in t&&_U.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function cpe(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var IE=P((uMe,EU)=>{"use strict";var lpe=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;EU.exports=upe;function upe(t,e){var r=t["if-modified-since"],n=t["if-none-match"];if(!r&&!n)return!1;var s=t["cache-control"];if(s&&lpe.test(s))return!1;if(n&&n!=="*"){var i=e.etag;if(!i)return!1;for(var a=!0,o=ppe(n),c=0;c{dpe.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}});var RU=P((mMe,TU)=>{var dMe=require("path"),mpe=require("fs");function Ic(){this.types=Object.create(null),this.extensions=Object.create(null)}Ic.prototype.define=function(t){for(var e in t){for(var r=t[e],n=0;n{var Cc=1e3,Oc=Cc*60,Ac=Oc*60,Ha=Ac*24,fpe=Ha*7,hpe=Ha*365.25;PU.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return gpe(t);if(r==="number"&&isFinite(t))return e.long?ype(t):vpe(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function gpe(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*hpe;case"weeks":case"week":case"w":return r*fpe;case"days":case"day":case"d":return r*Ha;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ac;case"minutes":case"minute":case"mins":case"min":case"m":return r*Oc;case"seconds":case"second":case"secs":case"sec":case"s":return r*Cc;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function vpe(t){var e=Math.abs(t);return e>=Ha?Math.round(t/Ha)+"d":e>=Ac?Math.round(t/Ac)+"h":e>=Oc?Math.round(t/Oc)+"m":e>=Cc?Math.round(t/Cc)+"s":t+"ms"}function ype(t){var e=Math.abs(t);return e>=Ha?vg(t,e,Ha,"day"):e>=Ac?vg(t,e,Ac,"hour"):e>=Oc?vg(t,e,Oc,"minute"):e>=Cc?vg(t,e,Cc,"second"):t+" ms"}function vg(t,e,r,n){var s=e>=r*1.5;return Math.round(t/r)+" "+n+(s?"s":"")}});var CE=P((hMe,CU)=>{"use strict";CU.exports=bpe;function bpe(t,e,r){if(typeof e!="string")throw new TypeError("argument str must be a string");var n=e.indexOf("=");if(n===-1)return-2;var s=e.slice(n+1).split(","),i=[];i.type=e.slice(0,n);for(var a=0;at-1&&(l=t-1),!(isNaN(c)||isNaN(l)||c>l||c<0)&&i.push({start:c,end:l})}return i.length<1?-1:r&&r.combine?xpe(i):i}function xpe(t){for(var e=t.map(_pe).sort(Epe),r=0,n=1;ni.end+1?e[++r]=s:s.end>i.end&&(i.end=s.end,i.index=Math.min(i.index,s.index))}e.length=r+1;var a=e.sort(Spe).map(wpe);return a.type=t.type,a}function _pe(t,e){return{start:t.start,end:t.end,index:e}}function wpe(t){return{start:t.start,end:t.end}}function Spe(t,e){return t.index-e.index}function Epe(t,e){return t.start-e.start}});var _g=P((gMe,ME)=>{"use strict";var OE=Ca(),Ft=bU()("send"),Ba=js()("send"),kpe=Qw(),Tpe=Mp(),jU=zp(),Rpe=PE(),Ppe=IE(),bg=require("fs"),jE=RU(),NU=IU(),Ipe=fp(),Cpe=CE(),Qp=require("path"),Ope=sp(),DU=require("stream"),Ape=require("util"),jpe=Qp.extname,MU=Qp.join,AE=Qp.normalize,DE=Qp.resolve,yg=Qp.sep,Npe=/^ *bytes=/,zU=3600*24*365*1e3,OU=/(?:^|[\\/])\.\.(?:[\\/]|$)/;ME.exports=Dpe;ME.exports.mime=jE;function Dpe(t,e,r){return new pt(t,e,r)}function pt(t,e,r){DU.call(this);var n=r||{};if(this.options=n,this.path=e,this.req=t,this._acceptRanges=n.acceptRanges!==void 0?!!n.acceptRanges:!0,this._cacheControl=n.cacheControl!==void 0?!!n.cacheControl:!0,this._etag=n.etag!==void 0?!!n.etag:!0,this._dotfiles=n.dotfiles!==void 0?n.dotfiles:"ignore",this._dotfiles!=="ignore"&&this._dotfiles!=="allow"&&this._dotfiles!=="deny")throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._hidden=!!n.hidden,n.hidden!==void 0&&Ba("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),n.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=n.extensions!==void 0?NE(n.extensions,"extensions option"):[],this._immutable=n.immutable!==void 0?!!n.immutable:!1,this._index=n.index!==void 0?NE(n.index,"index option"):["index.html"],this._lastModified=n.lastModified!==void 0?!!n.lastModified:!0,this._maxage=n.maxAge||n.maxage,this._maxage=typeof this._maxage=="string"?NU(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),zU),this._root=n.root?DE(n.root):null,!this._root&&n.from&&this.from(n.from)}Ape.inherits(pt,DU);pt.prototype.etag=Ba.function(function(e){return this._etag=!!e,Ft("etag %s",this._etag),this},"send.etag: pass etag as option");pt.prototype.hidden=Ba.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,Ft("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");pt.prototype.index=Ba.function(function(e){var r=e?NE(e,"paths argument"):[];return Ft("index %o",e),this._index=r,this},"send.index: pass index as option");pt.prototype.root=function(e){return this._root=DE(String(e)),Ft("root %s",this._root),this};pt.prototype.from=Ba.function(pt.prototype.root,"send.from: pass root as option");pt.prototype.root=Ba.function(pt.prototype.root,"send.root: pass root as option");pt.prototype.maxage=Ba.function(function(e){return this._maxage=typeof e=="string"?NU(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),zU),Ft("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");pt.prototype.error=function(e,r){if(LU(this,"error"))return this.emit("error",Lpe(e,r));var n=this.res,s=Ope.message[e]||String(e),i=$U("Error",jU(s));Mpe(n),r&&r.headers&&Bpe(n,r.headers),n.statusCode=e,n.setHeader("Content-Type","text/html; charset=UTF-8"),n.setHeader("Content-Length",Buffer.byteLength(i)),n.setHeader("Content-Security-Policy","default-src 'none'"),n.setHeader("X-Content-Type-Options","nosniff"),n.end(i)};pt.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};pt.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]};pt.prototype.isPreconditionFailure=function(){var e=this.req,r=this.res,n=e.headers["if-match"];if(n){var s=r.getHeader("ETag");return!s||n!=="*"&&Hpe(n).every(function(o){return o!==s&&o!=="W/"+s&&"W/"+o!==s})}var i=xg(e.headers["if-unmodified-since"]);if(!isNaN(i)){var a=xg(r.getHeader("Last-Modified"));return isNaN(a)||a>i}return!1};pt.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")};pt.prototype.notModified=function(){var e=this.res;Ft("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};pt.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");Ft("headers already sent"),this.error(500,e)};pt.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};pt.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};pt.prototype.isFresh=function(){return Ppe(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};pt.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(e.indexOf('"')!==-1){var r=this.res.getHeader("ETag");return!!(r&&e.indexOf(r)!==-1)}var n=this.res.getHeader("Last-Modified");return xg(n)<=xg(e)};pt.prototype.redirect=function(e){var r=this.res;if(LU(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var n=Tpe(zpe(this.path+"/")),s=$U("Redirecting","Redirecting to "+jU(n));r.statusCode=301,r.setHeader("Content-Type","text/html; charset=UTF-8"),r.setHeader("Content-Length",Buffer.byteLength(s)),r.setHeader("Content-Security-Policy","default-src 'none'"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("Location",n),r.end(s)};pt.prototype.pipe=function(e){var r=this._root;this.res=e;var n=Upe(this.path);if(n===-1)return this.error(400),e;if(~n.indexOf("\0"))return this.error(400),e;var s;if(r!==null){if(n&&(n=AE("."+yg+n)),OU.test(n))return Ft('malicious path "%s"',n),this.error(403),e;s=n.split(yg),n=AE(MU(r,n))}else{if(OU.test(n))return Ft('malicious path "%s"',n),this.error(403),e;s=AE(n).split(yg),n=DE(n)}if($pe(s)){var i=this._dotfiles;switch(i===void 0&&(i=s[s.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),Ft('%s dotfile "%s"',i,n),i){case"allow":break;case"deny":return this.error(403),e;default:return this.error(404),e}}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(n),e):(this.sendFile(n),e)};pt.prototype.send=function(e,r){var n=r.size,s=this.options,i={},a=this.res,o=this.req,c=o.headers.range,l=s.start||0;if(Fpe(a)){this.headersAlreadySent();return}if(Ft('pipe "%s"',e),this.setHeader(e,r),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure()){this.error(412);return}if(this.isCachable()&&this.isFresh()){this.notModified();return}}if(n=Math.max(0,n-l),s.end!==void 0){var u=s.end-l+1;n>u&&(n=u)}if(this._acceptRanges&&Npe.test(c)){if(c=Cpe(n,c,{combine:!0}),this.isRangeFresh()||(Ft("range stale"),c=-2),c===-1)return Ft("range unsatisfiable"),a.setHeader("Content-Range",AU("bytes",n)),this.error(416,{headers:{"Content-Range":a.getHeader("Content-Range")}});c!==-2&&c.length===1&&(Ft("range %j",c),a.statusCode=206,a.setHeader("Content-Range",AU("bytes",n,c[0])),l+=c[0].start,n=c[0].end-c[0].start+1)}for(var p in s)i[p]=s[p];if(i.start=l,i.end=Math.max(l,l+n-1),a.setHeader("Content-Length",n),o.method==="HEAD"){a.end();return}this.stream(e,i)};pt.prototype.sendFile=function(e){var r=0,n=this;Ft('stat "%s"',e),bg.stat(e,function(a,o){if(a&&a.code==="ENOENT"&&!jpe(e)&&e[e.length-1]!==yg)return s(a);if(a)return n.onStatError(a);if(o.isDirectory())return n.redirect(e);n.emit("file",e,o),n.send(e,o)});function s(i){if(n._extensions.length<=r)return i?n.onStatError(i):n.error(404);var a=e+"."+n._extensions[r++];Ft('stat "%s"',a),bg.stat(a,function(o,c){if(o)return s(o);if(c.isDirectory())return s();n.emit("file",a,c),n.send(a,c)})}};pt.prototype.sendIndex=function(e){var r=-1,n=this;function s(i){if(++r>=n._index.length)return i?n.onStatError(i):n.error(404);var a=MU(e,n._index[r]);Ft('stat "%s"',a),bg.stat(a,function(o,c){if(o)return s(o);if(c.isDirectory())return s();n.emit("file",a,c),n.send(a,c)})}s()};pt.prototype.stream=function(e,r){var n=this,s=this.res,i=bg.createReadStream(e,r);this.emit("stream",i),i.pipe(s);function a(){kpe(i,!0)}Ipe(s,a),i.on("error",function(c){a(),n.onStatError(c)}),i.on("end",function(){n.emit("end")})};pt.prototype.type=function(e){var r=this.res;if(!r.getHeader("Content-Type")){var n=jE.lookup(e);if(!n){Ft("no content-type");return}var s=jE.charsets.lookup(n);Ft("content-type %s",n),r.setHeader("Content-Type",n+(s?"; charset="+s:""))}};pt.prototype.setHeader=function(e,r){var n=this.res;if(this.emit("headers",n,e,r),this._acceptRanges&&!n.getHeader("Accept-Ranges")&&(Ft("accept ranges"),n.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!n.getHeader("Cache-Control")){var s="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(s+=", immutable"),Ft("cache-control %s",s),n.setHeader("Cache-Control",s)}if(this._lastModified&&!n.getHeader("Last-Modified")){var i=r.mtime.toUTCString();Ft("modified %s",i),n.setHeader("Last-Modified",i)}if(this._etag&&!n.getHeader("ETag")){var a=Rpe(r);Ft("etag %s",a),n.setHeader("ETag",a)}};function Mpe(t){for(var e=qpe(t),r=0;r1?"/"+t.substr(e):t}function $pe(t){for(var e=0;e1&&r[0]===".")return!0}return!1}function AU(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function $U(t,e){return` @@ -75,8 +75,8 @@ return fn.apply(this, arguments)
`+e+`
-`}function Wpe(t,e){return e?e instanceof Error?Nk(t,e,{expose:!1}):Nk(t,e):Nk(t)}function Zpe(t){try{return decodeURIComponent(t)}catch{return-1}}function Gpe(t){return typeof t.getHeaderNames!="function"?Object.keys(t._headers||{}):t.getHeaderNames()}function HU(t,e){var r=typeof t.listenerCount!="function"?t.listeners(e).length:t.listenerCount(e);return r>0}function Vpe(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function zk(t,e){for(var r=[].concat(t||[]),n=0;n{"use strict";BU.exports=Qpe;function Qpe(t){if(!t)throw new TypeError("argument req is required");var e=Xpe(t.headers["x-forwarded-for"]||""),r=Ype(t),n=[r].concat(e);return n}function Ype(t){return t.socket?t.socket.remoteAddress:t.connection.remoteAddress}function Xpe(t){for(var e=t.length,r=[],n=t.length,s=t.length-1;s>=0;s--)switch(t.charCodeAt(s)){case 32:n===e&&(n=e=s);break;case 44:n!==e&&r.push(t.substring(n,e)),n=e=s;break;default:n=s;break}return n!==e&&r.push(t.substring(n,e)),r}});var GU=P((ZU,Xp)=>{(function(){var t,e,r,n,s,i,a,o,c;e={},o=this,typeof Xp<"u"&&Xp!==null&&Xp.exports?Xp.exports=e:o.ipaddr=e,a=function(l,u,p,d){var m,f;if(l.length!==u.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(m=0;d>0;){if(f=p-d,f<0&&(f=0),l[m]>>f!==u[m]>>f)return!1;d-=p,m+=1}return!0},e.subnetMatch=function(l,u,p){var d,m,f,g,v;p==null&&(p="unicast");for(f in u)for(g=u[f],g[0]&&!(g[0]instanceof Array)&&(g=[g]),d=0,m=g.length;d=0;p=d+=-1)if(m=this.octets[p],m in v){if(g=v[m],f&&g!==0)return null;g!==8&&(f=!0),u+=g}else return null;return 32-u},l})(),r="(0?\\d+|0x[a-f0-9]+)",n={fourOctet:new RegExp("^"+r+"\\."+r+"\\."+r+"\\."+r+"$","i"),longValue:new RegExp("^"+r+"$","i")},e.IPv4.parser=function(l){var u,p,d,m,f;if(p=function(g){return g[0]==="0"&&g[1]!=="x"?parseInt(g,8):parseInt(g)},u=l.match(n.fourOctet))return(function(){var g,v,h,y;for(h=u.slice(1,6),y=[],g=0,v=h.length;g4294967295||f<0)throw new Error("ipaddr: address outside defined range");return(function(){var g,v;for(v=[],m=g=0;g<=24;m=g+=8)v.push(f>>m&255);return v})().reverse()}else return null},e.IPv6=(function(){function l(u,p){var d,m,f,g,v,h;if(u.length===16)for(this.parts=[],d=m=0;m<=14;d=m+=2)this.parts.push(u[d]<<8|u[d+1]);else if(u.length===8)this.parts=u;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(h=this.parts,f=0,g=h.length;fp&&(u=d.index,p=d[0].length);return p<0?f:f.substring(0,u)+"::"+f.substring(u+p)},l.prototype.toByteArray=function(){var u,p,d,m,f;for(u=[],f=this.parts,p=0,d=f.length;p>8),u.push(m&255);return u},l.prototype.toNormalizedString=function(){var u,p,d;return u=(function(){var m,f,g,v;for(g=this.parts,v=[],m=0,f=g.length;m>8,u&255,p>>8,p&255])},l.prototype.prefixLengthFromSubnetMask=function(){var u,p,d,m,f,g,v;for(v={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},u=0,f=!1,p=d=7;d>=0;p=d+=-1)if(m=this.parts[p],m in v){if(g=v[m],f&&g!==0)return null;g!==16&&(f=!0),u+=g}else return null;return 128-u},l})(),s="(?:[0-9a-f]+::?)+",c="%[0-9a-z]{1,}",i={zoneIndex:new RegExp(c,"i"),native:new RegExp("^(::)?("+s+")?([0-9a-f]+)?(::)?("+c+")?$","i"),transitional:new RegExp("^((?:"+s+")|(?:::)(?:"+s+")?)"+(r+"\\."+r+"\\."+r+"\\."+r)+("("+c+")?$"),"i")},t=function(l,u){var p,d,m,f,g,v;if(l.indexOf("::")!==l.lastIndexOf("::"))return null;for(v=(l.match(i.zoneIndex)||[])[0],v&&(v=v.substring(1),l=l.replace(/%.+$/,"")),p=0,d=-1;(d=l.indexOf(":",d+1))>=0;)p++;if(l.substr(0,2)==="::"&&p--,l.substr(-2,2)==="::"&&p--,p>u)return null;for(g=u-p,f=":";g--;)f+="0:";return l=l.replace("::",f),l[0]===":"&&(l=l.slice(1)),l[l.length-1]===":"&&(l=l.slice(0,-1)),u=(function(){var h,y,b,x;for(b=l.split(":"),x=[],h=0,y=b.length;h=0&&u<=32))return d=[this.parse(p[1]),u],Object.defineProperty(d,"toString",{value:function(){return this.join("/")}}),d;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},e.IPv4.subnetMaskFromPrefixLength=function(l){var u,p,d;if(l=parseInt(l),l<0||l>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(d=[0,0,0,0],p=0,u=Math.floor(l/8);p=0&&u<=128))return d=[this.parse(p[1]),u],Object.defineProperty(d,"toString",{value:function(){return this.join("/")}}),d;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},e.isValid=function(l){return e.IPv6.isValid(l)||e.IPv4.isValid(l)},e.parse=function(l){if(e.IPv6.isValid(l))return e.IPv6.parse(l);if(e.IPv4.isValid(l))return e.IPv4.parse(l);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},e.parseCIDR=function(l){var u;try{return e.IPv6.parseCIDR(l)}catch(p){u=p;try{return e.IPv4.parseCIDR(l)}catch(d){throw u=d,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},e.fromByteArray=function(l){var u;if(u=l.length,u===4)return new e.IPv4(l);if(u===16)return new e.IPv6(l);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},e.process=function(l){var u;return u=this.parse(l),u.kind()==="ipv6"&&u.isIPv4MappedAddress()?u.toIPv4Address():u}}).call(ZU)});var Uk=P((EMe,Tg)=>{"use strict";Tg.exports=ade;Tg.exports.all=JU;Tg.exports.compile=QU;var ede=WU(),KU=GU(),tde=/^[0-9]+$/,kg=KU.isValid,Eg=KU.parse,VU={linklocal:["169.254.0.0/16","fe80::/10"],loopback:["127.0.0.1/8","::1/128"],uniquelocal:["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fc00::/7"]};function JU(t,e){var r=ede(t);if(!e)return r;typeof e!="function"&&(e=QU(e));for(var n=0;ns)throw new TypeError("invalid range on address: "+t);return[n,i]}function ide(t){var e=Eg(t),r=e.kind();return r==="ipv4"?e.prefixLengthFromSubnetMask():null}function ade(t,e){if(!t)throw new TypeError("req argument is required");if(!e)throw new TypeError("trust argument is required");var r=JU(t,e),n=r[r.length-1];return n}function ode(){return!1}function cde(t){return function(r){if(!kg(r))return!1;for(var n=Eg(r),s,i=n.kind(),a=0;a{"use strict";var YU=vg().Buffer,ude=Tk(),XU=np(),eq=js()("express"),pde=Bp(),dde=Sg().mime,mde=Ok(),fde=Uk(),hde=ag(),gde=require("querystring");Wr.etag=tq({weak:!1});Wr.wetag=tq({weak:!0});Wr.isAbsolute=function(t){if(t[0]==="/"||t[1]===":"&&(t[2]==="\\"||t[2]==="/")||t.substring(0,2)==="\\\\")return!0};Wr.flatten=eq.function(pde,"utils.flatten: use array-flatten npm module instead");Wr.normalizeType=function(t){return~t.indexOf("/")?vde(t):{value:dde.lookup(t),params:{}}};Wr.normalizeTypes=function(t){for(var e=[],r=0;r{"use strict";var xde=v2(),_de=wk(),Fk=dg(),wde=X2(),Sde=Sk(),Rg=Ec()("express:application"),kde=iU(),Ede=require("http"),Tde=Li().compileETag,Rde=Li().compileQueryParser,Pde=Li().compileTrust,Ide=js()("express"),Cde=Bp(),qk=Wp(),Ode=require("path").resolve,Nc=sp(),Ade=Object.prototype.hasOwnProperty,Bk=Array.prototype.slice,tr=rq=nq.exports={},Hk="@@symbol:trust_proxy_default";tr.init=function(){this.cache={},this.engines={},this.settings={},this.defaultConfiguration()};tr.defaultConfiguration=function(){var e=process.env.NODE_ENV||"development";this.enable("x-powered-by"),this.set("etag","weak"),this.set("env",e),this.set("query parser","extended"),this.set("subdomain offset",2),this.set("trust proxy",!1),Object.defineProperty(this.settings,Hk,{configurable:!0,value:!0}),Rg("booting in %s mode",e),this.on("mount",function(n){this.settings[Hk]===!0&&typeof n.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),Nc(this.request,n.request),Nc(this.response,n.response),Nc(this.engines,n.engines),Nc(this.settings,n.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",kde),this.set("views",Ode("views")),this.set("jsonp callback name","callback"),e==="production"&&this.enable("view cache"),Object.defineProperty(this,"router",{get:function(){throw new Error(`'app.router' is deprecated! -Please see the 3.x to 4.x migration guide for details on how to update your app.`)}})};tr.lazyrouter=function(){this._router||(this._router=new _de({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(Sde(this.get("query parser fn"))),this._router.use(wde.init(this)))};tr.handle=function(e,r,n){var s=this._router,i=n||xde(e,r,{env:this.get("env"),onerror:jde.bind(this)});if(!s){Rg("no routes defined on app"),i();return}s.handle(e,r,i)};tr.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(r=1,n=e)}var i=Cde(Bk.call(arguments,r));if(i.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var a=this._router;return i.forEach(function(o){if(!o||!o.handle||!o.set)return a.use(n,o);Rg(".use app under %s",n),o.mountpath=n,o.parent=this,a.use(n,function(l,u,p){var d=l.app;o.handle(l,u,function(m){Nc(l,d.request),Nc(u,d.response),p(m)})}),o.emit("mount",this)},this),this};tr.route=function(e){return this.lazyrouter(),this._router.route(e)};tr.engine=function(e,r){if(typeof r!="function")throw new Error("callback function required");var n=e[0]!=="."?"."+e:e;return this.engines[n]=r,this};tr.param=function(e,r){if(this.lazyrouter(),Array.isArray(e)){for(var n=0;n1?'directories "'+l.root.slice(0,-1).join('", "')+'" or "'+l.root[l.root.length-1]+'"':'directory "'+l.root+'"',d=new Error('Failed to lookup view "'+e+'" in views '+p);return d.view=l,i(d)}c.cache&&(s[e]=l)}Nde(l,c,i)};tr.listen=function(){var e=Ede.createServer(this);return e.listen.apply(e,arguments)};function jde(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function Nde(t,e,r){try{t.render(e,r)}catch(n){r(n)}}});var cq=P((RMe,Wk)=>{"use strict";Wk.exports=oq;Wk.exports.preferredCharsets=oq;var Dde=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Mde(t){for(var e=t.split(","),r=0,n=0;r0}});var mq=P((PMe,Zk)=>{"use strict";Zk.exports=dq;Zk.exports.preferredEncodings=dq;var qde=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Fde(t){for(var e=t.split(","),r=!1,n=1,s=0,i=0;s0}});var yq=P((IMe,Gk)=>{"use strict";Gk.exports=vq;Gk.exports.preferredLanguages=vq;var Zde=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function Gde(t){for(var e=t.split(","),r=0,n=0;r0}});var kq=P((CMe,Vk)=>{"use strict";Vk.exports=wq;Vk.exports.preferredMediaTypes=wq;var Qde=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function Yde(t){for(var e=nme(t),r=0,n=0;r0)if(i.every(function(a){return e.params[a]=="*"||(e.params[a]||"").toLowerCase()==(n.params[a]||"").toLowerCase()}))s|=1;else return null;return{i:r,o:e.i,q:e.q,s}}function wq(t,e){var r=Yde(t===void 0?"*/*":t||"");if(!e)return r.filter(xq).sort(bq).map(tme);var n=e.map(function(i,a){return Xde(i,r,a)});return n.filter(xq).sort(bq).map(function(i){return e[n.indexOf(i)]})}function bq(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function tme(t){return t.type+"/"+t.subtype}function xq(t){return t.q>0}function Sq(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function rme(t){var e=t.indexOf("="),r,n;return e===-1?r=t:(r=t.substr(0,e),n=t.substr(e+1)),[r,n]}function nme(t){for(var e=t.split(","),r=1,n=0;r{"use strict";var ime=cq(),ame=mq(),ome=yq(),cme=kq();Kk.exports=gt;Kk.exports.Negotiator=gt;function gt(t){if(!(this instanceof gt))return new gt(t);this.request=t}gt.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};gt.prototype.charsets=function(e){return ime(this.request.headers["accept-charset"],e)};gt.prototype.encoding=function(e){var r=this.encodings(e);return r&&r[0]};gt.prototype.encodings=function(e){return ame(this.request.headers["accept-encoding"],e)};gt.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};gt.prototype.languages=function(e){return ome(this.request.headers["accept-language"],e)};gt.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};gt.prototype.mediaTypes=function(e){return cme(this.request.headers.accept,e)};gt.prototype.preferredCharset=gt.prototype.charset;gt.prototype.preferredCharsets=gt.prototype.charsets;gt.prototype.preferredEncoding=gt.prototype.encoding;gt.prototype.preferredEncodings=gt.prototype.encodings;gt.prototype.preferredLanguage=gt.prototype.language;gt.prototype.preferredLanguages=gt.prototype.languages;gt.prototype.preferredMediaType=gt.prototype.mediaType;gt.prototype.preferredMediaTypes=gt.prototype.mediaTypes});var Tq=P((AMe,lme)=>{lme.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var Pq=P((jMe,Rq)=>{Rq.exports=Tq()});var Oq=P(mn=>{"use strict";var Pg=Pq(),ume=require("path").extname,Iq=/^\s*([^;\s]*)(?:;|\s|$)/,pme=/^text\//i;mn.charset=Cq;mn.charsets={lookup:Cq};mn.contentType=dme;mn.extension=mme;mn.extensions=Object.create(null);mn.lookup=fme;mn.types=Object.create(null);hme(mn.extensions,mn.types);function Cq(t){if(!t||typeof t!="string")return!1;var e=Iq.exec(t),r=e&&Pg[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&pme.test(e[1])?"UTF-8":!1}function dme(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?mn.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=mn.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function mme(t){if(!t||typeof t!="string")return!1;var e=Iq.exec(t),r=e&&mn.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function fme(t){if(!t||typeof t!="string")return!1;var e=ume("x."+t).toLowerCase().substr(1);return e&&mn.types[e]||!1}function hme(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(Pg).forEach(function(s){var i=Pg[s],a=i.extensions;if(!(!a||!a.length)){t[s]=a;for(var o=0;ou||l===u&&e[c].substr(0,12)==="application/"))continue}e[c]=s}}})}});var jq=P((DMe,Aq)=>{"use strict";var gme=Eq(),vme=Oq();Aq.exports=_n;function _n(t){if(!(this instanceof _n))return new _n(t);this.headers=t.headers,this.negotiator=new gme(t)}_n.prototype.type=_n.prototype.types=function(t){var e=t;if(e&&!Array.isArray(e)){e=new Array(arguments.length);for(var r=0;r{"use strict";var Ig=jq(),ed=js()("express"),xme=require("net").isIP,_me=fc(),wme=require("http"),Sme=Ak(),kme=jk(),Eme=Sc(),Nq=Uk(),xt=Object.create(wme.IncomingMessage.prototype);Dq.exports=xt;xt.get=xt.header=function(e){if(!e)throw new TypeError("name argument is required to req.get");if(typeof e!="string")throw new TypeError("name must be a string to req.get");var r=e.toLowerCase();switch(r){case"referer":case"referrer":return this.headers.referrer||this.headers.referer;default:return this.headers[r]}};xt.accepts=function(){var t=Ig(this);return t.types.apply(t,arguments)};xt.acceptsEncodings=function(){var t=Ig(this);return t.encodings.apply(t,arguments)};xt.acceptsEncoding=ed.function(xt.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");xt.acceptsCharsets=function(){var t=Ig(this);return t.charsets.apply(t,arguments)};xt.acceptsCharset=ed.function(xt.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");xt.acceptsLanguages=function(){var t=Ig(this);return t.languages.apply(t,arguments)};xt.acceptsLanguage=ed.function(xt.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");xt.range=function(e,r){var n=this.get("Range");if(n)return kme(e,n,r)};xt.param=function(e,r){var n=this.params||{},s=this.body||{},i=this.query||{},a=arguments.length===1?"name":"name, default";return ed("req.param("+a+"): Use req.params, req.body, or req.query instead"),n[e]!=null&&n.hasOwnProperty(e)?n[e]:s[e]!=null?s[e]:i[e]!=null?i[e]:r};xt.is=function(e){var r=e;if(!Array.isArray(e)){r=new Array(arguments.length);for(var n=0;n=200&&r<300||r===304?Sme(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});hs(xt,"stale",function(){return!this.fresh});hs(xt,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function hs(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var Jk=P(Cg=>{var $q=require("crypto");Cg.sign=function(t,e){if(typeof t!="string")throw new TypeError("Cookie value must be provided as a string.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");return t+"."+$q.createHmac("sha256",e).update(t).digest("base64").replace(/\=+$/,"")};Cg.unsign=function(t,e){if(typeof t!="string")throw new TypeError("Signed cookie string must be provided.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");var r=t.slice(0,t.lastIndexOf(".")),n=Cg.sign(r,e);return zq(n)==zq(t)?r:!1};function zq(t){return $q.createHash("sha1").update(t).digest("hex")}});var Yk=P(Qk=>{"use strict";Qk.parse=Ame;Qk.serialize=jme;var Tme=Object.prototype.toString,Rme=Object.prototype.hasOwnProperty,Pme=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Ime=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,Cme=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,Ome=/^[\u0020-\u003A\u003D-\u007E]*$/;function Ame(t,e){if(typeof t!="string")throw new TypeError("argument str must be a string");var r={},n=t.length;if(n<2)return r;var s=e&&e.decode||Nme,i=0,a=0,o=0;do{if(a=t.indexOf("=",i),a===-1)break;if(o=t.indexOf(";",i),o===-1)o=n;else if(a>o){i=t.lastIndexOf(";",a-1)+1;continue}var c=Lq(t,i,a),l=Uq(t,a,c),u=t.slice(c,l);if(!Rme.call(r,u)){var p=Lq(t,a+1,o),d=Uq(t,o,p);t.charCodeAt(p)===34&&t.charCodeAt(d-1)===34&&(p++,d--);var m=t.slice(p,d);r[u]=Mme(m,s)}i=o+1}while(ir;){var n=t.charCodeAt(--e);if(n!==32&&n!==9)return e+1}return r}function jme(t,e,r){var n=r&&r.encode||encodeURIComponent;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!Pme.test(t))throw new TypeError("argument name is invalid");var s=n(e);if(!Ime.test(s))throw new TypeError("argument val is invalid");var i=t+"="+s;if(!r)return i;if(r.maxAge!=null){var a=Math.floor(r.maxAge);if(!isFinite(a))throw new TypeError("option maxAge is invalid");i+="; Max-Age="+a}if(r.domain){if(!Cme.test(r.domain))throw new TypeError("option domain is invalid");i+="; Domain="+r.domain}if(r.path){if(!Ome.test(r.path))throw new TypeError("option path is invalid");i+="; Path="+r.path}if(r.expires){var o=r.expires;if(!Dme(o)||isNaN(o.valueOf()))throw new TypeError("option expires is invalid");i+="; Expires="+o.toUTCString()}if(r.httpOnly&&(i+="; HttpOnly"),r.secure&&(i+="; Secure"),r.partitioned&&(i+="; Partitioned"),r.priority){var c=typeof r.priority=="string"?r.priority.toLowerCase():r.priority;switch(c){case"low":i+="; Priority=Low";break;case"medium":i+="; Priority=Medium";break;case"high":i+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(r.sameSite){var l=typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite;switch(l){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return i}function Nme(t){return t.indexOf("%")!==-1?decodeURIComponent(t):t}function Dme(t){return Tme.call(t)==="[object Date]"}function Mme(t,e){try{return e(t)}catch{return t}}});var eE=P((LMe,Xk)=>{"use strict";Xk.exports=$me;Xk.exports.append=Fq;var zme=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function Fq(t,e){if(typeof t!="string")throw new TypeError("header argument is required");if(!e)throw new TypeError("field argument is required");for(var r=Array.isArray(e)?e:qq(String(e)),n=0;n{"use strict";var td=vg().Buffer,Hq=Tk(),Lme=Oa(),fn=js()("express"),Ume=zp(),qme=$p(),Fme=require("http"),Hme=Li().isAbsolute,Bme=hp(),Bq=require("path"),Og=ip(),Wq=Wp(),Wme=Jk().sign,Zme=Li().normalizeType,Gme=Li().normalizeTypes,Vme=Li().setCharset,Kme=Yk(),tE=Sg(),Jme=Bq.extname,Zq=tE.mime,Qme=Bq.resolve,Yme=eE(),kt=Object.create(Fme.ServerResponse.prototype);Kq.exports=kt;var Xme=/;\s*charset\s*=/;kt.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&fn("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};kt.links=function(t){var e=this.get("Link")||"";return e&&(e+=", "),this.set("Link",e+Object.keys(t).map(function(r){return"<"+t[r]+'>; rel="'+r+'"'}).join(", "))};kt.send=function(e){var r=e,n,s=this.req,i,a=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?(fn("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):(fn("res.send(status, body): Use res.status(status).send(body) instead"),this.statusCode=arguments[0],r=arguments[1])),typeof r=="number"&&arguments.length===1&&(this.get("Content-Type")||this.type("txt"),fn("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=r,r=Og.message[r]),typeof r){case"string":this.get("Content-Type")||this.type("html");break;case"boolean":case"number":case"object":if(r===null)r="";else if(td.isBuffer(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(n="utf8",i=this.get("Content-Type"),typeof i=="string"&&this.set("Content-Type",Vme(i,"utf-8")));var o=a.get("etag fn"),c=!this.get("ETag")&&typeof o=="function",l;r!==void 0&&(td.isBuffer(r)?l=r.length:!c&&r.length<1e3?l=td.byteLength(r,n):(r=td.from(r,n),n=void 0,l=r.length),this.set("Content-Length",l));var u;return c&&l!==void 0&&(u=o(r,n))&&this.set("ETag",u),s.fresh&&(this.statusCode=304),(this.statusCode===204||this.statusCode===304)&&(this.removeHeader("Content-Type"),this.removeHeader("Content-Length"),this.removeHeader("Transfer-Encoding"),r=""),this.statusCode===205&&(this.set("Content-Length","0"),this.removeHeader("Transfer-Encoding"),r=""),s.method==="HEAD"?this.end():this.end(r,n),this};kt.json=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(fn("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):(fn("res.json(status, obj): Use res.status(status).json(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,s=n.get("json escape"),i=n.get("json replacer"),a=n.get("json spaces"),o=Vq(r,i,a,s);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(o)};kt.jsonp=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(fn("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):(fn("res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,s=n.get("json escape"),i=n.get("json replacer"),a=n.get("json spaces"),o=Vq(r,i,a,s),c=this.req.query[n.get("jsonp callback name")];return this.get("Content-Type")||(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","application/json")),Array.isArray(c)&&(c=c[0]),typeof c=="string"&&c.length!==0&&(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","text/javascript"),c=c.replace(/[^\[\]\w$.]/g,""),o===void 0?o="":typeof o=="string"&&(o=o.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),o="/**/ typeof "+c+" === 'function' && "+c+"("+o+");"),this.send(o)};kt.sendStatus=function(e){var r=Og.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(r)};kt.sendFile=function(e,r,n){var s=n,i=this.req,a=this,o=i.next,c=r||{};if(!e)throw new TypeError("path argument is required to res.sendFile");if(typeof e!="string")throw new TypeError("path must be a string to res.sendFile");if(typeof r=="function"&&(s=r,c={}),!c.root&&!Hme(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var l=encodeURI(e),u=tE(i,l,c);Gq(a,u,c,function(p){if(s)return s(p);if(p&&p.code==="EISDIR")return o();p&&p.code!=="ECONNABORTED"&&p.syscall!=="write"&&o(p)})};kt.sendfile=function(t,e,r){var n=r,s=this.req,i=this,a=s.next,o=e||{};typeof e=="function"&&(n=e,o={});var c=tE(s,t,o);Gq(i,c,o,function(l){if(n)return n(l);if(l&&l.code==="EISDIR")return a();l&&l.code!=="ECONNABORTED"&&l.syscall!=="write"&&a(l)})};kt.sendfile=fn.function(kt.sendfile,"res.sendfile: Use res.sendFile instead");kt.download=function(e,r,n,s){var i=s,a=r,o=n||null;typeof r=="function"?(i=r,a=null,o=null):typeof n=="function"&&(i=n,o=null),typeof r=="object"&&(typeof n=="function"||n===void 0)&&(a=null,o=r);var c={"Content-Disposition":Hq(a||e)};if(o&&o.headers)for(var l=Object.keys(o.headers),u=0;u0?e.accepts(n):!1;return this.vary("Accept"),s?(this.set("Content-Type",Zme(s).value),t[s](e,this,r)):t.default?t.default(e,this,r):r(Lme(406,{types:Gme(n).map(function(i){return i.value})})),this};kt.attachment=function(e){return e&&this.type(Jme(e)),this.set("Content-Disposition",Hq(e)),this};kt.append=function(e,r){var n=this.get(e),s=r;return n&&(s=Array.isArray(n)?n.concat(r):Array.isArray(r)?[n].concat(r):[n,r]),this.set(e,s)};kt.set=kt.header=function(e,r){if(arguments.length===2){var n=Array.isArray(r)?r.map(String):String(r);if(e.toLowerCase()==="content-type"){if(Array.isArray(n))throw new TypeError("Content-Type cannot be set to an Array");if(!Xme.test(n)){var s=Zq.charsets.lookup(n.split(";")[0]);s&&(n+="; charset="+s.toLowerCase())}}this.setHeader(e,n)}else for(var i in e)this.set(i,e[i]);return this};kt.get=function(t){return this.getHeader(t)};kt.clearCookie=function(e,r){r&&(r.maxAge&&fn('res.clearCookie: Passing "options.maxAge" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'),r.expires&&fn('res.clearCookie: Passing "options.expires" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'));var n=Wq({expires:new Date(1),path:"/"},r);return this.cookie(e,"",n)};kt.cookie=function(t,e,r){var n=Wq({},r),s=this.req.secret,i=n.signed;if(i&&!s)throw new Error('cookieParser("secret") required for signed cookies');var a=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(i&&(a="s:"+Wme(a,s)),n.maxAge!=null){var o=n.maxAge-0;isNaN(o)||(n.expires=new Date(Date.now()+o),n.maxAge=Math.floor(o/1e3))}return n.path==null&&(n.path="/"),this.append("Set-Cookie",Kme.serialize(t,String(a),n)),this};kt.location=function(e){var r;return e==="back"?(fn('res.location("back"): use res.location(req.get("Referrer") || "/") and refer to https://dub.sh/security-redirect for best practices'),r=this.req.get("Referrer")||"/"):r=String(e),this.set("Location",Ume(r))};kt.redirect=function(e){var r=e,n,s=302;arguments.length===2&&(typeof arguments[0]=="number"?(s=arguments[0],r=arguments[1]):(fn("res.redirect(url, status): Use res.redirect(status, url) instead"),s=arguments[1])),r=this.location(r).get("Location"),this.format({text:function(){n=Og.message[s]+". Redirecting to "+r},html:function(){var i=qme(r);n="

"+Og.message[s]+". Redirecting to "+i+"

"},default:function(){n=""}}),this.statusCode=s,this.set("Content-Length",td.byteLength(n)),this.req.method==="HEAD"?this.end():this.end(n)};kt.vary=function(t){return!t||Array.isArray(t)&&!t.length?(fn("res.vary(): Provide a field name"),this):(Yme(this,t),this)};kt.render=function(e,r,n){var s=this.req.app,i=n,a=r||{},o=this.req,c=this;typeof r=="function"&&(i=r,a={}),a._locals=c.locals,i=i||function(l,u){if(l)return o.next(l);c.send(u)},s.render(e,a,i)};function Gq(t,e,r,n){var s=!1,i;function a(){if(!s){s=!0;var m=new Error("Request aborted");m.code="ECONNABORTED",n(m)}}function o(){if(!s){s=!0;var m=new Error("EISDIR, read");m.code="EISDIR",n(m)}}function c(m){s||(s=!0,n(m))}function l(){s||(s=!0,n())}function u(){i=!1}function p(m){if(m&&m.code==="ECONNRESET")return a();if(m)return c(m);s||setImmediate(function(){if(i!==!1&&!s){a();return}s||(s=!0,n())})}function d(){i=!0}e.on("directory",o),e.on("end",l),e.on("error",c),e.on("file",u),e.on("stream",d),Bme(t,p),r.headers&&e.on("headers",function(f){for(var g=r.headers,v=Object.keys(g),h=0;h&]/g,function(i){switch(i.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return i}})),s}});var Yq=P((qMe,nE)=>{"use strict";var efe=zp(),tfe=$p(),rE=Sc(),rfe=require("path").resolve,Qq=Sg(),nfe=require("url");nE.exports=sfe;nE.exports.mime=Qq.mime;function sfe(t,e){if(!t)throw new TypeError("root path required");if(typeof t!="string")throw new TypeError("root path must be a string");var r=Object.create(e||null),n=r.fallthrough!==!1,s=r.redirect!==!1,i=r.setHeaders;if(i&&typeof i!="function")throw new TypeError("option setHeaders must be function");r.maxage=r.maxage||r.maxAge||0,r.root=rfe(t);var a=s?cfe():ofe();return function(c,l,u){if(c.method!=="GET"&&c.method!=="HEAD"){if(n)return u();l.statusCode=405,l.setHeader("Allow","GET, HEAD"),l.setHeader("Content-Length","0"),l.end();return}var p=!n,d=rE.original(c),m=rE(c).pathname;m==="/"&&d.pathname.substr(-1)!=="/"&&(m="");var f=Qq(c,m,r);f.on("directory",a),i&&f.on("headers",i),n&&f.on("file",function(){p=!0}),f.on("error",function(v){if(p||!(v.statusCode<500)){u(v);return}u()}),f.pipe(l)}}function ife(t){for(var e=0;e1?"/"+t.substr(e):t}function afe(t,e){return` +`}function Lpe(t,e){return e?e instanceof Error?OE(t,e,{expose:!1}):OE(t,e):OE(t)}function Upe(t){try{return decodeURIComponent(t)}catch{return-1}}function qpe(t){return typeof t.getHeaderNames!="function"?Object.keys(t._headers||{}):t.getHeaderNames()}function LU(t,e){var r=typeof t.listenerCount!="function"?t.listeners(e).length:t.listenerCount(e);return r>0}function Fpe(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function NE(t,e){for(var r=[].concat(t||[]),n=0;n{"use strict";UU.exports=Wpe;function Wpe(t){if(!t)throw new TypeError("argument req is required");var e=Gpe(t.headers["x-forwarded-for"]||""),r=Zpe(t),n=[r].concat(e);return n}function Zpe(t){return t.socket?t.socket.remoteAddress:t.connection.remoteAddress}function Gpe(t){for(var e=t.length,r=[],n=t.length,s=t.length-1;s>=0;s--)switch(t.charCodeAt(s)){case 32:n===e&&(n=e=s);break;case 44:n!==e&&r.push(t.substring(n,e)),n=e=s;break;default:n=s;break}return n!==e&&r.push(t.substring(n,e)),r}});var HU=P((FU,Yp)=>{(function(){var t,e,r,n,s,i,a,o,c;e={},o=this,typeof Yp<"u"&&Yp!==null&&Yp.exports?Yp.exports=e:o.ipaddr=e,a=function(l,u,p,d){var m,f;if(l.length!==u.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(m=0;d>0;){if(f=p-d,f<0&&(f=0),l[m]>>f!==u[m]>>f)return!1;d-=p,m+=1}return!0},e.subnetMatch=function(l,u,p){var d,m,f,g,v;p==null&&(p="unicast");for(f in u)for(g=u[f],g[0]&&!(g[0]instanceof Array)&&(g=[g]),d=0,m=g.length;d=0;p=d+=-1)if(m=this.octets[p],m in v){if(g=v[m],f&&g!==0)return null;g!==8&&(f=!0),u+=g}else return null;return 32-u},l})(),r="(0?\\d+|0x[a-f0-9]+)",n={fourOctet:new RegExp("^"+r+"\\."+r+"\\."+r+"\\."+r+"$","i"),longValue:new RegExp("^"+r+"$","i")},e.IPv4.parser=function(l){var u,p,d,m,f;if(p=function(g){return g[0]==="0"&&g[1]!=="x"?parseInt(g,8):parseInt(g)},u=l.match(n.fourOctet))return(function(){var g,v,h,y;for(h=u.slice(1,6),y=[],g=0,v=h.length;g4294967295||f<0)throw new Error("ipaddr: address outside defined range");return(function(){var g,v;for(v=[],m=g=0;g<=24;m=g+=8)v.push(f>>m&255);return v})().reverse()}else return null},e.IPv6=(function(){function l(u,p){var d,m,f,g,v,h;if(u.length===16)for(this.parts=[],d=m=0;m<=14;d=m+=2)this.parts.push(u[d]<<8|u[d+1]);else if(u.length===8)this.parts=u;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(h=this.parts,f=0,g=h.length;fp&&(u=d.index,p=d[0].length);return p<0?f:f.substring(0,u)+"::"+f.substring(u+p)},l.prototype.toByteArray=function(){var u,p,d,m,f;for(u=[],f=this.parts,p=0,d=f.length;p>8),u.push(m&255);return u},l.prototype.toNormalizedString=function(){var u,p,d;return u=(function(){var m,f,g,v;for(g=this.parts,v=[],m=0,f=g.length;m>8,u&255,p>>8,p&255])},l.prototype.prefixLengthFromSubnetMask=function(){var u,p,d,m,f,g,v;for(v={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},u=0,f=!1,p=d=7;d>=0;p=d+=-1)if(m=this.parts[p],m in v){if(g=v[m],f&&g!==0)return null;g!==16&&(f=!0),u+=g}else return null;return 128-u},l})(),s="(?:[0-9a-f]+::?)+",c="%[0-9a-z]{1,}",i={zoneIndex:new RegExp(c,"i"),native:new RegExp("^(::)?("+s+")?([0-9a-f]+)?(::)?("+c+")?$","i"),transitional:new RegExp("^((?:"+s+")|(?:::)(?:"+s+")?)"+(r+"\\."+r+"\\."+r+"\\."+r)+("("+c+")?$"),"i")},t=function(l,u){var p,d,m,f,g,v;if(l.indexOf("::")!==l.lastIndexOf("::"))return null;for(v=(l.match(i.zoneIndex)||[])[0],v&&(v=v.substring(1),l=l.replace(/%.+$/,"")),p=0,d=-1;(d=l.indexOf(":",d+1))>=0;)p++;if(l.substr(0,2)==="::"&&p--,l.substr(-2,2)==="::"&&p--,p>u)return null;for(g=u-p,f=":";g--;)f+="0:";return l=l.replace("::",f),l[0]===":"&&(l=l.slice(1)),l[l.length-1]===":"&&(l=l.slice(0,-1)),u=(function(){var h,y,b,x;for(b=l.split(":"),x=[],h=0,y=b.length;h=0&&u<=32))return d=[this.parse(p[1]),u],Object.defineProperty(d,"toString",{value:function(){return this.join("/")}}),d;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},e.IPv4.subnetMaskFromPrefixLength=function(l){var u,p,d;if(l=parseInt(l),l<0||l>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(d=[0,0,0,0],p=0,u=Math.floor(l/8);p=0&&u<=128))return d=[this.parse(p[1]),u],Object.defineProperty(d,"toString",{value:function(){return this.join("/")}}),d;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},e.isValid=function(l){return e.IPv6.isValid(l)||e.IPv4.isValid(l)},e.parse=function(l){if(e.IPv6.isValid(l))return e.IPv6.parse(l);if(e.IPv4.isValid(l))return e.IPv4.parse(l);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},e.parseCIDR=function(l){var u;try{return e.IPv6.parseCIDR(l)}catch(p){u=p;try{return e.IPv4.parseCIDR(l)}catch(d){throw u=d,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},e.fromByteArray=function(l){var u;if(u=l.length,u===4)return new e.IPv4(l);if(u===16)return new e.IPv6(l);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},e.process=function(l){var u;return u=this.parse(l),u.kind()==="ipv6"&&u.isIPv4MappedAddress()?u.toIPv4Address():u}}).call(FU)});var zE=P((yMe,Eg)=>{"use strict";Eg.exports=ede;Eg.exports.all=ZU;Eg.exports.compile=GU;var Vpe=qU(),WU=HU(),Kpe=/^[0-9]+$/,wg=WU.isValid,Sg=WU.parse,BU={linklocal:["169.254.0.0/16","fe80::/10"],loopback:["127.0.0.1/8","::1/128"],uniquelocal:["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fc00::/7"]};function ZU(t,e){var r=Vpe(t);if(!e)return r;typeof e!="function"&&(e=GU(e));for(var n=0;ns)throw new TypeError("invalid range on address: "+t);return[n,i]}function Xpe(t){var e=Sg(t),r=e.kind();return r==="ipv4"?e.prefixLengthFromSubnetMask():null}function ede(t,e){if(!t)throw new TypeError("req argument is required");if(!e)throw new TypeError("trust argument is required");var r=ZU(t,e),n=r[r.length-1];return n}function tde(){return!1}function rde(t){return function(r){if(!wg(r))return!1;for(var n=Sg(r),s,i=n.kind(),a=0;a{"use strict";var VU=hg().Buffer,sde=SE(),KU=rp(),JU=js()("express"),ide=Hp(),ade=_g().mime,ode=PE(),cde=zE(),lde=sg(),ude=require("querystring");Wr.etag=QU({weak:!1});Wr.wetag=QU({weak:!0});Wr.isAbsolute=function(t){if(t[0]==="/"||t[1]===":"&&(t[2]==="\\"||t[2]==="/")||t.substring(0,2)==="\\\\")return!0};Wr.flatten=JU.function(ide,"utils.flatten: use array-flatten npm module instead");Wr.normalizeType=function(t){return~t.indexOf("/")?pde(t):{value:ade.lookup(t),params:{}}};Wr.normalizeTypes=function(t){for(var e=[],r=0;r{"use strict";var fde=m2(),hde=bE(),LE=ug(),gde=K2(),vde=xE(),kg=Ec()("express:application"),yde=tU(),bde=require("http"),xde=Li().compileETag,_de=Li().compileQueryParser,wde=Li().compileTrust,Sde=js()("express"),Ede=Hp(),$E=Bp(),kde=require("path").resolve,jc=np(),Tde=Object.prototype.hasOwnProperty,qE=Array.prototype.slice,tr=YU=XU.exports={},UE="@@symbol:trust_proxy_default";tr.init=function(){this.cache={},this.engines={},this.settings={},this.defaultConfiguration()};tr.defaultConfiguration=function(){var e=process.env.NODE_ENV||"development";this.enable("x-powered-by"),this.set("etag","weak"),this.set("env",e),this.set("query parser","extended"),this.set("subdomain offset",2),this.set("trust proxy",!1),Object.defineProperty(this.settings,UE,{configurable:!0,value:!0}),kg("booting in %s mode",e),this.on("mount",function(n){this.settings[UE]===!0&&typeof n.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),jc(this.request,n.request),jc(this.response,n.response),jc(this.engines,n.engines),jc(this.settings,n.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",yde),this.set("views",kde("views")),this.set("jsonp callback name","callback"),e==="production"&&this.enable("view cache"),Object.defineProperty(this,"router",{get:function(){throw new Error(`'app.router' is deprecated! +Please see the 3.x to 4.x migration guide for details on how to update your app.`)}})};tr.lazyrouter=function(){this._router||(this._router=new hde({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(vde(this.get("query parser fn"))),this._router.use(gde.init(this)))};tr.handle=function(e,r,n){var s=this._router,i=n||fde(e,r,{env:this.get("env"),onerror:Rde.bind(this)});if(!s){kg("no routes defined on app"),i();return}s.handle(e,r,i)};tr.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(r=1,n=e)}var i=Ede(qE.call(arguments,r));if(i.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var a=this._router;return i.forEach(function(o){if(!o||!o.handle||!o.set)return a.use(n,o);kg(".use app under %s",n),o.mountpath=n,o.parent=this,a.use(n,function(l,u,p){var d=l.app;o.handle(l,u,function(m){jc(l,d.request),jc(u,d.response),p(m)})}),o.emit("mount",this)},this),this};tr.route=function(e){return this.lazyrouter(),this._router.route(e)};tr.engine=function(e,r){if(typeof r!="function")throw new Error("callback function required");var n=e[0]!=="."?"."+e:e;return this.engines[n]=r,this};tr.param=function(e,r){if(this.lazyrouter(),Array.isArray(e)){for(var n=0;n1?'directories "'+l.root.slice(0,-1).join('", "')+'" or "'+l.root[l.root.length-1]+'"':'directory "'+l.root+'"',d=new Error('Failed to lookup view "'+e+'" in views '+p);return d.view=l,i(d)}c.cache&&(s[e]=l)}Pde(l,c,i)};tr.listen=function(){var e=bde.createServer(this);return e.listen.apply(e,arguments)};function Rde(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function Pde(t,e,r){try{t.render(e,r)}catch(n){r(n)}}});var sq=P((xMe,FE)=>{"use strict";FE.exports=nq;FE.exports.preferredCharsets=nq;var Ide=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Cde(t){for(var e=t.split(","),r=0,n=0;r0}});var lq=P((_Me,HE)=>{"use strict";HE.exports=cq;HE.exports.preferredEncodings=cq;var Dde=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Mde(t){for(var e=t.split(","),r=!1,n=1,s=0,i=0;s0}});var fq=P((wMe,BE)=>{"use strict";BE.exports=mq;BE.exports.preferredLanguages=mq;var Ude=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function qde(t){for(var e=t.split(","),r=0,n=0;r0}});var xq=P((SMe,WE)=>{"use strict";WE.exports=yq;WE.exports.preferredMediaTypes=yq;var Wde=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function Zde(t){for(var e=Qde(t),r=0,n=0;r0)if(i.every(function(a){return e.params[a]=="*"||(e.params[a]||"").toLowerCase()==(n.params[a]||"").toLowerCase()}))s|=1;else return null;return{i:r,o:e.i,q:e.q,s}}function yq(t,e){var r=Zde(t===void 0?"*/*":t||"");if(!e)return r.filter(gq).sort(hq).map(Kde);var n=e.map(function(i,a){return Gde(i,r,a)});return n.filter(gq).sort(hq).map(function(i){return e[n.indexOf(i)]})}function hq(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function Kde(t){return t.type+"/"+t.subtype}function gq(t){return t.q>0}function bq(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function Jde(t){var e=t.indexOf("="),r,n;return e===-1?r=t:(r=t.substr(0,e),n=t.substr(e+1)),[r,n]}function Qde(t){for(var e=t.split(","),r=1,n=0;r{"use strict";var Xde=sq(),eme=lq(),tme=fq(),rme=xq();ZE.exports=gt;ZE.exports.Negotiator=gt;function gt(t){if(!(this instanceof gt))return new gt(t);this.request=t}gt.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};gt.prototype.charsets=function(e){return Xde(this.request.headers["accept-charset"],e)};gt.prototype.encoding=function(e){var r=this.encodings(e);return r&&r[0]};gt.prototype.encodings=function(e){return eme(this.request.headers["accept-encoding"],e)};gt.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};gt.prototype.languages=function(e){return tme(this.request.headers["accept-language"],e)};gt.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};gt.prototype.mediaTypes=function(e){return rme(this.request.headers.accept,e)};gt.prototype.preferredCharset=gt.prototype.charset;gt.prototype.preferredCharsets=gt.prototype.charsets;gt.prototype.preferredEncoding=gt.prototype.encoding;gt.prototype.preferredEncodings=gt.prototype.encodings;gt.prototype.preferredLanguage=gt.prototype.language;gt.prototype.preferredLanguages=gt.prototype.languages;gt.prototype.preferredMediaType=gt.prototype.mediaType;gt.prototype.preferredMediaTypes=gt.prototype.mediaTypes});var wq=P((kMe,nme)=>{nme.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var Eq=P((TMe,Sq)=>{Sq.exports=wq()});var Rq=P(mn=>{"use strict";var Tg=Eq(),sme=require("path").extname,kq=/^\s*([^;\s]*)(?:;|\s|$)/,ime=/^text\//i;mn.charset=Tq;mn.charsets={lookup:Tq};mn.contentType=ame;mn.extension=ome;mn.extensions=Object.create(null);mn.lookup=cme;mn.types=Object.create(null);lme(mn.extensions,mn.types);function Tq(t){if(!t||typeof t!="string")return!1;var e=kq.exec(t),r=e&&Tg[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&ime.test(e[1])?"UTF-8":!1}function ame(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?mn.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=mn.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function ome(t){if(!t||typeof t!="string")return!1;var e=kq.exec(t),r=e&&mn.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function cme(t){if(!t||typeof t!="string")return!1;var e=sme("x."+t).toLowerCase().substr(1);return e&&mn.types[e]||!1}function lme(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(Tg).forEach(function(s){var i=Tg[s],a=i.extensions;if(!(!a||!a.length)){t[s]=a;for(var o=0;ou||l===u&&e[c].substr(0,12)==="application/"))continue}e[c]=s}}})}});var Iq=P((PMe,Pq)=>{"use strict";var ume=_q(),pme=Rq();Pq.exports=_n;function _n(t){if(!(this instanceof _n))return new _n(t);this.headers=t.headers,this.negotiator=new ume(t)}_n.prototype.type=_n.prototype.types=function(t){var e=t;if(e&&!Array.isArray(e)){e=new Array(arguments.length);for(var r=0;r{"use strict";var Rg=Iq(),Xp=js()("express"),fme=require("net").isIP,hme=mc(),gme=require("http"),vme=IE(),yme=CE(),bme=wc(),Cq=zE(),xt=Object.create(gme.IncomingMessage.prototype);Oq.exports=xt;xt.get=xt.header=function(e){if(!e)throw new TypeError("name argument is required to req.get");if(typeof e!="string")throw new TypeError("name must be a string to req.get");var r=e.toLowerCase();switch(r){case"referer":case"referrer":return this.headers.referrer||this.headers.referer;default:return this.headers[r]}};xt.accepts=function(){var t=Rg(this);return t.types.apply(t,arguments)};xt.acceptsEncodings=function(){var t=Rg(this);return t.encodings.apply(t,arguments)};xt.acceptsEncoding=Xp.function(xt.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");xt.acceptsCharsets=function(){var t=Rg(this);return t.charsets.apply(t,arguments)};xt.acceptsCharset=Xp.function(xt.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");xt.acceptsLanguages=function(){var t=Rg(this);return t.languages.apply(t,arguments)};xt.acceptsLanguage=Xp.function(xt.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");xt.range=function(e,r){var n=this.get("Range");if(n)return yme(e,n,r)};xt.param=function(e,r){var n=this.params||{},s=this.body||{},i=this.query||{},a=arguments.length===1?"name":"name, default";return Xp("req.param("+a+"): Use req.params, req.body, or req.query instead"),n[e]!=null&&n.hasOwnProperty(e)?n[e]:s[e]!=null?s[e]:i[e]!=null?i[e]:r};xt.is=function(e){var r=e;if(!Array.isArray(e)){r=new Array(arguments.length);for(var n=0;n=200&&r<300||r===304?vme(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});hs(xt,"stale",function(){return!this.fresh});hs(xt,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function hs(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var GE=P(Pg=>{var Nq=require("crypto");Pg.sign=function(t,e){if(typeof t!="string")throw new TypeError("Cookie value must be provided as a string.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");return t+"."+Nq.createHmac("sha256",e).update(t).digest("base64").replace(/\=+$/,"")};Pg.unsign=function(t,e){if(typeof t!="string")throw new TypeError("Signed cookie string must be provided.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");var r=t.slice(0,t.lastIndexOf(".")),n=Pg.sign(r,e);return jq(n)==jq(t)?r:!1};function jq(t){return Nq.createHash("sha1").update(t).digest("hex")}});var KE=P(VE=>{"use strict";VE.parse=Tme;VE.serialize=Rme;var xme=Object.prototype.toString,_me=Object.prototype.hasOwnProperty,wme=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Sme=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,Eme=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,kme=/^[\u0020-\u003A\u003D-\u007E]*$/;function Tme(t,e){if(typeof t!="string")throw new TypeError("argument str must be a string");var r={},n=t.length;if(n<2)return r;var s=e&&e.decode||Pme,i=0,a=0,o=0;do{if(a=t.indexOf("=",i),a===-1)break;if(o=t.indexOf(";",i),o===-1)o=n;else if(a>o){i=t.lastIndexOf(";",a-1)+1;continue}var c=Dq(t,i,a),l=Mq(t,a,c),u=t.slice(c,l);if(!_me.call(r,u)){var p=Dq(t,a+1,o),d=Mq(t,o,p);t.charCodeAt(p)===34&&t.charCodeAt(d-1)===34&&(p++,d--);var m=t.slice(p,d);r[u]=Cme(m,s)}i=o+1}while(ir;){var n=t.charCodeAt(--e);if(n!==32&&n!==9)return e+1}return r}function Rme(t,e,r){var n=r&&r.encode||encodeURIComponent;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!wme.test(t))throw new TypeError("argument name is invalid");var s=n(e);if(!Sme.test(s))throw new TypeError("argument val is invalid");var i=t+"="+s;if(!r)return i;if(r.maxAge!=null){var a=Math.floor(r.maxAge);if(!isFinite(a))throw new TypeError("option maxAge is invalid");i+="; Max-Age="+a}if(r.domain){if(!Eme.test(r.domain))throw new TypeError("option domain is invalid");i+="; Domain="+r.domain}if(r.path){if(!kme.test(r.path))throw new TypeError("option path is invalid");i+="; Path="+r.path}if(r.expires){var o=r.expires;if(!Ime(o)||isNaN(o.valueOf()))throw new TypeError("option expires is invalid");i+="; Expires="+o.toUTCString()}if(r.httpOnly&&(i+="; HttpOnly"),r.secure&&(i+="; Secure"),r.partitioned&&(i+="; Partitioned"),r.priority){var c=typeof r.priority=="string"?r.priority.toLowerCase():r.priority;switch(c){case"low":i+="; Priority=Low";break;case"medium":i+="; Priority=Medium";break;case"high":i+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(r.sameSite){var l=typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite;switch(l){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return i}function Pme(t){return t.indexOf("%")!==-1?decodeURIComponent(t):t}function Ime(t){return xme.call(t)==="[object Date]"}function Cme(t,e){try{return e(t)}catch{return t}}});var QE=P((AMe,JE)=>{"use strict";JE.exports=Ame;JE.exports.append=$q;var Ome=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function $q(t,e){if(typeof t!="string")throw new TypeError("header argument is required");if(!e)throw new TypeError("field argument is required");for(var r=Array.isArray(e)?e:zq(String(e)),n=0;n{"use strict";var ed=hg().Buffer,Lq=SE(),jme=Ca(),fn=js()("express"),Nme=Mp(),Dme=zp(),Mme=require("http"),zme=Li().isAbsolute,$me=fp(),Uq=require("path"),Ig=sp(),qq=Bp(),Lme=GE().sign,Ume=Li().normalizeType,qme=Li().normalizeTypes,Fme=Li().setCharset,Hme=KE(),YE=_g(),Bme=Uq.extname,Fq=YE.mime,Wme=Uq.resolve,Zme=QE(),Et=Object.create(Mme.ServerResponse.prototype);Wq.exports=Et;var Gme=/;\s*charset\s*=/;Et.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&fn("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};Et.links=function(t){var e=this.get("Link")||"";return e&&(e+=", "),this.set("Link",e+Object.keys(t).map(function(r){return"<"+t[r]+'>; rel="'+r+'"'}).join(", "))};Et.send=function(e){var r=e,n,s=this.req,i,a=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?(fn("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):(fn("res.send(status, body): Use res.status(status).send(body) instead"),this.statusCode=arguments[0],r=arguments[1])),typeof r=="number"&&arguments.length===1&&(this.get("Content-Type")||this.type("txt"),fn("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=r,r=Ig.message[r]),typeof r){case"string":this.get("Content-Type")||this.type("html");break;case"boolean":case"number":case"object":if(r===null)r="";else if(ed.isBuffer(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(n="utf8",i=this.get("Content-Type"),typeof i=="string"&&this.set("Content-Type",Fme(i,"utf-8")));var o=a.get("etag fn"),c=!this.get("ETag")&&typeof o=="function",l;r!==void 0&&(ed.isBuffer(r)?l=r.length:!c&&r.length<1e3?l=ed.byteLength(r,n):(r=ed.from(r,n),n=void 0,l=r.length),this.set("Content-Length",l));var u;return c&&l!==void 0&&(u=o(r,n))&&this.set("ETag",u),s.fresh&&(this.statusCode=304),(this.statusCode===204||this.statusCode===304)&&(this.removeHeader("Content-Type"),this.removeHeader("Content-Length"),this.removeHeader("Transfer-Encoding"),r=""),this.statusCode===205&&(this.set("Content-Length","0"),this.removeHeader("Transfer-Encoding"),r=""),s.method==="HEAD"?this.end():this.end(r,n),this};Et.json=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(fn("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):(fn("res.json(status, obj): Use res.status(status).json(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,s=n.get("json escape"),i=n.get("json replacer"),a=n.get("json spaces"),o=Bq(r,i,a,s);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(o)};Et.jsonp=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(fn("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):(fn("res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,s=n.get("json escape"),i=n.get("json replacer"),a=n.get("json spaces"),o=Bq(r,i,a,s),c=this.req.query[n.get("jsonp callback name")];return this.get("Content-Type")||(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","application/json")),Array.isArray(c)&&(c=c[0]),typeof c=="string"&&c.length!==0&&(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","text/javascript"),c=c.replace(/[^\[\]\w$.]/g,""),o===void 0?o="":typeof o=="string"&&(o=o.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),o="/**/ typeof "+c+" === 'function' && "+c+"("+o+");"),this.send(o)};Et.sendStatus=function(e){var r=Ig.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(r)};Et.sendFile=function(e,r,n){var s=n,i=this.req,a=this,o=i.next,c=r||{};if(!e)throw new TypeError("path argument is required to res.sendFile");if(typeof e!="string")throw new TypeError("path must be a string to res.sendFile");if(typeof r=="function"&&(s=r,c={}),!c.root&&!zme(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var l=encodeURI(e),u=YE(i,l,c);Hq(a,u,c,function(p){if(s)return s(p);if(p&&p.code==="EISDIR")return o();p&&p.code!=="ECONNABORTED"&&p.syscall!=="write"&&o(p)})};Et.sendfile=function(t,e,r){var n=r,s=this.req,i=this,a=s.next,o=e||{};typeof e=="function"&&(n=e,o={});var c=YE(s,t,o);Hq(i,c,o,function(l){if(n)return n(l);if(l&&l.code==="EISDIR")return a();l&&l.code!=="ECONNABORTED"&&l.syscall!=="write"&&a(l)})};Et.sendfile=fn.function(Et.sendfile,"res.sendfile: Use res.sendFile instead");Et.download=function(e,r,n,s){var i=s,a=r,o=n||null;typeof r=="function"?(i=r,a=null,o=null):typeof n=="function"&&(i=n,o=null),typeof r=="object"&&(typeof n=="function"||n===void 0)&&(a=null,o=r);var c={"Content-Disposition":Lq(a||e)};if(o&&o.headers)for(var l=Object.keys(o.headers),u=0;u0?e.accepts(n):!1;return this.vary("Accept"),s?(this.set("Content-Type",Ume(s).value),t[s](e,this,r)):t.default?t.default(e,this,r):r(jme(406,{types:qme(n).map(function(i){return i.value})})),this};Et.attachment=function(e){return e&&this.type(Bme(e)),this.set("Content-Disposition",Lq(e)),this};Et.append=function(e,r){var n=this.get(e),s=r;return n&&(s=Array.isArray(n)?n.concat(r):Array.isArray(r)?[n].concat(r):[n,r]),this.set(e,s)};Et.set=Et.header=function(e,r){if(arguments.length===2){var n=Array.isArray(r)?r.map(String):String(r);if(e.toLowerCase()==="content-type"){if(Array.isArray(n))throw new TypeError("Content-Type cannot be set to an Array");if(!Gme.test(n)){var s=Fq.charsets.lookup(n.split(";")[0]);s&&(n+="; charset="+s.toLowerCase())}}this.setHeader(e,n)}else for(var i in e)this.set(i,e[i]);return this};Et.get=function(t){return this.getHeader(t)};Et.clearCookie=function(e,r){r&&(r.maxAge&&fn('res.clearCookie: Passing "options.maxAge" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'),r.expires&&fn('res.clearCookie: Passing "options.expires" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'));var n=qq({expires:new Date(1),path:"/"},r);return this.cookie(e,"",n)};Et.cookie=function(t,e,r){var n=qq({},r),s=this.req.secret,i=n.signed;if(i&&!s)throw new Error('cookieParser("secret") required for signed cookies');var a=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(i&&(a="s:"+Lme(a,s)),n.maxAge!=null){var o=n.maxAge-0;isNaN(o)||(n.expires=new Date(Date.now()+o),n.maxAge=Math.floor(o/1e3))}return n.path==null&&(n.path="/"),this.append("Set-Cookie",Hme.serialize(t,String(a),n)),this};Et.location=function(e){var r;return e==="back"?(fn('res.location("back"): use res.location(req.get("Referrer") || "/") and refer to https://dub.sh/security-redirect for best practices'),r=this.req.get("Referrer")||"/"):r=String(e),this.set("Location",Nme(r))};Et.redirect=function(e){var r=e,n,s=302;arguments.length===2&&(typeof arguments[0]=="number"?(s=arguments[0],r=arguments[1]):(fn("res.redirect(url, status): Use res.redirect(status, url) instead"),s=arguments[1])),r=this.location(r).get("Location"),this.format({text:function(){n=Ig.message[s]+". Redirecting to "+r},html:function(){var i=Dme(r);n="

"+Ig.message[s]+". Redirecting to "+i+"

"},default:function(){n=""}}),this.statusCode=s,this.set("Content-Length",ed.byteLength(n)),this.req.method==="HEAD"?this.end():this.end(n)};Et.vary=function(t){return!t||Array.isArray(t)&&!t.length?(fn("res.vary(): Provide a field name"),this):(Zme(this,t),this)};Et.render=function(e,r,n){var s=this.req.app,i=n,a=r||{},o=this.req,c=this;typeof r=="function"&&(i=r,a={}),a._locals=c.locals,i=i||function(l,u){if(l)return o.next(l);c.send(u)},s.render(e,a,i)};function Hq(t,e,r,n){var s=!1,i;function a(){if(!s){s=!0;var m=new Error("Request aborted");m.code="ECONNABORTED",n(m)}}function o(){if(!s){s=!0;var m=new Error("EISDIR, read");m.code="EISDIR",n(m)}}function c(m){s||(s=!0,n(m))}function l(){s||(s=!0,n())}function u(){i=!1}function p(m){if(m&&m.code==="ECONNRESET")return a();if(m)return c(m);s||setImmediate(function(){if(i!==!1&&!s){a();return}s||(s=!0,n())})}function d(){i=!0}e.on("directory",o),e.on("end",l),e.on("error",c),e.on("file",u),e.on("stream",d),$me(t,p),r.headers&&e.on("headers",function(f){for(var g=r.headers,v=Object.keys(g),h=0;h&]/g,function(i){switch(i.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return i}})),s}});var Vq=P((NMe,ek)=>{"use strict";var Vme=Mp(),Kme=zp(),XE=wc(),Jme=require("path").resolve,Gq=_g(),Qme=require("url");ek.exports=Yme;ek.exports.mime=Gq.mime;function Yme(t,e){if(!t)throw new TypeError("root path required");if(typeof t!="string")throw new TypeError("root path must be a string");var r=Object.create(e||null),n=r.fallthrough!==!1,s=r.redirect!==!1,i=r.setHeaders;if(i&&typeof i!="function")throw new TypeError("option setHeaders must be function");r.maxage=r.maxage||r.maxAge||0,r.root=Jme(t);var a=s?rfe():tfe();return function(c,l,u){if(c.method!=="GET"&&c.method!=="HEAD"){if(n)return u();l.statusCode=405,l.setHeader("Allow","GET, HEAD"),l.setHeader("Content-Length","0"),l.end();return}var p=!n,d=XE.original(c),m=XE(c).pathname;m==="/"&&d.pathname.substr(-1)!=="/"&&(m="");var f=Gq(c,m,r);f.on("directory",a),i&&f.on("headers",i),n&&f.on("file",function(){p=!0}),f.on("error",function(v){if(p||!(v.statusCode<500)){u(v);return}u()}),f.pipe(l)}}function Xme(t){for(var e=0;e1?"/"+t.substr(e):t}function efe(t,e){return` @@ -86,7 +86,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app.
`+e+`
-`}function ofe(){return function(){this.error(404)}}function cfe(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var r=rE.original(this.req);r.path=null,r.pathname=ife(r.pathname+"/");var n=efe(nfe.format(r)),s=afe("Redirecting","Redirecting to "+tfe(n));e.statusCode=301,e.setHeader("Content-Type","text/html; charset=UTF-8"),e.setHeader("Content-Length",Buffer.byteLength(s)),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Location",n),e.end(s)}}});var s6=P((hn,n6)=>{"use strict";var Ag=ZL(),lfe=require("events").EventEmitter,Xq=VL(),e6=sq(),ufe=xk(),pfe=wk(),t6=Mq(),r6=Jq();hn=n6.exports=dfe;function dfe(){var t=function(e,r,n){t.handle(e,r,n)};return Xq(t,lfe.prototype,!1),Xq(t,e6,!1),t.request=Object.create(t6,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.response=Object.create(r6,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.init(),t}hn.application=e6;hn.request=t6;hn.response=r6;hn.Route=ufe;hn.Router=pfe;hn.json=Ag.json;hn.query=Sk();hn.raw=Ag.raw;hn.static=Yq();hn.text=Ag.text;hn.urlencoded=Ag.urlencoded;var mfe=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];mfe.forEach(function(t){Object.defineProperty(hn,t,{get:function(){throw new Error("Most middleware (like "+t+") is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.")},configurable:!0})})});var rd=P((FMe,i6)=>{"use strict";i6.exports=s6()});var c6=P((HMe,o6)=>{"use strict";var a6=Object.getOwnPropertySymbols,ffe=Object.prototype.hasOwnProperty,hfe=Object.prototype.propertyIsEnumerable;function gfe(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function vfe(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(e).map(function(i){return e[i]});if(n.join("")!=="0123456789")return!1;var s={};return"abcdefghijklmnopqrst".split("").forEach(function(i){s[i]=i}),Object.keys(Object.assign({},s)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}o6.exports=vfe()?Object.assign:function(t,e){for(var r,n=gfe(t),s,i=1;i{(function(){"use strict";var t=c6(),e=eE(),r={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function n(f){return typeof f=="string"||f instanceof String}function s(f,g){if(Array.isArray(g)){for(var v=0;v{"use strict";var yfe=Yk(),bfe=Jk();Dc.exports=xfe;Dc.exports.JSONCookie=p6;Dc.exports.JSONCookies=sE;Dc.exports.signedCookie=d6;Dc.exports.signedCookies=m6;function xfe(t,e){var r=!t||Array.isArray(t)?t||[]:[t];return function(s,i,a){if(s.cookies)return a();var o=s.headers.cookie;if(s.secret=r[0],s.cookies=Object.create(null),s.signedCookies=Object.create(null),!o)return a();s.cookies=yfe.parse(o,e),r.length!==0&&(s.signedCookies=m6(s.cookies,r),s.signedCookies=sE(s.signedCookies)),s.cookies=sE(s.cookies),a()}}function p6(t){if(!(typeof t!="string"||t.substr(0,2)!=="j:"))try{return JSON.parse(t.slice(2))}catch{return}}function sE(t){for(var e=Object.keys(t),r,n,s=0;skfe}function id(){if(ni)try{Mc.default.mkdirSync(cE.default.dirname(ni),{recursive:!0});let t={};for(let[r,n]of si)t[r]=n;let e=ni+".tmp";Mc.default.writeFileSync(e,JSON.stringify(t),"utf-8"),Mc.default.renameSync(e,ni)}catch(t){_.warn("SECURITY","Failed to persist auth sessions",{path:ni},t)}}function Tfe(){if(si.clear(),!(!ni||!Mc.default.existsSync(ni)))try{let t=Mc.default.readFileSync(ni,"utf-8"),e=JSON.parse(t),r=0,n=0;for(let[s,i]of Object.entries(e)){if(typeof i?.createdAt!="number"||typeof i?.ip!="string"||lE(i.createdAt)){n+=1;continue}si.set(s,{createdAt:i.createdAt,ip:i.ip}),r+=1}n>0&&id(),r>0&&_.info("SECURITY","Restored persisted auth sessions",{loaded:r,dropped:n})}catch(t){_.warn("SECURITY","Failed to read persisted auth sessions; starting empty",{path:ni},t)}}function Rfe(t){let e=t.ip||t.socket.remoteAddress||"";return e==="127.0.0.1"||e==="::1"||e==="::ffff:127.0.0.1"||e==="localhost"}function Dg(){return Ae.loadFromFile(Ht).CLAUDE_PILOT_REMOTE_TOKEN}function Pfe(){return Ng.default.randomBytes(32).toString("hex")}function Ife(t,e){let r=si.get(t);return r?lE(r.createdAt)?(si.delete(t),id(),!1):r.ip!==e?(_.warn("SECURITY","Session IP mismatch - possible session replay",{sessionIp:r.ip,requestIp:e}),!1):!0:!1}function S6(t){let e=Pfe();return si.set(e,{createdAt:Date.now(),ip:t}),id(),e}function k6(t){si.delete(t)&&id()}function Cfe(){let t=0;for(let[e,r]of si.entries())lE(r.createdAt)&&(si.delete(e),t+=1);t>0&&id()}function Mg(){sd||(sd=setInterval(Cfe,3600*1e3))}function E6(){sd&&(clearInterval(sd),sd=null)}function zg(t,e,r){if(Rfe(t))return t.auth={isLocal:!0,scopes:["*"]},r();if(t.path==="/login"||t.path.startsWith("/api/auth/"))return r();let n=t.ip||t.socket.remoteAddress||"unknown",s=t.cookies?.[w6];if(s&&Ife(s,n))return t.auth={isLocal:!1,clientId:"web-session",scopes:["*"]},r();let i=t.headers.authorization;if(i&&i.startsWith("Bearer ")){let c=i.slice(7),l=Dg();if(l&&Sfe(c,l))return t.auth={isLocal:!1,clientId:"api-client",scopes:["*"]},r()}if((t.headers.accept||"").includes("text/html")&&(t.path==="/"||t.path==="/viewer.html")){e.redirect("/login");return}_.warn("SECURITY","Unauthorized request",{path:t.path,ip:n}),e.status(401).json({code:"UNAUTHORIZED",message:"Authentication required"})}function T6(t){return(e,r,n)=>{let s=e.auth;if(!s){r.status(401).json({code:"UNAUTHORIZED",message:"Authentication required"});return}if(s.scopes.includes("*")||s.scopes.includes(t))return n();_.warn("SECURITY","Insufficient permissions",{path:e.path,requiredScope:t,grantedScopes:s.scopes}),r.status(403).json({code:"FORBIDDEN",message:`Scope '${t}' required`})}}function uE(){return w6}function Za(){return!!Dg()}var Ng,Mc,cE,_6,w6,kfe,si,Efe,ni,sd,pE=ye(()=>{"use strict";Ng=Q(require("crypto"),1),Mc=Q(require("node:fs"),1),cE=Q(require("node:path"),1),_6=require("node:os");re();Or();er();w6="claude_pilot_session",kfe=1440*60*1e3,si=new Map,Efe=cE.default.join((0,_6.homedir)(),".pilot","auth-sessions.json"),ni=Efe;Tfe();sd=null});function Ofe(t){let e=t.ip||t.socket.remoteAddress||"";return e==="127.0.0.1"||e==="::1"||e==="::ffff:127.0.0.1"}function Afe(t){let e=t.headers.authorization;return e&&e.startsWith("Bearer ")?`token:${R6.default.createHash("sha256").update(e.slice(7)).digest("hex").slice(0,16)}`:`ip:${t.ip||t.socket.remoteAddress||"unknown"}`}function ad(t=1e3,e=6e4){return(r,n,s)=>{if(Ofe(r))return s();let i=Afe(r),a=Date.now(),o=a-e,c=dE.get(i);if(c||(c={timestamps:[]},dE.set(i,c)),c.timestamps=c.timestamps.filter(u=>u>o),c.timestamps.length>=t){let u=Math.ceil(e/1e3);_.warn("SECURITY","Rate limit exceeded",{key:i,requests:c.timestamps.length,limit:t}),n.setHeader("Retry-After",u.toString()),n.setHeader("X-RateLimit-Limit",t.toString()),n.setHeader("X-RateLimit-Remaining","0"),n.setHeader("X-RateLimit-Reset",Math.ceil((a+e)/1e3).toString()),n.status(429).json({code:"RATE_LIMITED",message:"Too many requests",retryAfter:u});return}c.timestamps.push(a);let l=t-c.timestamps.length;n.setHeader("X-RateLimit-Limit",t.toString()),n.setHeader("X-RateLimit-Remaining",l.toString()),n.setHeader("X-RateLimit-Reset",Math.ceil((a+e)/1e3).toString()),s()}}function P6(){dE.clear()}var R6,dE,I6=ye(()=>{"use strict";R6=Q(require("crypto"),1);re();dE=new Map});var C6={};es(C6,{authMiddleware:()=>zg,clearRateLimitStore:()=>P6,isRemoteAuthConfigured:()=>Za,rateLimitMiddleware:()=>ad,requireScope:()=>T6,startSessionCleanupTimer:()=>Mg,stopSessionCleanupTimer:()=>E6});var mE=ye(()=>{"use strict";pE();I6()});var A6,Ui,Lg=ye(()=>{"use strict";A6=require("bun:sqlite");er();re();Ui=class{db;constructor(e=Wl){e!==":memory:"&&rs(nn),this.db=new A6.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn(),this.createPendingMessagesTable(),this.renameSessionIdColumns(),this.repairSessionIdColumnRename(),this.addFailedAtEpochColumn(),this.ensureSessionPlansTable(),this.createProjectRootsTable(),this.ensureNotificationsTable()}initializeSchema(){this.db.run(` +`}function tfe(){return function(){this.error(404)}}function rfe(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var r=XE.original(this.req);r.path=null,r.pathname=Xme(r.pathname+"/");var n=Vme(Qme.format(r)),s=efe("Redirecting","Redirecting to "+Kme(n));e.statusCode=301,e.setHeader("Content-Type","text/html; charset=UTF-8"),e.setHeader("Content-Length",Buffer.byteLength(s)),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Location",n),e.end(s)}}});var e6=P((hn,Xq)=>{"use strict";var Cg=FL(),nfe=require("events").EventEmitter,Kq=BL(),Jq=eq(),sfe=vE(),ife=bE(),Qq=Aq(),Yq=Zq();hn=Xq.exports=afe;function afe(){var t=function(e,r,n){t.handle(e,r,n)};return Kq(t,nfe.prototype,!1),Kq(t,Jq,!1),t.request=Object.create(Qq,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.response=Object.create(Yq,{app:{configurable:!0,enumerable:!0,writable:!0,value:t}}),t.init(),t}hn.application=Jq;hn.request=Qq;hn.response=Yq;hn.Route=sfe;hn.Router=ife;hn.json=Cg.json;hn.query=xE();hn.raw=Cg.raw;hn.static=Vq();hn.text=Cg.text;hn.urlencoded=Cg.urlencoded;var ofe=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];ofe.forEach(function(t){Object.defineProperty(hn,t,{get:function(){throw new Error("Most middleware (like "+t+") is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.")},configurable:!0})})});var td=P((DMe,t6)=>{"use strict";t6.exports=e6()});var s6=P((MMe,n6)=>{"use strict";var r6=Object.getOwnPropertySymbols,cfe=Object.prototype.hasOwnProperty,lfe=Object.prototype.propertyIsEnumerable;function ufe(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function pfe(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(e).map(function(i){return e[i]});if(n.join("")!=="0123456789")return!1;var s={};return"abcdefghijklmnopqrst".split("").forEach(function(i){s[i]=i}),Object.keys(Object.assign({},s)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}n6.exports=pfe()?Object.assign:function(t,e){for(var r,n=ufe(t),s,i=1;i{(function(){"use strict";var t=s6(),e=QE(),r={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function n(f){return typeof f=="string"||f instanceof String}function s(f,g){if(Array.isArray(g)){for(var v=0;v{"use strict";var dfe=KE(),mfe=GE();Nc.exports=ffe;Nc.exports.JSONCookie=o6;Nc.exports.JSONCookies=tk;Nc.exports.signedCookie=c6;Nc.exports.signedCookies=l6;function ffe(t,e){var r=!t||Array.isArray(t)?t||[]:[t];return function(s,i,a){if(s.cookies)return a();var o=s.headers.cookie;if(s.secret=r[0],s.cookies=Object.create(null),s.signedCookies=Object.create(null),!o)return a();s.cookies=dfe.parse(o,e),r.length!==0&&(s.signedCookies=l6(s.cookies,r),s.signedCookies=tk(s.signedCookies)),s.cookies=tk(s.cookies),a()}}function o6(t){if(!(typeof t!="string"||t.substr(0,2)!=="j:"))try{return JSON.parse(t.slice(2))}catch{return}}function tk(t){for(var e=Object.keys(t),r,n,s=0;syfe}function sd(){if(ni)try{Dc.default.mkdirSync(ik.default.dirname(ni),{recursive:!0});let t={};for(let[r,n]of si)t[r]=n;let e=ni+".tmp";Dc.default.writeFileSync(e,JSON.stringify(t),"utf-8"),Dc.default.renameSync(e,ni)}catch(t){_.warn("SECURITY","Failed to persist auth sessions",{path:ni},t)}}function xfe(){if(si.clear(),!(!ni||!Dc.default.existsSync(ni)))try{let t=Dc.default.readFileSync(ni,"utf-8"),e=JSON.parse(t),r=0,n=0;for(let[s,i]of Object.entries(e)){if(typeof i?.createdAt!="number"||typeof i?.ip!="string"||ak(i.createdAt)){n+=1;continue}si.set(s,{createdAt:i.createdAt,ip:i.ip}),r+=1}n>0&&sd(),r>0&&_.info("SECURITY","Restored persisted auth sessions",{loaded:r,dropped:n})}catch(t){_.warn("SECURITY","Failed to read persisted auth sessions; starting empty",{path:ni},t)}}function _fe(t){let e=t.ip||t.socket.remoteAddress||"";return e==="127.0.0.1"||e==="::1"||e==="::ffff:127.0.0.1"||e==="localhost"}function jg(){return Ae.loadFromFile(Ht).CLAUDE_PILOT_REMOTE_TOKEN}function wfe(){return Ag.default.randomBytes(32).toString("hex")}function Sfe(t,e){let r=si.get(t);return r?ak(r.createdAt)?(si.delete(t),sd(),!1):r.ip!==e?(_.warn("SECURITY","Session IP mismatch - possible session replay",{sessionIp:r.ip,requestIp:e}),!1):!0:!1}function b6(t){let e=wfe();return si.set(e,{createdAt:Date.now(),ip:t}),sd(),e}function x6(t){si.delete(t)&&sd()}function Efe(){let t=0;for(let[e,r]of si.entries())ak(r.createdAt)&&(si.delete(e),t+=1);t>0&&sd()}function Ng(){nd||(nd=setInterval(Efe,3600*1e3))}function _6(){nd&&(clearInterval(nd),nd=null)}function Dg(t,e,r){if(_fe(t))return t.auth={isLocal:!0,scopes:["*"]},r();if(t.path==="/login"||t.path.startsWith("/api/auth/"))return r();let n=t.ip||t.socket.remoteAddress||"unknown",s=t.cookies?.[y6];if(s&&Sfe(s,n))return t.auth={isLocal:!1,clientId:"web-session",scopes:["*"]},r();let i=t.headers.authorization;if(i&&i.startsWith("Bearer ")){let c=i.slice(7),l=jg();if(l&&vfe(c,l))return t.auth={isLocal:!1,clientId:"api-client",scopes:["*"]},r()}if((t.headers.accept||"").includes("text/html")&&(t.path==="/"||t.path==="/viewer.html")){e.redirect("/login");return}_.warn("SECURITY","Unauthorized request",{path:t.path,ip:n}),e.status(401).json({code:"UNAUTHORIZED",message:"Authentication required"})}function w6(t){return(e,r,n)=>{let s=e.auth;if(!s){r.status(401).json({code:"UNAUTHORIZED",message:"Authentication required"});return}if(s.scopes.includes("*")||s.scopes.includes(t))return n();_.warn("SECURITY","Insufficient permissions",{path:e.path,requiredScope:t,grantedScopes:s.scopes}),r.status(403).json({code:"FORBIDDEN",message:`Scope '${t}' required`})}}function ok(){return y6}function Wa(){return!!jg()}var Ag,Dc,ik,v6,y6,yfe,si,bfe,ni,nd,ck=ye(()=>{"use strict";Ag=Q(require("crypto"),1),Dc=Q(require("node:fs"),1),ik=Q(require("node:path"),1),v6=require("node:os");re();Or();er();y6="claude_pilot_session",yfe=1440*60*1e3,si=new Map,bfe=ik.default.join((0,v6.homedir)(),".pilot","auth-sessions.json"),ni=bfe;xfe();nd=null});function kfe(t){let e=t.ip||t.socket.remoteAddress||"";return e==="127.0.0.1"||e==="::1"||e==="::ffff:127.0.0.1"}function Tfe(t){let e=t.headers.authorization;return e&&e.startsWith("Bearer ")?`token:${S6.default.createHash("sha256").update(e.slice(7)).digest("hex").slice(0,16)}`:`ip:${t.ip||t.socket.remoteAddress||"unknown"}`}function id(t=1e3,e=6e4){return(r,n,s)=>{if(kfe(r))return s();let i=Tfe(r),a=Date.now(),o=a-e,c=lk.get(i);if(c||(c={timestamps:[]},lk.set(i,c)),c.timestamps=c.timestamps.filter(u=>u>o),c.timestamps.length>=t){let u=Math.ceil(e/1e3);_.warn("SECURITY","Rate limit exceeded",{key:i,requests:c.timestamps.length,limit:t}),n.setHeader("Retry-After",u.toString()),n.setHeader("X-RateLimit-Limit",t.toString()),n.setHeader("X-RateLimit-Remaining","0"),n.setHeader("X-RateLimit-Reset",Math.ceil((a+e)/1e3).toString()),n.status(429).json({code:"RATE_LIMITED",message:"Too many requests",retryAfter:u});return}c.timestamps.push(a);let l=t-c.timestamps.length;n.setHeader("X-RateLimit-Limit",t.toString()),n.setHeader("X-RateLimit-Remaining",l.toString()),n.setHeader("X-RateLimit-Reset",Math.ceil((a+e)/1e3).toString()),s()}}function E6(){lk.clear()}var S6,lk,k6=ye(()=>{"use strict";S6=Q(require("crypto"),1);re();lk=new Map});var T6={};es(T6,{authMiddleware:()=>Dg,clearRateLimitStore:()=>E6,isRemoteAuthConfigured:()=>Wa,rateLimitMiddleware:()=>id,requireScope:()=>w6,startSessionCleanupTimer:()=>Ng,stopSessionCleanupTimer:()=>_6});var uk=ye(()=>{"use strict";ck();k6()});var P6,Ui,zg=ye(()=>{"use strict";P6=require("bun:sqlite");er();re();Ui=class{db;constructor(e=Bl){e!==":memory:"&&rs(nn),this.db=new P6.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn(),this.createPendingMessagesTable(),this.renameSessionIdColumns(),this.repairSessionIdColumnRename(),this.addFailedAtEpochColumn(),this.ensureSessionPlansTable(),this.createProjectRootsTable(),this.ensureNotificationsTable()}initializeSchema(){this.db.run(` CREATE TABLE IF NOT EXISTS schema_versions ( id INTEGER PRIMARY KEY, version INTEGER UNIQUE NOT NULL, @@ -633,7 +633,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. WHERE usage_count > 0 ORDER BY usage_count DESC LIMIT ? - `).all(e)}suggestTagsForObservation(e){let r=this.getObservationById(e);if(!r)return[];let n=[];if(r.concepts)try{let a=JSON.parse(r.concepts);n.push(...a)}catch{typeof r.concepts=="string"&&n.push(...r.concepts.split(",").map(a=>a.trim()))}r.type&&n.push(r.type);let s=this.getAllTags(),i=new Set(s.map(a=>a.name));return[...new Set(n.map(a=>a.toLowerCase().trim()))].filter(Boolean)}}});var Va={};es(Va,{PendingMessageStore:()=>ud});var ud,Fi=ye(()=>{"use strict";re();ud=class{db;maxRetries;constructor(e,r=3){this.db=e,this.maxRetries=r}enqueue(e,r,n){let s=Date.now();return this.db.prepare(` + `).all(e)}suggestTagsForObservation(e){let r=this.getObservationById(e);if(!r)return[];let n=[];if(r.concepts)try{let a=JSON.parse(r.concepts);n.push(...a)}catch{typeof r.concepts=="string"&&n.push(...r.concepts.split(",").map(a=>a.trim()))}r.type&&n.push(r.type);let s=this.getAllTags(),i=new Set(s.map(a=>a.name));return[...new Set(n.map(a=>a.toLowerCase().trim()))].filter(Boolean)}}});var Ga={};es(Ga,{PendingMessageStore:()=>ld});var ld,Fi=ye(()=>{"use strict";re();ld=class{db;maxRetries;constructor(e,r=3){this.db=e,this.maxRetries=r}enqueue(e,r,n){let s=Date.now();return this.db.prepare(` INSERT INTO pending_messages ( session_db_id, content_session_id, message_type, tool_name, tool_input, tool_response, cwd, @@ -732,7 +732,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. `).run(r,e).changes}clearAll(){return this.db.prepare(` DELETE FROM pending_messages WHERE status IN ('pending', 'processing', 'failed') - `).run().changes}toPendingMessage(e){return{type:e.message_type,tool_name:e.tool_name||void 0,tool_input:e.tool_input?JSON.parse(e.tool_input):void 0,tool_response:e.tool_response?JSON.parse(e.tool_response):void 0,prompt_number:e.prompt_number||void 0,cwd:e.cwd||void 0,last_assistant_message:e.last_assistant_message||void 0}}}});var W6={};es(W6,{ModeManager:()=>et});var B6,et,Hn=ye(()=>{"use strict";B6={name:"Code Development",description:"Software development and engineering work",version:"1.0.0",observation_types:[{id:"bugfix",label:"Bug Fix",description:"Something was broken, now fixed",emoji:"\u{1F534}",work_emoji:"\u{1F6E0}\uFE0F"},{id:"feature",label:"Feature",description:"New capability or functionality added",emoji:"\u{1F7E3}",work_emoji:"\u{1F6E0}\uFE0F"},{id:"refactor",label:"Refactor",description:"Code restructured, behavior unchanged",emoji:"\u{1F504}",work_emoji:"\u{1F6E0}\uFE0F"},{id:"change",label:"Change",description:"Generic modification (docs, config, misc)",emoji:"\u2705",work_emoji:"\u{1F6E0}\uFE0F"},{id:"discovery",label:"Discovery",description:"Learning about existing system",emoji:"\u{1F535}",work_emoji:"\u{1F50D}"},{id:"decision",label:"Decision",description:"Architectural/design choice with rationale",emoji:"\u2696\uFE0F",work_emoji:"\u2696\uFE0F"}],observation_concepts:[{id:"how-it-works",label:"How It Works",description:"Understanding mechanisms"},{id:"why-it-exists",label:"Why It Exists",description:"Purpose or rationale"},{id:"what-changed",label:"What Changed",description:"Modifications made"},{id:"problem-solution",label:"Problem-Solution",description:"Issues and their fixes"},{id:"gotcha",label:"Gotcha",description:"Traps or edge cases"},{id:"pattern",label:"Pattern",description:"Reusable approach"},{id:"trade-off",label:"Trade-Off",description:"Pros/cons of a decision"}],prompts:{system_identity:`[MEMORY] You are a specialized observer tool for creating searchable memory FOR FUTURE SESSIONS. + `).run().changes}toPendingMessage(e){return{type:e.message_type,tool_name:e.tool_name||void 0,tool_input:e.tool_input?JSON.parse(e.tool_input):void 0,tool_response:e.tool_response?JSON.parse(e.tool_response):void 0,prompt_number:e.prompt_number||void 0,cwd:e.cwd||void 0,last_assistant_message:e.last_assistant_message||void 0}}}});var q6={};es(q6,{ModeManager:()=>et});var U6,et,Hn=ye(()=>{"use strict";U6={name:"Code Development",description:"Software development and engineering work",version:"1.0.0",observation_types:[{id:"bugfix",label:"Bug Fix",description:"Something was broken, now fixed",emoji:"\u{1F534}",work_emoji:"\u{1F6E0}\uFE0F"},{id:"feature",label:"Feature",description:"New capability or functionality added",emoji:"\u{1F7E3}",work_emoji:"\u{1F6E0}\uFE0F"},{id:"refactor",label:"Refactor",description:"Code restructured, behavior unchanged",emoji:"\u{1F504}",work_emoji:"\u{1F6E0}\uFE0F"},{id:"change",label:"Change",description:"Generic modification (docs, config, misc)",emoji:"\u2705",work_emoji:"\u{1F6E0}\uFE0F"},{id:"discovery",label:"Discovery",description:"Learning about existing system",emoji:"\u{1F535}",work_emoji:"\u{1F50D}"},{id:"decision",label:"Decision",description:"Architectural/design choice with rationale",emoji:"\u2696\uFE0F",work_emoji:"\u2696\uFE0F"}],observation_concepts:[{id:"how-it-works",label:"How It Works",description:"Understanding mechanisms"},{id:"why-it-exists",label:"Why It Exists",description:"Purpose or rationale"},{id:"what-changed",label:"What Changed",description:"Modifications made"},{id:"problem-solution",label:"Problem-Solution",description:"Issues and their fixes"},{id:"gotcha",label:"Gotcha",description:"Traps or edge cases"},{id:"pattern",label:"Pattern",description:"Reusable approach"},{id:"trade-off",label:"Trade-Off",description:"Pros/cons of a decision"}],prompts:{system_identity:`[MEMORY] You are a specialized observer tool for creating searchable memory FOR FUTURE SESSIONS. CRITICAL: Record what was LEARNED/BUILT/FIXED/DEPLOYED/CONFIGURED, not what you (the observer) are doing. @@ -809,7 +809,7 @@ Remember that we record these observations as a way of helping us stay on track IMPORTANT! You MUST fill in ALL six fields (request, investigated, learned, completed, next_steps, notes) with actual content - never leave any field empty or use placeholder text. If a field doesn't apply, write a brief explanation why (e.g., "No investigation needed - straightforward implementation"). -Do not output anything other than the summary content formatted in the XML structure above.`}},et=class t{static instance=null;activeMode=null;constructor(){}static getInstance(){return t.instance||(t.instance=new t),t.instance}loadMode(){return this.activeMode=B6,B6}getActiveMode(){if(!this.activeMode)throw new Error("No mode loaded. Call loadMode() first.");return this.activeMode}getObservationTypes(){return this.getActiveMode().observation_types}getObservationConcepts(){return this.getActiveMode().observation_concepts}getTypeIcon(e){return this.getObservationTypes().find(n=>n.id===e)?.emoji||"\u{1F4DD}"}getWorkEmoji(e){return this.getObservationTypes().find(n=>n.id===e)?.work_emoji||"\u{1F4DD}"}validateType(e){return this.getObservationTypes().some(r=>r.id===e)}getTypeLabel(e){return this.getObservationTypes().find(n=>n.id===e)?.label||e}}});function Qg(t){if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e:[]}catch(e){return _.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:t?.substring(0,50)},e),[]}}function Bn(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function Zr(t){return new Date(t).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function ii(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function V6(t,e){return xE.default.isAbsolute(t)?xE.default.relative(e,t):t}function gs(t,e,r){let n=Qg(t);if(n.length>0)return V6(n[0],e);if(r){let s=Qg(r);if(s.length>0)return V6(s[0],e)}return"General"}function $c(t){return t?Math.ceil(t.length/4):0}function Ka(t,e){let r=new Map;for(let s of t){let i=e(s),a=ii(i);r.has(a)||r.set(a,[]),r.get(a).push(s)}let n=Array.from(r.entries()).sort((s,i)=>{let a=new Date(s[0]).getTime(),o=new Date(i[0]).getTime();return a-o});return new Map(n)}var xE,Lc=ye(()=>{"use strict";xE=Q(require("path"),1);re()});function Y6(t){let e=Yg.default.join(t,".git"),r;try{r=(0,Xg.statSync)(e)}catch{return dd}if(!r.isFile())return dd;let n;try{n=(0,Xg.readFileSync)(e,"utf-8").trim()}catch{return dd}let s=n.match(/^gitdir:\s*(.+)$/);if(!s)return dd;let a=s[1].match(/^(.+)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)$/);if(!a)return dd;let o=a[1],c=Yg.default.basename(t),l=Yg.default.basename(o);return{isWorktree:!0,worktreeName:c,parentRepoPath:o,parentProjectName:l}}var Xg,Yg,dd,X6=ye(()=>{"use strict";Xg=require("fs"),Yg=Q(require("path"),1),dd={isWorktree:!1,worktreeName:null,parentRepoPath:null,parentProjectName:null}});function rhe(t){return t.startsWith("~/")?fr.default.join(_E.default.homedir(),t.slice(2)):t==="~"?_E.default.homedir():t}function ai(t){if(!t||t.trim()==="")return _.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:t}),"unknown-project";let e=fr.default.basename(t);if(e===""){if(process.platform==="win32"){let s=t.match(/^([A-Z]):\\/i);if(s){let a=`drive-${s[1].toUpperCase()}`;return _.info("PROJECT_NAME","Drive root detected",{cwd:t,projectName:a}),a}}return _.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:t}),"unknown-project"}let r=tF(t);return r||e}function eF(t){let e=ai(t);if(!t)return{primary:e,parent:null,isWorktree:!1,allProjects:[e]};let r=Y6(t);return r.isWorktree&&r.parentProjectName?{primary:e,parent:r.parentProjectName,isWorktree:!0,allProjects:[r.parentProjectName,e]}:{primary:e,parent:null,isWorktree:!1,allProjects:[e]}}function nhe(t,e){if(!t||t.trim()==="")return null;let r=rhe(t);if(!fr.default.isAbsolute(r))if(e)r=fr.default.resolve(e,r);else return _.debug("PROJECT_NAME","Skipping relative path without basePath",{filePath:t}),null;let n=fr.default.normalize(r),s=tF(n);if(s)return s;let i=she(n);return i||ihe(n)}function tF(t){try{let e;try{e=ev.default.statSync(t).isDirectory()?t:fr.default.dirname(t)}catch{e=fr.default.dirname(t)}let r=fr.default.parse(e).root,n=0,s=20;for(;e!==r&&n=s&&!o.includes(a.toLowerCase()))return a;e=fr.default.dirname(e),n++}return null}catch{return null}}function rF(t,e,r){if(!t||t.length===0)return e;let n=new Map;for(let a of t){let o=nhe(a,r);o&&n.set(o,(n.get(o)||0)+1)}if(n.size===0)return e;let s=0,i=e;for(let[a,o]of n)o>s&&(s=o,i=a);return i!==e&&_.debug("PROJECT_NAME","Detected project from files differs from session",{detectedProject:i,sessionProject:e,fileCount:t.length}),i}var fr,ev,_E,the,Ja=ye(()=>{"use strict";fr=Q(require("path"),1),ev=Q(require("fs"),1),_E=Q(require("os"),1);re();X6();the=["repos","projects","code","work","src","dev","git","workspace","workspaces"]});function T1(){let t=rW.default.join((0,nW.homedir)(),".pilot/memory","settings.json"),e=Ae.loadFromFile(t),r=new Set(e.CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES.split(",").map(s=>s.trim()).filter(Boolean)),n=new Set(e.CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(s=>s.trim()).filter(Boolean));return{totalObservationCount:parseInt(e.CLAUDE_PILOT_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_PILOT_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_PILOT_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS,showWorkTokens:e.CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS,showSavingsAmount:e.CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT,showSavingsPercent:e.CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT,observationTypes:r,observationConcepts:n,fullObservationField:e.CLAUDE_PILOT_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY,showLastMessage:e.CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE}}var rW,nW,R1=ye(()=>{"use strict";rW=Q(require("path"),1),nW=require("os");Or()});var X,sW,_m,wm=ye(()=>{"use strict";X={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",cyan:"\x1B[36m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",gray:"\x1B[90m",red:"\x1B[31m"},sW=4,_m=1});function P1(t){let e=(t.title?.length||0)+(t.subtitle?.length||0)+(t.narrative?.length||0)+JSON.stringify(t.facts||[]).length;return Math.ceil(e/sW)}function I1(t){let e=t.length,r=t.reduce((a,o)=>a+P1(o),0),n=t.reduce((a,o)=>a+(o.discovery_tokens||0),0),s=n-r,i=n>0?Math.round(s/n*100):0;return{totalObservations:e,totalReadTokens:r,totalDiscoveryTokens:n,savings:s,savingsPercent:i}}function zke(t){return et.getInstance().getWorkEmoji(t)}function Rl(t,e){let r=P1(t),n=t.discovery_tokens||0,s=zke(t.type),i=n>0?`${s} ${n.toLocaleString()}`:"-";return{readTokens:r,discoveryTokens:n,discoveryDisplay:i,workEmoji:s}}function nb(t){return t.showReadTokens||t.showWorkTokens||t.showSavingsAmount||t.showSavingsPercent}var yo=ye(()=>{"use strict";wm();Hn()});function C1(t,e,r){let n=Array.from(r.observationTypes),s=n.map(()=>"?").join(","),i=Array.from(r.observationConcepts),a=i.map(()=>"?").join(",");return t.db.prepare(` +Do not output anything other than the summary content formatted in the XML structure above.`}},et=class t{static instance=null;activeMode=null;constructor(){}static getInstance(){return t.instance||(t.instance=new t),t.instance}loadMode(){return this.activeMode=U6,U6}getActiveMode(){if(!this.activeMode)throw new Error("No mode loaded. Call loadMode() first.");return this.activeMode}getObservationTypes(){return this.getActiveMode().observation_types}getObservationConcepts(){return this.getActiveMode().observation_concepts}getTypeIcon(e){return this.getObservationTypes().find(n=>n.id===e)?.emoji||"\u{1F4DD}"}getWorkEmoji(e){return this.getObservationTypes().find(n=>n.id===e)?.work_emoji||"\u{1F4DD}"}validateType(e){return this.getObservationTypes().some(r=>r.id===e)}getTypeLabel(e){return this.getObservationTypes().find(n=>n.id===e)?.label||e}}});function Kg(t){if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e:[]}catch(e){return _.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:t?.substring(0,50)},e),[]}}function Bn(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function Zr(t){return new Date(t).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function ii(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function B6(t,e){return vk.default.isAbsolute(t)?vk.default.relative(e,t):t}function gs(t,e,r){let n=Kg(t);if(n.length>0)return B6(n[0],e);if(r){let s=Kg(r);if(s.length>0)return B6(s[0],e)}return"General"}function zc(t){return t?Math.ceil(t.length/4):0}function Va(t,e){let r=new Map;for(let s of t){let i=e(s),a=ii(i);r.has(a)||r.set(a,[]),r.get(a).push(s)}let n=Array.from(r.entries()).sort((s,i)=>{let a=new Date(s[0]).getTime(),o=new Date(i[0]).getTime();return a-o});return new Map(n)}var vk,$c=ye(()=>{"use strict";vk=Q(require("path"),1);re()});function V6(t){let e=Jg.default.join(t,".git"),r;try{r=(0,Qg.statSync)(e)}catch{return pd}if(!r.isFile())return pd;let n;try{n=(0,Qg.readFileSync)(e,"utf-8").trim()}catch{return pd}let s=n.match(/^gitdir:\s*(.+)$/);if(!s)return pd;let a=s[1].match(/^(.+)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)$/);if(!a)return pd;let o=a[1],c=Jg.default.basename(t),l=Jg.default.basename(o);return{isWorktree:!0,worktreeName:c,parentRepoPath:o,parentProjectName:l}}var Qg,Jg,pd,K6=ye(()=>{"use strict";Qg=require("fs"),Jg=Q(require("path"),1),pd={isWorktree:!1,worktreeName:null,parentRepoPath:null,parentProjectName:null}});function Jfe(t){return t.startsWith("~/")?fr.default.join(yk.default.homedir(),t.slice(2)):t==="~"?yk.default.homedir():t}function ai(t){if(!t||t.trim()==="")return _.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:t}),"unknown-project";let e=fr.default.basename(t);if(e===""){if(process.platform==="win32"){let s=t.match(/^([A-Z]):\\/i);if(s){let a=`drive-${s[1].toUpperCase()}`;return _.info("PROJECT_NAME","Drive root detected",{cwd:t,projectName:a}),a}}return _.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:t}),"unknown-project"}let r=Q6(t);return r||e}function J6(t){let e=ai(t);if(!t)return{primary:e,parent:null,isWorktree:!1,allProjects:[e]};let r=V6(t);return r.isWorktree&&r.parentProjectName?{primary:e,parent:r.parentProjectName,isWorktree:!0,allProjects:[r.parentProjectName,e]}:{primary:e,parent:null,isWorktree:!1,allProjects:[e]}}function Qfe(t,e){if(!t||t.trim()==="")return null;let r=Jfe(t);if(!fr.default.isAbsolute(r))if(e)r=fr.default.resolve(e,r);else return _.debug("PROJECT_NAME","Skipping relative path without basePath",{filePath:t}),null;let n=fr.default.normalize(r),s=Q6(n);if(s)return s;let i=Yfe(n);return i||Xfe(n)}function Q6(t){try{let e;try{e=Yg.default.statSync(t).isDirectory()?t:fr.default.dirname(t)}catch{e=fr.default.dirname(t)}let r=fr.default.parse(e).root,n=0,s=20;for(;e!==r&&n=s&&!o.includes(a.toLowerCase()))return a;e=fr.default.dirname(e),n++}return null}catch{return null}}function Y6(t,e,r){if(!t||t.length===0)return e;let n=new Map;for(let a of t){let o=Qfe(a,r);o&&n.set(o,(n.get(o)||0)+1)}if(n.size===0)return e;let s=0,i=e;for(let[a,o]of n)o>s&&(s=o,i=a);return i!==e&&_.debug("PROJECT_NAME","Detected project from files differs from session",{detectedProject:i,sessionProject:e,fileCount:t.length}),i}var fr,Yg,yk,Kfe,Ka=ye(()=>{"use strict";fr=Q(require("path"),1),Yg=Q(require("fs"),1),yk=Q(require("os"),1);re();K6();Kfe=["repos","projects","code","work","src","dev","git","workspace","workspaces"]});function S1(){let t=Y3.default.join((0,X3.homedir)(),".pilot/memory","settings.json"),e=Ae.loadFromFile(t),r=new Set(e.CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES.split(",").map(s=>s.trim()).filter(Boolean)),n=new Set(e.CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(s=>s.trim()).filter(Boolean));return{totalObservationCount:parseInt(e.CLAUDE_PILOT_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_PILOT_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_PILOT_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS,showWorkTokens:e.CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS,showSavingsAmount:e.CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT,showSavingsPercent:e.CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT,observationTypes:r,observationConcepts:n,fullObservationField:e.CLAUDE_PILOT_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY,showLastMessage:e.CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE}}var Y3,X3,E1=ye(()=>{"use strict";Y3=Q(require("path"),1),X3=require("os");Or()});var X,eW,xm,_m=ye(()=>{"use strict";X={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",cyan:"\x1B[36m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",gray:"\x1B[90m",red:"\x1B[31m"},eW=4,xm=1});function k1(t){let e=(t.title?.length||0)+(t.subtitle?.length||0)+(t.narrative?.length||0)+JSON.stringify(t.facts||[]).length;return Math.ceil(e/eW)}function T1(t){let e=t.length,r=t.reduce((a,o)=>a+k1(o),0),n=t.reduce((a,o)=>a+(o.discovery_tokens||0),0),s=n-r,i=n>0?Math.round(s/n*100):0;return{totalObservations:e,totalReadTokens:r,totalDiscoveryTokens:n,savings:s,savingsPercent:i}}function OEe(t){return et.getInstance().getWorkEmoji(t)}function Tl(t,e){let r=k1(t),n=t.discovery_tokens||0,s=OEe(t.type),i=n>0?`${s} ${n.toLocaleString()}`:"-";return{readTokens:r,discoveryTokens:n,discoveryDisplay:i,workEmoji:s}}function tb(t){return t.showReadTokens||t.showWorkTokens||t.showSavingsAmount||t.showSavingsPercent}var vo=ye(()=>{"use strict";_m();Hn()});function R1(t,e,r){let n=Array.from(r.observationTypes),s=n.map(()=>"?").join(","),i=Array.from(r.observationConcepts),a=i.map(()=>"?").join(",");return t.db.prepare(` SELECT id, memory_session_id, type, title, subtitle, narrative, facts, concepts, files_read, files_modified, discovery_tokens, @@ -823,13 +823,13 @@ Do not output anything other than the summary content formatted in the XML struc ) ORDER BY created_at_epoch DESC LIMIT ? - `).all(e,...n,...i,r.totalObservationCount)}function O1(t,e,r){return t.db.prepare(` + `).all(e,...n,...i,r.totalObservationCount)}function P1(t,e,r){return t.db.prepare(` SELECT id, memory_session_id, request, investigated, learned, completed, next_steps, created_at, created_at_epoch FROM session_summaries WHERE project = ? ORDER BY created_at_epoch DESC LIMIT ? - `).all(e,r.sessionCount+_m)}function oW(t,e,r){let n=Array.from(r.observationTypes),s=n.map(()=>"?").join(","),i=Array.from(r.observationConcepts),a=i.map(()=>"?").join(","),o=e.map(()=>"?").join(",");return t.db.prepare(` + `).all(e,r.sessionCount+xm)}function nW(t,e,r){let n=Array.from(r.observationTypes),s=n.map(()=>"?").join(","),i=Array.from(r.observationConcepts),a=i.map(()=>"?").join(","),o=e.map(()=>"?").join(",");return t.db.prepare(` SELECT id, memory_session_id, type, title, subtitle, narrative, facts, concepts, files_read, files_modified, discovery_tokens, @@ -843,13 +843,13 @@ Do not output anything other than the summary content formatted in the XML struc ) ORDER BY created_at_epoch DESC LIMIT ? - `).all(...e,...n,...i,r.totalObservationCount)}function cW(t,e,r){let n=e.map(()=>"?").join(",");return t.db.prepare(` + `).all(...e,...n,...i,r.totalObservationCount)}function sW(t,e,r){let n=e.map(()=>"?").join(",");return t.db.prepare(` SELECT id, memory_session_id, request, investigated, learned, completed, next_steps, created_at, created_at_epoch, project FROM session_summaries WHERE project IN (${n}) ORDER BY created_at_epoch DESC LIMIT ? - `).all(...e,r.sessionCount+_m)}function lW(t,e,r,n){let s=Array.from(r.observationTypes),i=s.map(()=>"?").join(","),a=Array.from(r.observationConcepts),o=a.map(()=>"?").join(",");return t.db.prepare(` + `).all(...e,r.sessionCount+xm)}function iW(t,e,r,n){let s=Array.from(r.observationTypes),i=s.map(()=>"?").join(","),a=Array.from(r.observationConcepts),o=a.map(()=>"?").join(",");return t.db.prepare(` SELECT o.id, o.memory_session_id, o.type, o.title, o.subtitle, o.narrative, o.facts, o.concepts, o.files_read, o.files_modified, o.discovery_tokens, @@ -866,7 +866,7 @@ Do not output anything other than the summary content formatted in the XML struc AND (sp.plan_path IS NULL OR sp.plan_path = ?) ORDER BY o.created_at_epoch DESC LIMIT ? - `).all(e,...s,...a,n,r.totalObservationCount)}function uW(t,e,r,n){return t.db.prepare(` + `).all(e,...s,...a,n,r.totalObservationCount)}function aW(t,e,r,n){return t.db.prepare(` SELECT ss.id, ss.memory_session_id, ss.request, ss.investigated, ss.learned, ss.completed, ss.next_steps, ss.created_at, ss.created_at_epoch FROM session_summaries ss @@ -876,7 +876,7 @@ Do not output anything other than the summary content formatted in the XML struc AND (sp.plan_path IS NULL OR sp.plan_path = ?) ORDER BY ss.created_at_epoch DESC LIMIT ? - `).all(e,n,r.sessionCount+_m)}function pW(t,e,r,n){let s=Array.from(r.observationTypes),i=s.map(()=>"?").join(","),a=Array.from(r.observationConcepts),o=a.map(()=>"?").join(","),c=e.map(()=>"?").join(",");return t.db.prepare(` + `).all(e,n,r.sessionCount+xm)}function oW(t,e,r,n){let s=Array.from(r.observationTypes),i=s.map(()=>"?").join(","),a=Array.from(r.observationConcepts),o=a.map(()=>"?").join(","),c=e.map(()=>"?").join(",");return t.db.prepare(` SELECT o.id, o.memory_session_id, o.type, o.title, o.subtitle, o.narrative, o.facts, o.concepts, o.files_read, o.files_modified, o.discovery_tokens, @@ -893,7 +893,7 @@ Do not output anything other than the summary content formatted in the XML struc AND (sp.plan_path IS NULL OR sp.plan_path = ?) ORDER BY o.created_at_epoch DESC LIMIT ? - `).all(...e,...s,...a,n,r.totalObservationCount)}function dW(t,e,r,n){let s=e.map(()=>"?").join(",");return t.db.prepare(` + `).all(...e,...s,...a,n,r.totalObservationCount)}function cW(t,e,r,n){let s=e.map(()=>"?").join(",");return t.db.prepare(` SELECT ss.id, ss.memory_session_id, ss.request, ss.investigated, ss.learned, ss.completed, ss.next_steps, ss.created_at, ss.created_at_epoch, ss.project FROM session_summaries ss @@ -903,21 +903,21 @@ Do not output anything other than the summary content formatted in the XML struc AND (sp.plan_path IS NULL OR sp.plan_path = ?) ORDER BY ss.created_at_epoch DESC LIMIT ? - `).all(...e,n,r.sessionCount+_m)}function $ke(t){return t.replace(new RegExp("/","g"),"-")}function Lke(t){try{if(!(0,sb.existsSync)(t))return{userMessage:"",assistantMessage:""};let e=(0,sb.readFileSync)(t,"utf-8").trim();if(!e)return{userMessage:"",assistantMessage:""};let r=e.split(` -`).filter(s=>s.trim()),n="";for(let s=r.length-1;s>=0;s--)try{let i=r[s];if(!i.includes('"type":"assistant"'))continue;let a=JSON.parse(i);if(a.type==="assistant"&&a.message?.content&&Array.isArray(a.message.content)){let o="";for(let c of a.message.content)c.type==="text"&&(o+=c.text);if(o=o.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),o){n=o;break}}}catch(i){_.debug("PARSER","Skipping malformed transcript line",{lineIndex:s},i);continue}return{userMessage:"",assistantMessage:n}}catch(e){return _.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:t},e),{userMessage:"",assistantMessage:""}}}function A1(t,e,r,n){if(!e.showLastMessage||t.length===0)return{userMessage:"",assistantMessage:""};let s=t.find(c=>c.memory_session_id!==r);if(!s)return{userMessage:"",assistantMessage:""};let i=s.memory_session_id,a=$ke(n),o=iW.default.join((0,aW.homedir)(),".claude","projects",a,`${i}.jsonl`);return Lke(o)}function mW(t,e){let r=e[0]?.id;return t.map((n,s)=>{let i=s===0?null:e[s+1];return{...n,displayEpoch:i?i.created_at_epoch:n.created_at_epoch,displayTime:i?i.created_at:n.created_at,shouldShowLink:n.id!==r}})}function j1(t,e){let r=[...t.map(n=>({type:"observation",data:n})),...e.map(n=>({type:"summary",data:n}))];return r.sort((n,s)=>{let i=n.type==="observation"?n.data.created_at_epoch:n.data.displayEpoch,a=s.type==="observation"?s.data.created_at_epoch:s.data.displayEpoch;return i-a}),r}function fW(t,e){return new Set(t.slice(0,e).map(r=>r.id))}var iW,aW,sb,N1=ye(()=>{"use strict";iW=Q(require("path"),1),aW=require("os"),sb=require("fs");re();wm()});function hW(){let t=new Date,e=t.toLocaleDateString("en-CA"),r=t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase().replace(" ",""),n=t.toLocaleTimeString("en-US",{timeZoneName:"short"}).split(" ").pop();return`${e} ${r} ${n}`}function gW(t){return[`# [${t}] recent context, ${hW()}`,""]}function vW(){return[`**Legend:** session-request | ${et.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ")}`,""]}function yW(){return["**Column Key**:","- **Read**: Tokens to read this observation (cost to learn it now)","- **Work**: Tokens spent on work that produced this record ( research, building, deciding)",""]}function bW(){return["**Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.","","When you need implementation details, rationale, or debugging context:","- Use MCP tools (search, get_observations) to fetch full observations on-demand","- Critical types ( bugfix, decision) often need detailed fetching","- Trust this index over re-reading code for past decisions and learnings",""]}function xW(t,e){let r=[];if(r.push("**Context Economics**:"),r.push(`- Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)`),r.push(`- Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions`),t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let n="- Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?n+=`${t.savings.toLocaleString()} tokens (${t.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?n+=`${t.savings.toLocaleString()} tokens`:n+=`${t.savingsPercent}% reduction from reuse`,r.push(n)}return r.push(""),r}function _W(t){return[`### ${t}`,""]}function wW(t){return[`**${t}**`,"| ID | Time | T | Title | Read | Work |","|----|------|---|-------|------|------|"]}function SW(t,e,r){let n=t.title||"Untitled",s=et.getInstance().getTypeIcon(t.type),{readTokens:i,discoveryDisplay:a}=Rl(t,r),o=r.showReadTokens?`~${i}`:"",c=r.showWorkTokens?a:"";return`| #${t.id} | ${e||'"'} | ${s} | ${n} | ${o} | ${c} |`}function kW(t,e,r,n){let s=[],i=t.title||"Untitled",a=et.getInstance().getTypeIcon(t.type),{readTokens:o,discoveryDisplay:c}=Rl(t,n);s.push(`**#${t.id}** ${e||'"'} ${a} **${i}**`),r&&(s.push(""),s.push(r),s.push(""));let l=[];return n.showReadTokens&&l.push(`Read: ~${o}`),n.showWorkTokens&&l.push(`Work: ${c}`),l.length>0&&s.push(l.join(", ")),s.push(""),s}function EW(t,e){let r=`${t.request||"Session started"} (${e})`;return[`**#S${t.id}** ${r}`,""]}function Sm(t,e){return e?[`**${t}**: ${e}`,""]:[]}function TW(t){return t.assistantMessage?["","---","","**Previously**","",`A: ${t.assistantMessage}`,""]:[]}function RW(t,e){return["",`Access ${Math.round(t/1e3)}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use MCP search tools to access memories by ID.`]}function PW(t){return`# [${t}] recent context, ${hW()} + `).all(...e,n,r.sessionCount+xm)}function AEe(t){return t.replace(new RegExp("/","g"),"-")}function jEe(t){try{if(!(0,rb.existsSync)(t))return{userMessage:"",assistantMessage:""};let e=(0,rb.readFileSync)(t,"utf-8").trim();if(!e)return{userMessage:"",assistantMessage:""};let r=e.split(` +`).filter(s=>s.trim()),n="";for(let s=r.length-1;s>=0;s--)try{let i=r[s];if(!i.includes('"type":"assistant"'))continue;let a=JSON.parse(i);if(a.type==="assistant"&&a.message?.content&&Array.isArray(a.message.content)){let o="";for(let c of a.message.content)c.type==="text"&&(o+=c.text);if(o=o.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),o){n=o;break}}}catch(i){_.debug("PARSER","Skipping malformed transcript line",{lineIndex:s},i);continue}return{userMessage:"",assistantMessage:n}}catch(e){return _.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:t},e),{userMessage:"",assistantMessage:""}}}function I1(t,e,r,n){if(!e.showLastMessage||t.length===0)return{userMessage:"",assistantMessage:""};let s=t.find(c=>c.memory_session_id!==r);if(!s)return{userMessage:"",assistantMessage:""};let i=s.memory_session_id,a=AEe(n),o=tW.default.join((0,rW.homedir)(),".claude","projects",a,`${i}.jsonl`);return jEe(o)}function lW(t,e){let r=e[0]?.id;return t.map((n,s)=>{let i=s===0?null:e[s+1];return{...n,displayEpoch:i?i.created_at_epoch:n.created_at_epoch,displayTime:i?i.created_at:n.created_at,shouldShowLink:n.id!==r}})}function C1(t,e){let r=[...t.map(n=>({type:"observation",data:n})),...e.map(n=>({type:"summary",data:n}))];return r.sort((n,s)=>{let i=n.type==="observation"?n.data.created_at_epoch:n.data.displayEpoch,a=s.type==="observation"?s.data.created_at_epoch:s.data.displayEpoch;return i-a}),r}function uW(t,e){return new Set(t.slice(0,e).map(r=>r.id))}var tW,rW,rb,O1=ye(()=>{"use strict";tW=Q(require("path"),1),rW=require("os"),rb=require("fs");re();_m()});function pW(){let t=new Date,e=t.toLocaleDateString("en-CA"),r=t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase().replace(" ",""),n=t.toLocaleTimeString("en-US",{timeZoneName:"short"}).split(" ").pop();return`${e} ${r} ${n}`}function dW(t){return[`# [${t}] recent context, ${pW()}`,""]}function mW(){return[`**Legend:** session-request | ${et.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ")}`,""]}function fW(){return["**Column Key**:","- **Read**: Tokens to read this observation (cost to learn it now)","- **Work**: Tokens spent on work that produced this record ( research, building, deciding)",""]}function hW(){return["**Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.","","When you need implementation details, rationale, or debugging context:","- Use MCP tools (search, get_observations) to fetch full observations on-demand","- Critical types ( bugfix, decision) often need detailed fetching","- Trust this index over re-reading code for past decisions and learnings",""]}function gW(t,e){let r=[];if(r.push("**Context Economics**:"),r.push(`- Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)`),r.push(`- Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions`),t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let n="- Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?n+=`${t.savings.toLocaleString()} tokens (${t.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?n+=`${t.savings.toLocaleString()} tokens`:n+=`${t.savingsPercent}% reduction from reuse`,r.push(n)}return r.push(""),r}function vW(t){return[`### ${t}`,""]}function yW(t){return[`**${t}**`,"| ID | Time | T | Title | Read | Work |","|----|------|---|-------|------|------|"]}function bW(t,e,r){let n=t.title||"Untitled",s=et.getInstance().getTypeIcon(t.type),{readTokens:i,discoveryDisplay:a}=Tl(t,r),o=r.showReadTokens?`~${i}`:"",c=r.showWorkTokens?a:"";return`| #${t.id} | ${e||'"'} | ${s} | ${n} | ${o} | ${c} |`}function xW(t,e,r,n){let s=[],i=t.title||"Untitled",a=et.getInstance().getTypeIcon(t.type),{readTokens:o,discoveryDisplay:c}=Tl(t,n);s.push(`**#${t.id}** ${e||'"'} ${a} **${i}**`),r&&(s.push(""),s.push(r),s.push(""));let l=[];return n.showReadTokens&&l.push(`Read: ~${o}`),n.showWorkTokens&&l.push(`Work: ${c}`),l.length>0&&s.push(l.join(", ")),s.push(""),s}function _W(t,e){let r=`${t.request||"Session started"} (${e})`;return[`**#S${t.id}** ${r}`,""]}function wm(t,e){return e?[`**${t}**: ${e}`,""]:[]}function wW(t){return t.assistantMessage?["","---","","**Previously**","",`A: ${t.assistantMessage}`,""]:[]}function SW(t,e){return["",`Access ${Math.round(t/1e3)}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use MCP search tools to access memories by ID.`]}function EW(t){return`# [${t}] recent context, ${pW()} -No previous sessions found for this project yet.`}var Pl=ye(()=>{"use strict";Hn();yo()});function IW(){let t=new Date,e=t.toLocaleDateString("en-CA"),r=t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase().replace(" ",""),n=t.toLocaleTimeString("en-US",{timeZoneName:"short"}).split(" ").pop();return`${e} ${r} ${n}`}function CW(t){return["",`${X.bright}${X.cyan}[${t}] recent context, ${IW()}${X.reset}`,`${X.gray}${"\u2500".repeat(60)}${X.reset}`,""]}function OW(){let e=et.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ");return[`${X.dim}Legend: session-request | ${e}${X.reset}`,""]}function AW(){return[`${X.bright}Column Key${X.reset}`,`${X.dim} Read: Tokens to read this observation (cost to learn it now)${X.reset}`,`${X.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${X.reset}`,""]}function jW(){return[`${X.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${X.reset}`,"",`${X.dim}When you need implementation details, rationale, or debugging context:${X.reset}`,`${X.dim} - Use MCP tools (search, get_observations) to fetch full observations on-demand${X.reset}`,`${X.dim} - Critical types ( bugfix, decision) often need detailed fetching${X.reset}`,`${X.dim} - Trust this index over re-reading code for past decisions and learnings${X.reset}`,""]}function NW(t,e){let r=[];if(r.push(`${X.bright}${X.cyan}Context Economics${X.reset}`),r.push(`${X.dim} Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)${X.reset}`),r.push(`${X.dim} Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${X.reset}`),t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let n=" Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?n+=`${t.savings.toLocaleString()} tokens (${t.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?n+=`${t.savings.toLocaleString()} tokens`:n+=`${t.savingsPercent}% reduction from reuse`,r.push(`${X.green}${n}${X.reset}`)}return r.push(""),r}function DW(t){return[`${X.bright}${X.cyan}${t}${X.reset}`,""]}function MW(t){return[`${X.dim}${t}${X.reset}`]}function zW(t,e,r,n){let s=t.title||"Untitled",i=et.getInstance().getTypeIcon(t.type),{readTokens:a,discoveryTokens:o,workEmoji:c}=Rl(t,n),l=r?`${X.dim}${e}${X.reset}`:" ".repeat(e.length),u=n.showReadTokens&&a>0?`${X.dim}(~${a}t)${X.reset}`:"",p=n.showWorkTokens&&o>0?`${X.dim}(${c} ${o.toLocaleString()}t)${X.reset}`:"";return` ${X.dim}#${t.id}${X.reset} ${l} ${i} ${s} ${u} ${p}`}function $W(t,e,r,n,s){let i=[],a=t.title||"Untitled",o=et.getInstance().getTypeIcon(t.type),{readTokens:c,discoveryTokens:l,workEmoji:u}=Rl(t,s),p=r?`${X.dim}${e}${X.reset}`:" ".repeat(e.length),d=s.showReadTokens&&c>0?`${X.dim}(~${c}t)${X.reset}`:"",m=s.showWorkTokens&&l>0?`${X.dim}(${u} ${l.toLocaleString()}t)${X.reset}`:"";return i.push(` ${X.dim}#${t.id}${X.reset} ${p} ${o} ${X.bright}${a}${X.reset}`),n&&i.push(` ${X.dim}${n}${X.reset}`),(d||m)&&i.push(` ${d} ${m}`),i.push(""),i}function LW(t,e){let r=`${t.request||"Session started"} (${e})`;return[`${X.yellow}#S${t.id}${X.reset} ${r}`,""]}function km(t,e,r){return e?[`${r}${t}:${X.reset} ${e}`,""]:[]}function UW(t){return t.assistantMessage?["","---","",`${X.bright}${X.magenta}Previously${X.reset}`,"",`${X.dim}A: ${t.assistantMessage}${X.reset}`,""]:[]}function qW(t,e){let r=Math.round(t/1e3);return["",`${X.dim}Access ${r}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use MCP search tools to access memories by ID.${X.reset}`]}function FW(t){return` -${X.bright}${X.cyan}[${t}] recent context, ${IW()}${X.reset} +No previous sessions found for this project yet.`}var Rl=ye(()=>{"use strict";Hn();vo()});function kW(){let t=new Date,e=t.toLocaleDateString("en-CA"),r=t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase().replace(" ",""),n=t.toLocaleTimeString("en-US",{timeZoneName:"short"}).split(" ").pop();return`${e} ${r} ${n}`}function TW(t){return["",`${X.bright}${X.cyan}[${t}] recent context, ${kW()}${X.reset}`,`${X.gray}${"\u2500".repeat(60)}${X.reset}`,""]}function RW(){let e=et.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ");return[`${X.dim}Legend: session-request | ${e}${X.reset}`,""]}function PW(){return[`${X.bright}Column Key${X.reset}`,`${X.dim} Read: Tokens to read this observation (cost to learn it now)${X.reset}`,`${X.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${X.reset}`,""]}function IW(){return[`${X.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${X.reset}`,"",`${X.dim}When you need implementation details, rationale, or debugging context:${X.reset}`,`${X.dim} - Use MCP tools (search, get_observations) to fetch full observations on-demand${X.reset}`,`${X.dim} - Critical types ( bugfix, decision) often need detailed fetching${X.reset}`,`${X.dim} - Trust this index over re-reading code for past decisions and learnings${X.reset}`,""]}function CW(t,e){let r=[];if(r.push(`${X.bright}${X.cyan}Context Economics${X.reset}`),r.push(`${X.dim} Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)${X.reset}`),r.push(`${X.dim} Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${X.reset}`),t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let n=" Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?n+=`${t.savings.toLocaleString()} tokens (${t.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?n+=`${t.savings.toLocaleString()} tokens`:n+=`${t.savingsPercent}% reduction from reuse`,r.push(`${X.green}${n}${X.reset}`)}return r.push(""),r}function OW(t){return[`${X.bright}${X.cyan}${t}${X.reset}`,""]}function AW(t){return[`${X.dim}${t}${X.reset}`]}function jW(t,e,r,n){let s=t.title||"Untitled",i=et.getInstance().getTypeIcon(t.type),{readTokens:a,discoveryTokens:o,workEmoji:c}=Tl(t,n),l=r?`${X.dim}${e}${X.reset}`:" ".repeat(e.length),u=n.showReadTokens&&a>0?`${X.dim}(~${a}t)${X.reset}`:"",p=n.showWorkTokens&&o>0?`${X.dim}(${c} ${o.toLocaleString()}t)${X.reset}`:"";return` ${X.dim}#${t.id}${X.reset} ${l} ${i} ${s} ${u} ${p}`}function NW(t,e,r,n,s){let i=[],a=t.title||"Untitled",o=et.getInstance().getTypeIcon(t.type),{readTokens:c,discoveryTokens:l,workEmoji:u}=Tl(t,s),p=r?`${X.dim}${e}${X.reset}`:" ".repeat(e.length),d=s.showReadTokens&&c>0?`${X.dim}(~${c}t)${X.reset}`:"",m=s.showWorkTokens&&l>0?`${X.dim}(${u} ${l.toLocaleString()}t)${X.reset}`:"";return i.push(` ${X.dim}#${t.id}${X.reset} ${p} ${o} ${X.bright}${a}${X.reset}`),n&&i.push(` ${X.dim}${n}${X.reset}`),(d||m)&&i.push(` ${d} ${m}`),i.push(""),i}function DW(t,e){let r=`${t.request||"Session started"} (${e})`;return[`${X.yellow}#S${t.id}${X.reset} ${r}`,""]}function Sm(t,e,r){return e?[`${r}${t}:${X.reset} ${e}`,""]:[]}function MW(t){return t.assistantMessage?["","---","",`${X.bright}${X.magenta}Previously${X.reset}`,"",`${X.dim}A: ${t.assistantMessage}${X.reset}`,""]:[]}function zW(t,e){let r=Math.round(t/1e3);return["",`${X.dim}Access ${r}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use MCP search tools to access memories by ID.${X.reset}`]}function $W(t){return` +${X.bright}${X.cyan}[${t}] recent context, ${kW()}${X.reset} ${X.gray}${"\u2500".repeat(60)}${X.reset} ${X.dim}No previous sessions found for this project yet.${X.reset} -`}var Il=ye(()=>{"use strict";wm();Hn();yo()});function HW(t,e,r,n){let s=[];return n?s.push(...CW(t)):s.push(...gW(t)),n?s.push(...OW()):s.push(...vW()),n?s.push(...AW()):s.push(...yW()),n?s.push(...jW()):s.push(...bW()),nb(r)&&(n?s.push(...NW(e,r)):s.push(...xW(e,r))),s}var BW=ye(()=>{"use strict";yo();Pl();Il()});function Uke(t){let e=new Map;for(let n of t){let s=n.type==="observation"?n.data.created_at:n.data.displayTime,i=ii(s);e.has(i)||e.set(i,[]),e.get(i).push(n)}let r=Array.from(e.entries()).sort((n,s)=>{let i=new Date(n[0]).getTime(),a=new Date(s[0]).getTime();return i-a});return new Map(r)}function qke(t,e){return e.fullObservationField==="narrative"?t.narrative:t.facts?Qg(t.facts).join(` -`):null}function Fke(t,e,r,n,s,i){let a=[];i?a.push(...DW(t)):a.push(..._W(t));let o=null,c="",l=!1;for(let u of e)if(u.type==="summary"){l&&(a.push(""),l=!1,o=null,c="");let p=u.data,d=Bn(p.displayTime);i?a.push(...LW(p,d)):a.push(...EW(p,d))}else{let p=u.data,d=gs(p.files_modified,s,p.files_read),m=Zr(p.created_at),f=m!==c,g=f?m:"";c=m;let v=r.has(p.id);if(d!==o&&(l&&a.push(""),i?a.push(...MW(d)):a.push(...wW(d)),o=d,l=!0),v){let h=qke(p,n);i?a.push(...$W(p,m,f,h,n)):(l&&!i&&(a.push(""),l=!1),a.push(...kW(p,g,h,n)),o=null)}else i?a.push(zW(p,m,f,n)):a.push(SW(p,g,n))}return l&&a.push(""),a}function WW(t,e,r,n,s){let i=[],a=Uke(t);for(let[o,c]of a)i.push(...Fke(o,c,e,r,n,s));return i}var ZW=ye(()=>{"use strict";Lc();Pl();Il()});function GW(t,e,r){return!(!t.showLastSummary||!e||!!!(e.investigated||e.learned||e.completed||e.next_steps)||r&&e.created_at_epoch<=r.created_at_epoch)}function VW(t,e){let r=[];return e?(r.push(...km("Investigated",t.investigated,X.blue)),r.push(...km("Learned",t.learned,X.yellow)),r.push(...km("Completed",t.completed,X.green)),r.push(...km("Next Steps",t.next_steps,X.magenta))):(r.push(...Sm("Investigated",t.investigated)),r.push(...Sm("Learned",t.learned)),r.push(...Sm("Completed",t.completed)),r.push(...Sm("Next Steps",t.next_steps))),r}var KW=ye(()=>{"use strict";wm();Pl();Il()});function JW(t,e){return e?UW(t):TW(t)}function QW(t,e,r){return!nb(e)||t.totalDiscoveryTokens<=0||t.savings<=0?[]:r?qW(t.totalDiscoveryTokens,t.totalReadTokens):RW(t.totalDiscoveryTokens,t.totalReadTokens)}var YW=ye(()=>{"use strict";yo();Pl();Il()});function Bke(){try{return new Ui}catch(t){if(t.code==="ERR_DLOPEN_FAILED"){try{(0,tZ.unlinkSync)(Hke)}catch(e){_.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},e)}return _.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),null}throw t}}function Wke(t,e){return e?FW(t):PW(t)}function Zke(t,e,r,n,s,i,a){let o=[],c=I1(e);o.push(...HW(t,c,n,a));let l=r.slice(0,n.sessionCount),u=mW(l,r),p=j1(e,u),d=fW(e,n.fullObservationCount);o.push(...WW(p,d,n,s,a));let m=r[0],f=e[0];GW(n,m,f)&&o.push(...VW(m,a));let g=A1(e,n,i,s);return o.push(...JW(g,a)),o.push(...QW(c,n,a)),o.join(` -`).trimEnd()}async function D1(t,e=!1){let r=T1(),n=t?.cwd??process.cwd(),s=ai(n),i=t?.projects||[s],a=Bke();if(!a)return"";try{let o=t?.planPath,c,l;return o?(c=i.length>1?pW(a,i,r,o):lW(a,s,r,o),l=i.length>1?dW(a,i,r,o):uW(a,s,r,o)):(c=i.length>1?oW(a,i,r):C1(a,s,r),l=i.length>1?cW(a,i,r):O1(a,s,r)),c.length===0&&l.length===0?Wke(s,e):Zke(s,c,l,r,n,t?.session_id,e)}finally{a.close()}}var XW,eZ,tZ,Hke,rZ=ye(()=>{"use strict";XW=Q(require("path"),1),eZ=require("os"),tZ=require("fs");Lg();re();Ja();R1();yo();N1();BW();ZW();KW();YW();Pl();Il();Hke=XW.default.join((0,eZ.homedir)(),".claude","plugins","marketplaces","pilot","plugin",".install-version")});var nZ=ye(()=>{"use strict";rZ();R1();yo();N1()});var M1={};es(M1,{generateContext:()=>D1});var z1=ye(()=>{"use strict";nZ()});var mP={};es(mP,{backupCommand:()=>bG,backupsListCommand:()=>xG,cleanCommand:()=>kG,cleanupCommand:()=>yG,doctorCommand:()=>_G,exportCommand:()=>gG,generateCommand:()=>SG,importCommand:()=>vG,retentionCommand:()=>wG,runCLI:()=>qTe,searchCommand:()=>hG,statusCommand:()=>fG,vacuumCommand:()=>EG});async function Xt(t,e={}){let r=un(),s=`http://${us()}:${r}${t}`,i=await fetch(s,{method:e.method||"GET",headers:e.body?{"Content-Type":"application/json"}:void 0,body:e.body?JSON.stringify(e.body):void 0});if(!i.ok){let a=await i.text();throw new Error(`API error (${i.status}): ${a}`)}return i.json()}async function Gs(){try{return await Xt("/api/health"),!0}catch{return!1}}function $l(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:t<1024*1024*1024?`${(t/(1024*1024)).toFixed(1)} MB`:`${(t/(1024*1024*1024)).toFixed(2)} GB`}function UTe(t){return new Date(t).toLocaleString()}async function fG(t){if(!await Gs()){t.json?console.log(JSON.stringify({running:!1})):console.log("Worker is not running");return}let[r,n,s]=await Promise.all([Xt("/api/health"),Xt("/api/stats"),Xt("/api/processing-status")]);t.json?console.log(JSON.stringify({running:!0,health:r,stats:n,processing:s},null,2)):(console.log("Worker Status"),console.log("\u2500".repeat(40)),console.log(` Status: ${r.status}`),console.log(` Version: ${n.worker.version}`),console.log(` PID: ${r.pid}`),console.log(` Uptime: ${Math.floor(n.worker.uptime/60)}m ${n.worker.uptime%60}s`),console.log(` Initialized: ${r.initialized?"yes":"no"}`),console.log(` Core Ready: ${r.coreReady?"yes":"no"}`),console.log(` MCP Ready: ${r.mcpReady?"yes":"no"}`),console.log(""),console.log("Database Stats"),console.log("\u2500".repeat(40)),console.log(` Path: ${n.database.path}`),console.log(` Size: ${$l(n.database.size)}`),console.log(` Observations: ${n.database.observations.toLocaleString()}`),console.log(` Sessions: ${n.database.sessions.toLocaleString()}`),console.log(` Summaries: ${n.database.summaries.toLocaleString()}`),console.log(""),console.log("Processing"),console.log("\u2500".repeat(40)),console.log(` Active: ${s.isProcessing?"yes":"no"}`),console.log(` Queue Depth: ${s.queueDepth}`),console.log(` Sessions: ${n.worker.activeSessions}`))}async function hG(t,e){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let r=new URLSearchParams({query:t});e.project&&r.set("project",e.project),e.limit&&r.set("limit",e.limit.toString()),e.type&&r.set("type",e.type);let n=e.type==="session"?"/api/search/sessions":"/api/search/observations",s=await Xt(`${n}?${r}`);if(e.json)console.log(JSON.stringify(s,null,2));else{let i=s.content.find(a=>a.type==="text")?.text;console.log(i||"No results found")}}async function gG(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=new URLSearchParams;t.project&&e.set("project",t.project),t.limit&&e.set("limit",t.limit.toString());let r=await Xt(`/api/export?${e}`);console.log(JSON.stringify(r,null,2))}async function vG(t,e){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let r;if(t&&t!=="-")r=await(await import("fs/promises")).readFile(t,"utf-8");else{let i=[];for await(let a of process.stdin)i.push(a);r=Buffer.concat(i).toString("utf-8")}let n=JSON.parse(r),s=await Xt("/api/import",{method:"POST",body:n});e.json?console.log(JSON.stringify(s)):console.log(`Imported ${s.imported} records`)}async function yG(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/pending-queue/failed",{method:"DELETE"});t.json?console.log(JSON.stringify({failedQueueCleared:e.deleted})):(console.log("Cleanup completed:"),console.log(` Failed queue entries cleared: ${e.deleted}`))}async function bG(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/backups/create",{method:"POST"});t.json?console.log(JSON.stringify(e)):(console.log("Backup created:"),console.log(` File: ${e.filename}`),console.log(` Size: ${$l(e.sizeBytes)}`),console.log(` Path: ${e.path}`))}async function xG(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/backups");if(t.json)console.log(JSON.stringify(e,null,2));else{if(e.backups.length===0){console.log("No backups found");return}console.log("Backups:"),console.log("\u2500".repeat(60));for(let r of e.backups)console.log(` ${r.filename}`),console.log(` Size: ${$l(r.sizeBytes)} | Created: ${UTe(r.createdAt)}`)}}async function _G(t){let e=[],r=await Gs();if(e.push({name:"Worker Status",status:r?"ok":"error",message:r?"Worker is running":"Worker is not running"}),r){try{let n=await Xt("/api/health");e.push({name:"Health Check",status:n.status==="ok"?"ok":"warning",message:`Status: ${n.status}`}),e.push({name:"Core Services",status:n.coreReady?"ok":"warning",message:n.coreReady?"Database and search ready":"Core services not ready"}),e.push({name:"MCP Server",status:n.mcpReady?"ok":"warning",message:n.mcpReady?"MCP server connected":"MCP server not connected"})}catch(n){e.push({name:"Health Check",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/stats");e.push({name:"Database",status:"ok",message:`${n.database.observations} observations, ${n.database.sessions} sessions (${$l(n.database.size)})`})}catch(n){e.push({name:"Database",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/pending-queue"),s=n.queue.messages.filter(o=>o.status==="pending").length,i=n.queue.messages.filter(o=>o.status==="failed").length,a=i>0?"warning":"ok";e.push({name:"Queue Status",status:a,message:`Pending: ${s}, Failed: ${i}`})}catch(n){e.push({name:"Queue Status",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/backups"),s=n.backups.some(i=>{let a=new Date(i.createdAt),o=Date.now()-1440*60*1e3;return a.getTime()>o});e.push({name:"Backups",status:s?"ok":"warning",message:s?`${n.backups.length} backups (recent backup exists)`:`${n.backups.length} backups (no recent backup)`})}catch{e.push({name:"Backups",status:"warning",message:"Could not check backups"})}try{let n=await Xt("/api/vector-db/health");n.available?n.healthy?e.push({name:"Vector Database",status:"ok",message:`${$l(n.directorySize)}, ${n.embeddingCount} embeddings`}):e.push({name:"Vector Database",status:"warning",message:`${$l(n.directorySize)} (${Math.round(n.bloatRatio)}x expected size) \u2014 Run: pilot-memory vacuum`}):e.push({name:"Vector Database",status:"warning",message:"unavailable (Chroma not connected)"})}catch{e.push({name:"Vector Database",status:"warning",message:"unavailable (Chroma not connected)"})}}if(t.json)console.log(JSON.stringify({checks:e},null,2));else{console.log("Pilot Memory Doctor"),console.log("\u2500".repeat(50));let n=c=>c==="ok"?"\u2713":c==="warning"?"!":"\u2717",s=c=>c==="ok"?"\x1B[32m":c==="warning"?"\x1B[33m":"\x1B[31m",i="\x1B[0m";for(let c of e)console.log(` ${s(c.status)}${n(c.status)}${i} ${c.name}: ${c.message}`);let a=e.some(c=>c.status==="error"),o=e.some(c=>c.status==="warning");console.log(""),console.log(a?"\x1B[31mSome checks failed. See above for details.\x1B[0m":o?"\x1B[33mSome warnings detected. See above for details.\x1B[0m":"\x1B[32mAll checks passed!\x1B[0m")}}async function wG(t,e){switch(await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1)),t){case"preview":{let r=await Xt("/api/retention/preview");if(e.json)console.log(JSON.stringify(r,null,2));else{let{preview:n,policy:s}=r;console.log("Retention Preview"),console.log("\u2500".repeat(50)),console.log(`Total observations: ${n.totalObservations.toLocaleString()}`),console.log(`Would delete by age: ${n.toDelete.byAge.toLocaleString()}`),console.log(`Would delete by count: ${n.toDelete.byCount.toLocaleString()}`),console.log(`Total to delete: ${n.toDelete.total.toLocaleString()}`),console.log(`Excluded (protected): ${n.excluded.toLocaleString()}`),console.log(""),console.log("Policy:"),console.log(` Enabled: ${s.enabled?"yes":"no"}`),console.log(` Max age: ${s.maxAgeDays} days`),console.log(` Max count: ${s.maxCount} per project`),console.log(` Exclude: ${s.excludeTypes.join(", ")||"none"}`),console.log(` Soft delete: ${s.softDelete?"yes (archive)":"no (permanent)"}`),n.affectedProjects.length>0&&(console.log(""),console.log(`Affected projects: ${n.affectedProjects.slice(0,5).join(", ")}${n.affectedProjects.length>5?"...":""}`))}break}case"run":{let r=await Xt("/api/retention/run",{method:"POST",body:{}});if(e.json)console.log(JSON.stringify(r,null,2));else if(r.success)console.log("\x1B[32mRetention cleanup completed\x1B[0m"),console.log(` Deleted: ${r.result.deleted}`),console.log(` Archived: ${r.result.archived}`),console.log(` Duration: ${r.result.duration}ms`);else{console.log("\x1B[31mRetention cleanup failed\x1B[0m");for(let n of r.result.errors)console.log(` Error: ${n}`)}break}case"archive":{let r=await Xt("/api/retention/archive/list");if(e.json)console.log(JSON.stringify(r,null,2));else if(console.log(`Archived Observations (${r.count} of ${r.total})`),console.log("\u2500".repeat(60)),r.observations.length===0)console.log("No archived observations");else for(let n of r.observations){let s=new Date(n.deleted_at_epoch).toLocaleString();console.log(` #${n.id} ${n.title||"(untitled)"}`),console.log(` Type: ${n.type} | Project: ${n.project}`),console.log(` Deleted: ${s} | Reason: ${n.deletion_reason||"unknown"}`)}break}case"restore":{let r=await Xt("/api/retention/restore",{method:"POST",body:{}});if(e.json)console.log(JSON.stringify(r,null,2));else if(r.success)console.log(`\x1B[32mRestored ${r.restored} observations from archive\x1B[0m`);else{console.log("\x1B[31mRestore failed\x1B[0m");for(let n of r.errors)console.log(` Error: ${n}`)}break}default:{let r=await Xt("/api/retention/policy");if(e.json)console.log(JSON.stringify(r,null,2));else{let{policy:n}=r;console.log("Retention Policy"),console.log("\u2500".repeat(40)),console.log(` Enabled: ${n.enabled?"\x1B[32myes\x1B[0m":"\x1B[33mno\x1B[0m"}`),console.log(` Max age: ${n.maxAgeDays>0?`${n.maxAgeDays} days`:"disabled"}`),console.log(` Max count: ${n.maxCount>0?`${n.maxCount} per project`:"unlimited"}`),console.log(` Exclude: ${n.excludeTypes.join(", ")||"none"}`),console.log(` Soft delete: ${n.softDelete?"yes (archive)":"no (permanent)"}`),console.log(""),console.log("Commands:"),console.log(" retention preview Preview what would be deleted"),console.log(" retention run Run cleanup"),console.log(" retention archive Show archived observations"),console.log(" retention restore Restore all from archive")}break}}}async function SG(t){let{spawn:e}=await import("child_process"),r=await import("path"),{fileURLToPath:n}=await import("url"),s=r.dirname(n(TG.url)),i=r.resolve(s,"../../scripts/regenerate-claude-md.ts"),a=[];return t.dryRun&&a.push("--dry-run"),t.json&&console.log(JSON.stringify({action:"generate",dryRun:t.dryRun??!1})),new Promise((o,c)=>{let l=e("bun",[i,...a],{stdio:"inherit",cwd:process.cwd()});l.on("close",u=>{u===0?o():c(new Error(`Generate script exited with code ${u}`))}),l.on("error",u=>{c(u)})})}async function kG(t){let{spawn:e}=await import("child_process"),r=await import("path"),{fileURLToPath:n}=await import("url"),s=r.dirname(n(TG.url)),i=r.resolve(s,"../../scripts/regenerate-claude-md.ts"),a=["--clean"];return t.dryRun&&a.push("--dry-run"),t.json&&console.log(JSON.stringify({action:"clean",dryRun:t.dryRun??!1})),new Promise((o,c)=>{let l=e("bun",[i,...a],{stdio:"inherit",cwd:process.cwd()});l.on("close",u=>{u===0?o():c(new Error(`Clean script exited with code ${u}`))}),l.on("error",u=>{c(u)})})}async function EG(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1)),t.json||console.log("Vacuuming vector database \u2014 this will rebuild the HNSW index...");let e=await Xt("/api/retention/vacuum",{method:"POST"});t.json?console.log(JSON.stringify(e,null,2)):e.success?(console.log("\x1B[32mVacuum complete\x1B[0m"),console.log(` Reindexed: ${e.reindexedDocuments} documents`)):(console.log("\x1B[33mVacuum incomplete \u2014 run again to complete backfill\x1B[0m"),e.error&&console.log(` Error: ${e.error}`))}async function qTe(t){let e=t[0],r=t.slice(1),n={},s=[];for(let i=0;i [--project ] [--limit ] [--json]"),process.exit(1)),await hG(s.join(" "),n);break;case"export":await gG(n);break;case"import":await vG(s[0],n);break;case"cleanup":await yG(n);break;case"backup":s[0]==="list"?await xG(n):await bG(n);break;case"doctor":await _G(n);break;case"retention":await wG(s[0],n);break;case"vacuum":await EG(n);break;case"generate":await SG(n);break;case"clean":await kG(n);break;default:console.log(`Unknown command: ${e}`),console.log(""),console.log("Available commands:"),console.log(" status Show worker and queue status"),console.log(" search Search memories"),console.log(" export Export memories as JSON"),console.log(" import [file] Import memories from file or stdin"),console.log(" cleanup Run cleanup tasks"),console.log(" backup Create a backup"),console.log(" backup list List existing backups"),console.log(" doctor Diagnose issues"),console.log(" retention Show retention policy"),console.log(" retention preview Preview cleanup"),console.log(" retention run Run cleanup"),console.log(" retention archive Show archived observations"),console.log(" vacuum Rebuild vector database HNSW index"),console.log(" generate Generate CLAUDE.md files for project folders"),console.log(" clean Remove auto-generated CLAUDE.md content"),console.log(""),console.log("Options:"),console.log(" --json, -j Output as JSON"),console.log(" --project, -p Filter by project"),console.log(" --limit, -l Limit results"),console.log(" --dry-run, -n Preview changes without writing"),process.exit(1)}}catch(i){n.json?console.log(JSON.stringify({error:i instanceof Error?i.message:"Unknown error"})):console.error(`Error: ${i instanceof Error?i.message:"Unknown error"}`),process.exit(1)}}var TG,fP=ye(()=>{"use strict";Ln();TG={}});function FTe(){try{return(0,RG.statSync)("/dev/stdin")!==null}catch{try{return process.stdin.readable||process.stdin.isTTY===!0}catch{return!1}}}async function PG(){if(FTe())return new Promise((t,e)=>{let r="",n=setTimeout(()=>{t(void 0)},100),s;process.stdin.on("data",i=>{clearTimeout(n),s&&clearTimeout(s),r+=i,s=setTimeout(()=>{try{t(r.trim()?JSON.parse(r):void 0)}catch(a){e(new Error(`Failed to parse hook input: ${a}`))}},3e3)}),process.stdin.on("end",()=>{clearTimeout(n),s&&clearTimeout(s);try{t(r.trim()?JSON.parse(r):void 0)}catch(i){e(new Error(`Failed to parse hook input: ${i}`))}}),process.stdin.on("error",()=>{clearTimeout(n),s&&clearTimeout(s),t(void 0)})})}var RG,IG=ye(()=>{"use strict";RG=require("fs")});var CG,OG=ye(()=>{"use strict";CG={normalizeInput(t){let e=t??{};return{sessionId:e.session_id,cwd:e.cwd??process.cwd(),prompt:e.prompt,toolName:e.tool_name,toolInput:e.tool_input,toolResponse:e.tool_response,transcriptPath:e.transcript_path}},formatOutput(t){return t.hookSpecificOutput?{hookSpecificOutput:t.hookSpecificOutput}:{continue:t.continue??!0,suppressOutput:t.suppressOutput??!0}}}});var AG,jG=ye(()=>{"use strict";AG={normalizeInput(t){let e=t;return{sessionId:e.sessionId??e.session_id??"unknown",cwd:e.cwd??process.cwd(),prompt:e.prompt,toolName:e.toolName??e.tool_name,toolInput:e.toolInput??e.tool_input,toolResponse:e.toolResponse??e.tool_response,transcriptPath:e.transcriptPath??e.transcript_path,filePath:e.filePath??e.file_path,edits:e.edits}},formatOutput(t){return t}}});function NG(t){switch(t){case"claude-code":return CG;case"raw":return AG;default:throw new Error(`Unknown platform: ${t}`)}}var DG=ye(()=>{"use strict";OG();jG()});function HTe(t){return t.includes(":")&&!t.startsWith("[")?`[${t}]`:t}function ca(){if(Qb!==null)return Qb;let t=us(),e=un();return Qb={mode:"local",baseUrl:`http://${HTe(t)}:${e}`,authHeaders:{},timeoutMs:nM(qt.DEFAULT),verifySsl:!0},Qb}var Qb,zm=ye(()=>{"use strict";Ln();As();Qb=null});function BTe(t){if(t instanceof Error){let e=t.code;if(e&&MG.includes(e))return!0;let r=t.message||"";return MG.some(n=>r.includes(n))}return!1}function WTe(t,e=100,r=1e3){let n=e*Math.pow(2,t),s=Math.min(n,r),i=s*.25*(Math.random()*2-1);return Math.round(s+i)}function ZTe(t){return new Promise(e=>setTimeout(e,t))}async function Yb(t,e,r={}){let{maxRetries:n=3,baseDelayMs:s=100,maxDelayMs:i=1e3}=r,a;for(let o=0;o<=n;o++)try{return await fetch(t,e)}catch(c){if(a=c,!BTe(c)||o>=n)throw c;let l=WTe(o,s,i);await ZTe(l)}throw a??new Error("fetchWithRetry failed")}var MG,hP=ye(()=>{"use strict";MG=["ECONNRESET","ECONNREFUSED","ETIMEDOUT","ENOTFOUND","EAI_AGAIN","UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT"]});async function bi(t,e,r={}){let{endpointConfig:n,...s}=r,i=new Headers(e?.headers);if(n?.authHeaders)for(let[a,o]of Object.entries(n.authHeaders))i.set(a,o);return e?.body&&!i.has("Content-Type")&&i.set("Content-Type","application/json"),Yb(t,{...e,headers:i},s)}var $m=ye(()=>{"use strict";hP()});var Xb,zG,$G,gP,vP=ye(()=>{"use strict";Xb=require("fs"),zG=Q(require("path"),1),$G=require("os");zm();$m();Ja();re();gP={async execute(t){if(process.env.CLAUDE_PILOT_NO_CONTEXT==="1"||process.env.CLAUDE_PILOT_NO_CONTEXT==="true")return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""}};let e=ca(),r=t.cwd??process.cwd(),s=eF(r).allProjects.join(","),i=`${e.baseUrl}/api/context/inject?projects=${encodeURIComponent(s)}`,a=process.env.PILOT_SESSION_ID;if(a){let u=zG.default.join((0,$G.homedir)(),".pilot","sessions",a,"active_plan.json");try{if((0,Xb.existsSync)(u)){let p=JSON.parse((0,Xb.readFileSync)(u,"utf-8"));p.plan_path&&(i+=`&planPath=${encodeURIComponent(p.plan_path)}`)}}catch(p){_.debug("HOOK","Failed to read active plan file",{planFilePath:u},p)}}let o=await bi(i,void 0,{endpointConfig:e});if(!o.ok)throw new Error(`Context generation failed: ${o.status}`);return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:(await o.text()).trim()}}}}});function GTe(t){let e=(0,LG.join)(t,".pilot/memory.json");if(!(0,ex.existsSync)(e))return null;try{let r=(0,ex.readFileSync)(e,"utf-8");return JSON.parse(r)}catch{return null}}function Ll(t){let e=GTe(t);return e?e.enabled===!1:!1}function VTe(t){let e=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${e}$`,"i")}function KTe(t,e){for(let r of e)if(VTe(r).test(t))return!0;return!1}function Ul(t){if(!t)return!1;let e=Ae.loadFromFile(Ht),r=[];try{let n=JSON.parse(e.CLAUDE_PILOT_EXCLUDE_PROJECTS||"[]");Array.isArray(n)&&(r=n.filter(s=>typeof s=="string"&&s.length>0))}catch{return!1}return r.length===0?!1:KTe(t,r)}var ex,LG,tx=ye(()=>{"use strict";ex=require("fs"),LG=require("path");Or();er()});var yP,bP=ye(()=>{"use strict";zm();$m();tx();er();Ja();re();yP={async execute(t){let e=ca(),{sessionId:r,cwd:n,prompt:s}=t;if(!s)return _.debug("HOOK","session-init: Empty prompt received, skipping session initialization"),{continue:!0,suppressOutput:!0};let i=n&&zr(n),a=ai(i);if(Ll(n))return _.debug("HOOK","session-init: Memory disabled by .pilot/memory.json",{project:a,cwd:n}),{continue:!0,suppressOutput:!0};if(Ul(a))return _.debug("HOOK","session-init: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:a}),{continue:!0,suppressOutput:!0};_.debug("HOOK","session-init: Calling /api/sessions/init",{contentSessionId:r,project:a,mode:e.mode});let o=await bi(`${e.baseUrl}/api/sessions/init`,{method:"POST",body:JSON.stringify({contentSessionId:r,project:a,prompt:s,projectRoot:n})},{endpointConfig:e});if(!o.ok)throw new Error(`Session initialization failed: ${o.status}`);let c=await o.json(),l=c.sessionDbId,u=c.promptNumber;if(_.debug("HOOK","session-init: Received from /api/sessions/init",{sessionDbId:l,promptNumber:u,skipped:c.skipped}),_.debug("HOOK",`[ALIGNMENT] Hook Entry | contentSessionId=${r} | prompt#=${u} | sessionDbId=${l}`),c.skipped&&c.reason==="private")return _.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${u} | skipped=true | reason=private`,{sessionId:l}),{continue:!0,suppressOutput:!0};if(l){let p=s.startsWith("/")?s.substring(1):s;_.debug("HOOK","session-init: Calling /sessions/{sessionDbId}/init",{sessionDbId:l,promptNumber:u});let d=await bi(`${e.baseUrl}/sessions/${l}/init`,{method:"POST",body:JSON.stringify({userPrompt:p,promptNumber:u})},{endpointConfig:e});if(!d.ok)throw new Error(`SDK agent start failed: ${d.status}`)}return _.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${u} | project=${a}`,{sessionId:l}),{continue:!0,suppressOutput:!0}}}});var xP,_P=ye(()=>{"use strict";zm();$m();tx();Ja();re();xP={async execute(t){let e=ca(),{sessionId:r,cwd:n,toolName:s,toolInput:i,toolResponse:a}=t;if(!s)throw new Error("observationHandler requires toolName");if(Ll(n))return _.debug("HOOK","observation: Memory disabled by .pilot/memory.json",{cwd:n}),{continue:!0,suppressOutput:!0};let o=ai(n);if(Ul(o))return _.debug("HOOK","observation: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:o}),{continue:!0,suppressOutput:!0};let c=_.formatTool(s,i);if(_.dataIn("HOOK",`PostToolUse: ${c}`,{workerUrl:e.baseUrl,mode:e.mode}),!n)throw new Error(`Missing cwd in PostToolUse hook input for session ${r}, tool ${s}`);let l=await bi(`${e.baseUrl}/api/sessions/observations`,{method:"POST",body:JSON.stringify({contentSessionId:r,tool_name:s,tool_input:i,tool_response:a,cwd:n})},{endpointConfig:e});if(!l.ok)throw new Error(`Observation storage failed: ${l.status}`);return _.debug("HOOK","Observation sent successfully",{toolName:s,mode:e.mode}),{continue:!0,suppressOutput:!0}}}});function UG(t,e,r=!1){if(!t||!(0,rx.existsSync)(t))throw new Error(`Transcript path missing or file does not exist: ${t}`);let n=(0,rx.readFileSync)(t,"utf-8").trim();if(!n)throw new Error(`Transcript file exists but is empty: ${t}`);let s=n.split(` +`}var Pl=ye(()=>{"use strict";_m();Hn();vo()});function LW(t,e,r,n){let s=[];return n?s.push(...TW(t)):s.push(...dW(t)),n?s.push(...RW()):s.push(...mW()),n?s.push(...PW()):s.push(...fW()),n?s.push(...IW()):s.push(...hW()),tb(r)&&(n?s.push(...CW(e,r)):s.push(...gW(e,r))),s}var UW=ye(()=>{"use strict";vo();Rl();Pl()});function NEe(t){let e=new Map;for(let n of t){let s=n.type==="observation"?n.data.created_at:n.data.displayTime,i=ii(s);e.has(i)||e.set(i,[]),e.get(i).push(n)}let r=Array.from(e.entries()).sort((n,s)=>{let i=new Date(n[0]).getTime(),a=new Date(s[0]).getTime();return i-a});return new Map(r)}function DEe(t,e){return e.fullObservationField==="narrative"?t.narrative:t.facts?Kg(t.facts).join(` +`):null}function MEe(t,e,r,n,s,i){let a=[];i?a.push(...OW(t)):a.push(...vW(t));let o=null,c="",l=!1;for(let u of e)if(u.type==="summary"){l&&(a.push(""),l=!1,o=null,c="");let p=u.data,d=Bn(p.displayTime);i?a.push(...DW(p,d)):a.push(..._W(p,d))}else{let p=u.data,d=gs(p.files_modified,s,p.files_read),m=Zr(p.created_at),f=m!==c,g=f?m:"";c=m;let v=r.has(p.id);if(d!==o&&(l&&a.push(""),i?a.push(...AW(d)):a.push(...yW(d)),o=d,l=!0),v){let h=DEe(p,n);i?a.push(...NW(p,m,f,h,n)):(l&&!i&&(a.push(""),l=!1),a.push(...xW(p,g,h,n)),o=null)}else i?a.push(jW(p,m,f,n)):a.push(bW(p,g,n))}return l&&a.push(""),a}function qW(t,e,r,n,s){let i=[],a=NEe(t);for(let[o,c]of a)i.push(...MEe(o,c,e,r,n,s));return i}var FW=ye(()=>{"use strict";$c();Rl();Pl()});function HW(t,e,r){return!(!t.showLastSummary||!e||!!!(e.investigated||e.learned||e.completed||e.next_steps)||r&&e.created_at_epoch<=r.created_at_epoch)}function BW(t,e){let r=[];return e?(r.push(...Sm("Investigated",t.investigated,X.blue)),r.push(...Sm("Learned",t.learned,X.yellow)),r.push(...Sm("Completed",t.completed,X.green)),r.push(...Sm("Next Steps",t.next_steps,X.magenta))):(r.push(...wm("Investigated",t.investigated)),r.push(...wm("Learned",t.learned)),r.push(...wm("Completed",t.completed)),r.push(...wm("Next Steps",t.next_steps))),r}var WW=ye(()=>{"use strict";_m();Rl();Pl()});function ZW(t,e){return e?MW(t):wW(t)}function GW(t,e,r){return!tb(e)||t.totalDiscoveryTokens<=0||t.savings<=0?[]:r?zW(t.totalDiscoveryTokens,t.totalReadTokens):SW(t.totalDiscoveryTokens,t.totalReadTokens)}var VW=ye(()=>{"use strict";vo();Rl();Pl()});function $Ee(){try{return new Ui}catch(t){if(t.code==="ERR_DLOPEN_FAILED"){try{(0,QW.unlinkSync)(zEe)}catch(e){_.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},e)}return _.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),null}throw t}}function LEe(t,e){return e?$W(t):EW(t)}function UEe(t,e,r,n,s,i,a){let o=[],c=T1(e);o.push(...LW(t,c,n,a));let l=r.slice(0,n.sessionCount),u=lW(l,r),p=C1(e,u),d=uW(e,n.fullObservationCount);o.push(...qW(p,d,n,s,a));let m=r[0],f=e[0];HW(n,m,f)&&o.push(...BW(m,a));let g=I1(e,n,i,s);return o.push(...ZW(g,a)),o.push(...GW(c,n,a)),o.join(` +`).trimEnd()}async function A1(t,e=!1){let r=S1(),n=t?.cwd??process.cwd(),s=ai(n),i=t?.projects||[s],a=$Ee();if(!a)return"";try{let o=t?.planPath,c,l;return o?(c=i.length>1?oW(a,i,r,o):iW(a,s,r,o),l=i.length>1?cW(a,i,r,o):aW(a,s,r,o)):(c=i.length>1?nW(a,i,r):R1(a,s,r),l=i.length>1?sW(a,i,r):P1(a,s,r)),c.length===0&&l.length===0?LEe(s,e):UEe(s,c,l,r,n,t?.session_id,e)}finally{a.close()}}var KW,JW,QW,zEe,YW=ye(()=>{"use strict";KW=Q(require("path"),1),JW=require("os"),QW=require("fs");zg();re();Ka();E1();vo();O1();UW();FW();WW();VW();Rl();Pl();zEe=KW.default.join((0,JW.homedir)(),".claude","plugins","marketplaces","pilot","plugin",".install-version")});var XW=ye(()=>{"use strict";YW();E1();vo();O1()});var j1={};es(j1,{generateContext:()=>A1});var N1=ye(()=>{"use strict";XW()});var lP={};es(lP,{backupCommand:()=>mG,backupsListCommand:()=>fG,cleanCommand:()=>yG,cleanupCommand:()=>dG,doctorCommand:()=>hG,exportCommand:()=>uG,generateCommand:()=>vG,importCommand:()=>pG,retentionCommand:()=>gG,runCLI:()=>NTe,searchCommand:()=>lG,statusCommand:()=>cG,vacuumCommand:()=>bG});async function Xt(t,e={}){let r=un(),s=`http://${us()}:${r}${t}`,i=await fetch(s,{method:e.method||"GET",headers:e.body?{"Content-Type":"application/json"}:void 0,body:e.body?JSON.stringify(e.body):void 0});if(!i.ok){let a=await i.text();throw new Error(`API error (${i.status}): ${a}`)}return i.json()}async function Gs(){try{return await Xt("/api/health"),!0}catch{return!1}}function zl(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:t<1024*1024*1024?`${(t/(1024*1024)).toFixed(1)} MB`:`${(t/(1024*1024*1024)).toFixed(2)} GB`}function jTe(t){return new Date(t).toLocaleString()}async function cG(t){if(!await Gs()){t.json?console.log(JSON.stringify({running:!1})):console.log("Worker is not running");return}let[r,n,s]=await Promise.all([Xt("/api/health"),Xt("/api/stats"),Xt("/api/processing-status")]);t.json?console.log(JSON.stringify({running:!0,health:r,stats:n,processing:s},null,2)):(console.log("Worker Status"),console.log("\u2500".repeat(40)),console.log(` Status: ${r.status}`),console.log(` Version: ${n.worker.version}`),console.log(` PID: ${r.pid}`),console.log(` Uptime: ${Math.floor(n.worker.uptime/60)}m ${n.worker.uptime%60}s`),console.log(` Initialized: ${r.initialized?"yes":"no"}`),console.log(` Core Ready: ${r.coreReady?"yes":"no"}`),console.log(` MCP Ready: ${r.mcpReady?"yes":"no"}`),console.log(""),console.log("Database Stats"),console.log("\u2500".repeat(40)),console.log(` Path: ${n.database.path}`),console.log(` Size: ${zl(n.database.size)}`),console.log(` Observations: ${n.database.observations.toLocaleString()}`),console.log(` Sessions: ${n.database.sessions.toLocaleString()}`),console.log(` Summaries: ${n.database.summaries.toLocaleString()}`),console.log(""),console.log("Processing"),console.log("\u2500".repeat(40)),console.log(` Active: ${s.isProcessing?"yes":"no"}`),console.log(` Queue Depth: ${s.queueDepth}`),console.log(` Sessions: ${n.worker.activeSessions}`))}async function lG(t,e){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let r=new URLSearchParams({query:t});e.project&&r.set("project",e.project),e.limit&&r.set("limit",e.limit.toString()),e.type&&r.set("type",e.type);let n=e.type==="session"?"/api/search/sessions":"/api/search/observations",s=await Xt(`${n}?${r}`);if(e.json)console.log(JSON.stringify(s,null,2));else{let i=s.content.find(a=>a.type==="text")?.text;console.log(i||"No results found")}}async function uG(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=new URLSearchParams;t.project&&e.set("project",t.project),t.limit&&e.set("limit",t.limit.toString());let r=await Xt(`/api/export?${e}`);console.log(JSON.stringify(r,null,2))}async function pG(t,e){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let r;if(t&&t!=="-")r=await(await import("fs/promises")).readFile(t,"utf-8");else{let i=[];for await(let a of process.stdin)i.push(a);r=Buffer.concat(i).toString("utf-8")}let n=JSON.parse(r),s=await Xt("/api/import",{method:"POST",body:n});e.json?console.log(JSON.stringify(s)):console.log(`Imported ${s.imported} records`)}async function dG(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/pending-queue/failed",{method:"DELETE"});t.json?console.log(JSON.stringify({failedQueueCleared:e.deleted})):(console.log("Cleanup completed:"),console.log(` Failed queue entries cleared: ${e.deleted}`))}async function mG(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/backups/create",{method:"POST"});t.json?console.log(JSON.stringify(e)):(console.log("Backup created:"),console.log(` File: ${e.filename}`),console.log(` Size: ${zl(e.sizeBytes)}`),console.log(` Path: ${e.path}`))}async function fG(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/backups");if(t.json)console.log(JSON.stringify(e,null,2));else{if(e.backups.length===0){console.log("No backups found");return}console.log("Backups:"),console.log("\u2500".repeat(60));for(let r of e.backups)console.log(` ${r.filename}`),console.log(` Size: ${zl(r.sizeBytes)} | Created: ${jTe(r.createdAt)}`)}}async function hG(t){let e=[],r=await Gs();if(e.push({name:"Worker Status",status:r?"ok":"error",message:r?"Worker is running":"Worker is not running"}),r){try{let n=await Xt("/api/health");e.push({name:"Health Check",status:n.status==="ok"?"ok":"warning",message:`Status: ${n.status}`}),e.push({name:"Core Services",status:n.coreReady?"ok":"warning",message:n.coreReady?"Database and search ready":"Core services not ready"}),e.push({name:"MCP Server",status:n.mcpReady?"ok":"warning",message:n.mcpReady?"MCP server connected":"MCP server not connected"})}catch(n){e.push({name:"Health Check",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/stats");e.push({name:"Database",status:"ok",message:`${n.database.observations} observations, ${n.database.sessions} sessions (${zl(n.database.size)})`})}catch(n){e.push({name:"Database",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/pending-queue"),s=n.queue.messages.filter(o=>o.status==="pending").length,i=n.queue.messages.filter(o=>o.status==="failed").length,a=i>0?"warning":"ok";e.push({name:"Queue Status",status:a,message:`Pending: ${s}, Failed: ${i}`})}catch(n){e.push({name:"Queue Status",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/backups"),s=n.backups.some(i=>{let a=new Date(i.createdAt),o=Date.now()-1440*60*1e3;return a.getTime()>o});e.push({name:"Backups",status:s?"ok":"warning",message:s?`${n.backups.length} backups (recent backup exists)`:`${n.backups.length} backups (no recent backup)`})}catch{e.push({name:"Backups",status:"warning",message:"Could not check backups"})}try{let n=await Xt("/api/vector-db/health");n.available?n.healthy?e.push({name:"Vector Database",status:"ok",message:`${zl(n.directorySize)}, ${n.embeddingCount} embeddings`}):e.push({name:"Vector Database",status:"warning",message:`${zl(n.directorySize)} (${Math.round(n.bloatRatio)}x expected size) \u2014 Run: pilot-memory vacuum`}):e.push({name:"Vector Database",status:"warning",message:"unavailable (Chroma not connected)"})}catch{e.push({name:"Vector Database",status:"warning",message:"unavailable (Chroma not connected)"})}}if(t.json)console.log(JSON.stringify({checks:e},null,2));else{console.log("Pilot Memory Doctor"),console.log("\u2500".repeat(50));let n=c=>c==="ok"?"\u2713":c==="warning"?"!":"\u2717",s=c=>c==="ok"?"\x1B[32m":c==="warning"?"\x1B[33m":"\x1B[31m",i="\x1B[0m";for(let c of e)console.log(` ${s(c.status)}${n(c.status)}${i} ${c.name}: ${c.message}`);let a=e.some(c=>c.status==="error"),o=e.some(c=>c.status==="warning");console.log(""),console.log(a?"\x1B[31mSome checks failed. See above for details.\x1B[0m":o?"\x1B[33mSome warnings detected. See above for details.\x1B[0m":"\x1B[32mAll checks passed!\x1B[0m")}}async function gG(t,e){switch(await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1)),t){case"preview":{let r=await Xt("/api/retention/preview");if(e.json)console.log(JSON.stringify(r,null,2));else{let{preview:n,policy:s}=r;console.log("Retention Preview"),console.log("\u2500".repeat(50)),console.log(`Total observations: ${n.totalObservations.toLocaleString()}`),console.log(`Would delete by age: ${n.toDelete.byAge.toLocaleString()}`),console.log(`Would delete by count: ${n.toDelete.byCount.toLocaleString()}`),console.log(`Total to delete: ${n.toDelete.total.toLocaleString()}`),console.log(`Excluded (protected): ${n.excluded.toLocaleString()}`),console.log(""),console.log("Policy:"),console.log(` Enabled: ${s.enabled?"yes":"no"}`),console.log(` Max age: ${s.maxAgeDays} days`),console.log(` Max count: ${s.maxCount} per project`),console.log(` Exclude: ${s.excludeTypes.join(", ")||"none"}`),console.log(` Soft delete: ${s.softDelete?"yes (archive)":"no (permanent)"}`),n.affectedProjects.length>0&&(console.log(""),console.log(`Affected projects: ${n.affectedProjects.slice(0,5).join(", ")}${n.affectedProjects.length>5?"...":""}`))}break}case"run":{let r=await Xt("/api/retention/run",{method:"POST",body:{}});if(e.json)console.log(JSON.stringify(r,null,2));else if(r.success)console.log("\x1B[32mRetention cleanup completed\x1B[0m"),console.log(` Deleted: ${r.result.deleted}`),console.log(` Archived: ${r.result.archived}`),console.log(` Duration: ${r.result.duration}ms`);else{console.log("\x1B[31mRetention cleanup failed\x1B[0m");for(let n of r.result.errors)console.log(` Error: ${n}`)}break}case"archive":{let r=await Xt("/api/retention/archive/list");if(e.json)console.log(JSON.stringify(r,null,2));else if(console.log(`Archived Observations (${r.count} of ${r.total})`),console.log("\u2500".repeat(60)),r.observations.length===0)console.log("No archived observations");else for(let n of r.observations){let s=new Date(n.deleted_at_epoch).toLocaleString();console.log(` #${n.id} ${n.title||"(untitled)"}`),console.log(` Type: ${n.type} | Project: ${n.project}`),console.log(` Deleted: ${s} | Reason: ${n.deletion_reason||"unknown"}`)}break}case"restore":{let r=await Xt("/api/retention/restore",{method:"POST",body:{}});if(e.json)console.log(JSON.stringify(r,null,2));else if(r.success)console.log(`\x1B[32mRestored ${r.restored} observations from archive\x1B[0m`);else{console.log("\x1B[31mRestore failed\x1B[0m");for(let n of r.errors)console.log(` Error: ${n}`)}break}default:{let r=await Xt("/api/retention/policy");if(e.json)console.log(JSON.stringify(r,null,2));else{let{policy:n}=r;console.log("Retention Policy"),console.log("\u2500".repeat(40)),console.log(` Enabled: ${n.enabled?"\x1B[32myes\x1B[0m":"\x1B[33mno\x1B[0m"}`),console.log(` Max age: ${n.maxAgeDays>0?`${n.maxAgeDays} days`:"disabled"}`),console.log(` Max count: ${n.maxCount>0?`${n.maxCount} per project`:"unlimited"}`),console.log(` Exclude: ${n.excludeTypes.join(", ")||"none"}`),console.log(` Soft delete: ${n.softDelete?"yes (archive)":"no (permanent)"}`),console.log(""),console.log("Commands:"),console.log(" retention preview Preview what would be deleted"),console.log(" retention run Run cleanup"),console.log(" retention archive Show archived observations"),console.log(" retention restore Restore all from archive")}break}}}async function vG(t){let{spawn:e}=await import("child_process"),r=await import("path"),{fileURLToPath:n}=await import("url"),s=r.dirname(n(xG.url)),i=r.resolve(s,"../../scripts/regenerate-claude-md.ts"),a=[];return t.dryRun&&a.push("--dry-run"),t.json&&console.log(JSON.stringify({action:"generate",dryRun:t.dryRun??!1})),new Promise((o,c)=>{let l=e("bun",[i,...a],{stdio:"inherit",cwd:process.cwd()});l.on("close",u=>{u===0?o():c(new Error(`Generate script exited with code ${u}`))}),l.on("error",u=>{c(u)})})}async function yG(t){let{spawn:e}=await import("child_process"),r=await import("path"),{fileURLToPath:n}=await import("url"),s=r.dirname(n(xG.url)),i=r.resolve(s,"../../scripts/regenerate-claude-md.ts"),a=["--clean"];return t.dryRun&&a.push("--dry-run"),t.json&&console.log(JSON.stringify({action:"clean",dryRun:t.dryRun??!1})),new Promise((o,c)=>{let l=e("bun",[i,...a],{stdio:"inherit",cwd:process.cwd()});l.on("close",u=>{u===0?o():c(new Error(`Clean script exited with code ${u}`))}),l.on("error",u=>{c(u)})})}async function bG(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1)),t.json||console.log("Vacuuming vector database \u2014 this will rebuild the HNSW index...");let e=await Xt("/api/retention/vacuum",{method:"POST"});t.json?console.log(JSON.stringify(e,null,2)):e.success?(console.log("\x1B[32mVacuum complete\x1B[0m"),console.log(` Reindexed: ${e.reindexedDocuments} documents`)):(console.log("\x1B[33mVacuum incomplete \u2014 run again to complete backfill\x1B[0m"),e.error&&console.log(` Error: ${e.error}`))}async function NTe(t){let e=t[0],r=t.slice(1),n={},s=[];for(let i=0;i [--project ] [--limit ] [--json]"),process.exit(1)),await lG(s.join(" "),n);break;case"export":await uG(n);break;case"import":await pG(s[0],n);break;case"cleanup":await dG(n);break;case"backup":s[0]==="list"?await fG(n):await mG(n);break;case"doctor":await hG(n);break;case"retention":await gG(s[0],n);break;case"vacuum":await bG(n);break;case"generate":await vG(n);break;case"clean":await yG(n);break;default:console.log(`Unknown command: ${e}`),console.log(""),console.log("Available commands:"),console.log(" status Show worker and queue status"),console.log(" search Search memories"),console.log(" export Export memories as JSON"),console.log(" import [file] Import memories from file or stdin"),console.log(" cleanup Run cleanup tasks"),console.log(" backup Create a backup"),console.log(" backup list List existing backups"),console.log(" doctor Diagnose issues"),console.log(" retention Show retention policy"),console.log(" retention preview Preview cleanup"),console.log(" retention run Run cleanup"),console.log(" retention archive Show archived observations"),console.log(" vacuum Rebuild vector database HNSW index"),console.log(" generate Generate CLAUDE.md files for project folders"),console.log(" clean Remove auto-generated CLAUDE.md content"),console.log(""),console.log("Options:"),console.log(" --json, -j Output as JSON"),console.log(" --project, -p Filter by project"),console.log(" --limit, -l Limit results"),console.log(" --dry-run, -n Preview changes without writing"),process.exit(1)}}catch(i){n.json?console.log(JSON.stringify({error:i instanceof Error?i.message:"Unknown error"})):console.error(`Error: ${i instanceof Error?i.message:"Unknown error"}`),process.exit(1)}}var xG,uP=ye(()=>{"use strict";Ln();xG={}});function DTe(){try{return(0,_G.statSync)("/dev/stdin")!==null}catch{try{return process.stdin.readable||process.stdin.isTTY===!0}catch{return!1}}}async function wG(){if(DTe())return new Promise((t,e)=>{let r="",n=setTimeout(()=>{t(void 0)},100),s;process.stdin.on("data",i=>{clearTimeout(n),s&&clearTimeout(s),r+=i,s=setTimeout(()=>{try{t(r.trim()?JSON.parse(r):void 0)}catch(a){e(new Error(`Failed to parse hook input: ${a}`))}},3e3)}),process.stdin.on("end",()=>{clearTimeout(n),s&&clearTimeout(s);try{t(r.trim()?JSON.parse(r):void 0)}catch(i){e(new Error(`Failed to parse hook input: ${i}`))}}),process.stdin.on("error",()=>{clearTimeout(n),s&&clearTimeout(s),t(void 0)})})}var _G,SG=ye(()=>{"use strict";_G=require("fs")});var EG,kG=ye(()=>{"use strict";EG={normalizeInput(t){let e=t??{};return{sessionId:e.session_id,cwd:e.cwd??process.cwd(),prompt:e.prompt,toolName:e.tool_name,toolInput:e.tool_input,toolResponse:e.tool_response,transcriptPath:e.transcript_path}},formatOutput(t){return t.hookSpecificOutput?{hookSpecificOutput:t.hookSpecificOutput}:{continue:t.continue??!0,suppressOutput:t.suppressOutput??!0}}}});var TG,RG=ye(()=>{"use strict";TG={normalizeInput(t){let e=t;return{sessionId:e.sessionId??e.session_id??"unknown",cwd:e.cwd??process.cwd(),prompt:e.prompt,toolName:e.toolName??e.tool_name,toolInput:e.toolInput??e.tool_input,toolResponse:e.toolResponse??e.tool_response,transcriptPath:e.transcriptPath??e.transcript_path,filePath:e.filePath??e.file_path,edits:e.edits}},formatOutput(t){return t}}});function PG(t){switch(t){case"claude-code":return EG;case"raw":return TG;default:throw new Error(`Unknown platform: ${t}`)}}var IG=ye(()=>{"use strict";kG();RG()});function MTe(t){return t.includes(":")&&!t.startsWith("[")?`[${t}]`:t}function oa(){if(Vb!==null)return Vb;let t=us(),e=un();return Vb={mode:"local",baseUrl:`http://${MTe(t)}:${e}`,authHeaders:{},timeoutMs:XD(qt.DEFAULT),verifySsl:!0},Vb}var Vb,Dm=ye(()=>{"use strict";Ln();As();Vb=null});function zTe(t){if(t instanceof Error){let e=t.code;if(e&&CG.includes(e))return!0;let r=t.message||"";return CG.some(n=>r.includes(n))}return!1}function $Te(t,e=100,r=1e3){let n=e*Math.pow(2,t),s=Math.min(n,r),i=s*.25*(Math.random()*2-1);return Math.round(s+i)}function LTe(t){return new Promise(e=>setTimeout(e,t))}async function Kb(t,e,r={}){let{maxRetries:n=3,baseDelayMs:s=100,maxDelayMs:i=1e3}=r,a;for(let o=0;o<=n;o++)try{return await fetch(t,e)}catch(c){if(a=c,!zTe(c)||o>=n)throw c;let l=$Te(o,s,i);await LTe(l)}throw a??new Error("fetchWithRetry failed")}var CG,pP=ye(()=>{"use strict";CG=["ECONNRESET","ECONNREFUSED","ETIMEDOUT","ENOTFOUND","EAI_AGAIN","UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT"]});async function bi(t,e,r={}){let{endpointConfig:n,...s}=r,i=new Headers(e?.headers);if(n?.authHeaders)for(let[a,o]of Object.entries(n.authHeaders))i.set(a,o);return e?.body&&!i.has("Content-Type")&&i.set("Content-Type","application/json"),Kb(t,{...e,headers:i},s)}var Mm=ye(()=>{"use strict";pP()});var Jb,OG,AG,dP,mP=ye(()=>{"use strict";Jb=require("fs"),OG=Q(require("path"),1),AG=require("os");Dm();Mm();Ka();re();dP={async execute(t){if(process.env.CLAUDE_PILOT_NO_CONTEXT==="1"||process.env.CLAUDE_PILOT_NO_CONTEXT==="true")return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""}};let e=oa(),r=t.cwd??process.cwd(),s=J6(r).allProjects.join(","),i=`${e.baseUrl}/api/context/inject?projects=${encodeURIComponent(s)}`,a=process.env.PILOT_SESSION_ID;if(a){let u=OG.default.join((0,AG.homedir)(),".pilot","sessions",a,"active_plan.json");try{if((0,Jb.existsSync)(u)){let p=JSON.parse((0,Jb.readFileSync)(u,"utf-8"));p.plan_path&&(i+=`&planPath=${encodeURIComponent(p.plan_path)}`)}}catch(p){_.debug("HOOK","Failed to read active plan file",{planFilePath:u},p)}}let o=await bi(i,void 0,{endpointConfig:e});if(!o.ok)throw new Error(`Context generation failed: ${o.status}`);return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:(await o.text()).trim()}}}}});function UTe(t){let e=(0,jG.join)(t,".pilot/memory.json");if(!(0,Qb.existsSync)(e))return null;try{let r=(0,Qb.readFileSync)(e,"utf-8");return JSON.parse(r)}catch{return null}}function $l(t){let e=UTe(t);return e?e.enabled===!1:!1}function qTe(t){let e=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${e}$`,"i")}function FTe(t,e){for(let r of e)if(qTe(r).test(t))return!0;return!1}function Ll(t){if(!t)return!1;let e=Ae.loadFromFile(Ht),r=[];try{let n=JSON.parse(e.CLAUDE_PILOT_EXCLUDE_PROJECTS||"[]");Array.isArray(n)&&(r=n.filter(s=>typeof s=="string"&&s.length>0))}catch{return!1}return r.length===0?!1:FTe(t,r)}var Qb,jG,Yb=ye(()=>{"use strict";Qb=require("fs"),jG=require("path");Or();er()});var fP,hP=ye(()=>{"use strict";Dm();Mm();Yb();er();Ka();re();fP={async execute(t){let e=oa(),{sessionId:r,cwd:n,prompt:s}=t;if(!s)return _.debug("HOOK","session-init: Empty prompt received, skipping session initialization"),{continue:!0,suppressOutput:!0};let i=n&&zr(n),a=ai(i);if($l(n))return _.debug("HOOK","session-init: Memory disabled by .pilot/memory.json",{project:a,cwd:n}),{continue:!0,suppressOutput:!0};if(Ll(a))return _.debug("HOOK","session-init: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:a}),{continue:!0,suppressOutput:!0};_.debug("HOOK","session-init: Calling /api/sessions/init",{contentSessionId:r,project:a,mode:e.mode});let o=await bi(`${e.baseUrl}/api/sessions/init`,{method:"POST",body:JSON.stringify({contentSessionId:r,project:a,prompt:s,projectRoot:n})},{endpointConfig:e});if(!o.ok)throw new Error(`Session initialization failed: ${o.status}`);let c=await o.json(),l=c.sessionDbId,u=c.promptNumber;if(_.debug("HOOK","session-init: Received from /api/sessions/init",{sessionDbId:l,promptNumber:u,skipped:c.skipped}),_.debug("HOOK",`[ALIGNMENT] Hook Entry | contentSessionId=${r} | prompt#=${u} | sessionDbId=${l}`),c.skipped&&c.reason==="private")return _.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${u} | skipped=true | reason=private`,{sessionId:l}),{continue:!0,suppressOutput:!0};if(l){let p=s.startsWith("/")?s.substring(1):s;_.debug("HOOK","session-init: Calling /sessions/{sessionDbId}/init",{sessionDbId:l,promptNumber:u});let d=await bi(`${e.baseUrl}/sessions/${l}/init`,{method:"POST",body:JSON.stringify({userPrompt:p,promptNumber:u})},{endpointConfig:e});if(!d.ok)throw new Error(`SDK agent start failed: ${d.status}`)}return _.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${u} | project=${a}`,{sessionId:l}),{continue:!0,suppressOutput:!0}}}});var gP,vP=ye(()=>{"use strict";Dm();Mm();Yb();Ka();re();gP={async execute(t){let e=oa(),{sessionId:r,cwd:n,toolName:s,toolInput:i,toolResponse:a}=t;if(!s)throw new Error("observationHandler requires toolName");if($l(n))return _.debug("HOOK","observation: Memory disabled by .pilot/memory.json",{cwd:n}),{continue:!0,suppressOutput:!0};let o=ai(n);if(Ll(o))return _.debug("HOOK","observation: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:o}),{continue:!0,suppressOutput:!0};let c=_.formatTool(s,i);if(_.dataIn("HOOK",`PostToolUse: ${c}`,{workerUrl:e.baseUrl,mode:e.mode}),!n)throw new Error(`Missing cwd in PostToolUse hook input for session ${r}, tool ${s}`);let l=await bi(`${e.baseUrl}/api/sessions/observations`,{method:"POST",body:JSON.stringify({contentSessionId:r,tool_name:s,tool_input:i,tool_response:a,cwd:n})},{endpointConfig:e});if(!l.ok)throw new Error(`Observation storage failed: ${l.status}`);return _.debug("HOOK","Observation sent successfully",{toolName:s,mode:e.mode}),{continue:!0,suppressOutput:!0}}}});function NG(t,e,r=!1){if(!t||!(0,Xb.existsSync)(t))throw new Error(`Transcript path missing or file does not exist: ${t}`);let n=(0,Xb.readFileSync)(t,"utf-8").trim();if(!n)throw new Error(`Transcript file exists but is empty: ${t}`);let s=n.split(` `),i=!1;for(let a=s.length-1;a>=0;a--){let o=JSON.parse(s[a]);if(o.type===e&&(i=!0,o.message?.content)){let c="",l=o.message.content;if(typeof l=="string")c=l;else if(Array.isArray(l))c=l.filter(u=>u.type==="text").map(u=>u.text).join(` `);else throw new Error(`Unknown message content format in transcript. Type: ${typeof l}`);return r&&(c=c.replace(/[\s\S]*?<\/system-reminder>/g,""),c=c.replace(/\n{3,}/g,` -`).trim()),c}}if(!i)throw new Error(`No message found for role '${e}' in transcript: ${t}`);return""}var rx,qG=ye(()=>{"use strict";rx=require("fs")});var wP,SP=ye(()=>{"use strict";zm();$m();tx();Ja();re();qG();wP={async execute(t){let e=ca(),{sessionId:r,cwd:n,transcriptPath:s}=t;if(Ll(n))return _.debug("HOOK","summarize: Memory disabled by .pilot/memory.json",{cwd:n}),{continue:!0,suppressOutput:!0};let i=ai(n);if(Ul(i))return _.debug("HOOK","summarize: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:i}),{continue:!0,suppressOutput:!0};if(!s)throw new Error(`Missing transcriptPath in Stop hook input for session ${r}`);let a=UG(s,"assistant",!0);return _.dataIn("HOOK","Stop: Requesting summary",{workerUrl:e.baseUrl,mode:e.mode,hasLastAssistantMessage:!!a}),(await bi(`${e.baseUrl}/api/sessions/summarize`,{method:"POST",body:JSON.stringify({contentSessionId:r,last_assistant_message:a})},{endpointConfig:e})).ok?(_.debug("HOOK","Summary request sent successfully",{mode:e.mode}),{continue:!0,suppressOutput:!0}):{continue:!0,suppressOutput:!0}}}});var FG,kP,EP=ye(()=>{"use strict";FG=require("path");Ln();hP();As();kP={async execute(t){let e=dh(),r=(0,FG.basename)(t.cwd??process.cwd()),n=await Yb(`${e}/api/context/inject?project=${encodeURIComponent(r)}&colors=true`,{method:"GET"});if(!n.ok)throw new Error(`Failed to fetch context: ${n.status}`);let s=await n.text();return console.error(` +`).trim()),c}}if(!i)throw new Error(`No message found for role '${e}' in transcript: ${t}`);return""}var Xb,DG=ye(()=>{"use strict";Xb=require("fs")});var yP,bP=ye(()=>{"use strict";Dm();Mm();Yb();Ka();re();DG();yP={async execute(t){let e=oa(),{sessionId:r,cwd:n,transcriptPath:s}=t;if($l(n))return _.debug("HOOK","summarize: Memory disabled by .pilot/memory.json",{cwd:n}),{continue:!0,suppressOutput:!0};let i=ai(n);if(Ll(i))return _.debug("HOOK","summarize: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:i}),{continue:!0,suppressOutput:!0};if(!s)throw new Error(`Missing transcriptPath in Stop hook input for session ${r}`);let a=NG(s,"assistant",!0);return _.dataIn("HOOK","Stop: Requesting summary",{workerUrl:e.baseUrl,mode:e.mode,hasLastAssistantMessage:!!a}),(await bi(`${e.baseUrl}/api/sessions/summarize`,{method:"POST",body:JSON.stringify({contentSessionId:r,last_assistant_message:a})},{endpointConfig:e})).ok?(_.debug("HOOK","Summary request sent successfully",{mode:e.mode}),{continue:!0,suppressOutput:!0}):{continue:!0,suppressOutput:!0}}}});var MG,xP,_P=ye(()=>{"use strict";MG=require("path");Ln();pP();As();xP={async execute(t){let e=uh(),r=(0,MG.basename)(t.cwd??process.cwd()),n=await Kb(`${e}/api/context/inject?project=${encodeURIComponent(r)}&colors=true`,{method:"GET"});if(!n.ok)throw new Error(`Failed to fetch context: ${n.status}`);let s=await n.text();return console.error(` `+String.fromCodePoint(128221)+` Pilot Memory Context Loaded `+String.fromCodePoint(8505,65039)+` Note: This appears as stderr but is informational only @@ -926,9 +926,9 @@ ${X.dim}No previous sessions found for this project yet.${X.reset} `+String.fromCodePoint(128161)+` New! Wrap all or part of any message with ... to prevent storing sensitive information in your observation history. -`),{exitCode:Zu.SUCCESS}}}});function HG(t){let e=JTe[t];if(!e)throw new Error(`Unknown event type: ${t}`);return e}var JTe,BG=ye(()=>{"use strict";vP();bP();_P();SP();EP();vP();bP();_P();SP();EP();JTe={context:gP,"session-init":yP,observation:xP,summarize:wP,"user-message":kP}});var WG={};es(WG,{hookCommand:()=>QTe});async function QTe(t,e){try{let r=NG(t),n=HG(e),s=await PG(),i=r.normalizeInput(s);i.platform=t;let a=await n.execute(i),o=r.formatOutput(a);console.log(JSON.stringify(o)),process.exit(a.exitCode??Zu.SUCCESS)}catch(r){let n=r instanceof Error?r.message:String(r);_.debug("HOOK",`Hook error (fail-open) [${e}]: ${n.slice(0,200)}`),console.log(JSON.stringify(e==="context"?{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""}}:{continue:!0,suppressOutput:!0})),process.exit(Zu.SUCCESS)}}var ZG=ye(()=>{"use strict";IG();DG();BG();As();re()});var tRe={};es(tRe,{WorkerService:()=>nx,buildStatusOutput:()=>KG,verifyLicense:()=>JG});module.exports=Fl(tRe);var Lm=Q(require("path"),1),GG=require("child_process"),TP=require("fs"),VG=require("os");er();var cRe=Object.freeze({status:"aborted"});function F(t,e,r){function n(o,c){var l;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(l=o._zod).traits??(l.traits=new Set),o._zod.traits.add(t),e(o,c);for(let u in a.prototype)u in o||Object.defineProperty(o,u,{value:a.prototype[u].bind(o)});o._zod.constr=a,o._zod.def=c}let s=r?.Parent??Object;class i extends s{}Object.defineProperty(i,"name",{value:t});function a(o){var c;let l=r?.Parent?new i:this;n(l,o),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:o=>r?.Parent&&o instanceof r.Parent?!0:o?._zod?.traits?.has(t)}),Object.defineProperty(a,"name",{value:t}),a}var Vs=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Fm={};function An(t){return t&&Object.assign(Fm,t),Fm}var nt={};es(nt,{BIGINT_FORMAT_RANGES:()=>BP,Class:()=>lx,NUMBER_FORMAT_RANGES:()=>vx,aborted:()=>pa,allowsEval:()=>fx,assert:()=>gV,assertEqual:()=>dV,assertIs:()=>fV,assertNever:()=>hV,assertNotEqual:()=>mV,assignProp:()=>mx,cached:()=>Vl,captureStackTrace:()=>Bm,cleanEnum:()=>IV,cleanRegex:()=>Jl,clone:()=>Es,createTransparentProxy:()=>wV,defineLazy:()=>_t,esc:()=>ua,escapeRegex:()=>xi,extend:()=>EV,finalizeIssue:()=>ns,floatSafeRemainder:()=>dx,getElementAtPath:()=>vV,getEnumValues:()=>ux,getLengthableOrigin:()=>Ql,getParsedType:()=>_V,getSizableOrigin:()=>WP,isObject:()=>Ro,isPlainObject:()=>Po,issue:()=>yx,joinValues:()=>Hm,jsonStringifyReplacer:()=>px,merge:()=>TV,normalizeParams:()=>be,nullish:()=>Kl,numKeys:()=>xV,omit:()=>kV,optionalKeys:()=>gx,partial:()=>RV,pick:()=>SV,prefixIssues:()=>Ts,primitiveTypes:()=>HP,promiseAllObject:()=>yV,propertyKeyTypes:()=>hx,randomString:()=>bV,required:()=>PV,stringifyPrimitive:()=>Wm,unwrapMessage:()=>Gl});function dV(t){return t}function mV(t){return t}function fV(t){}function hV(t){throw new Error}function gV(t){}function ux(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,s])=>e.indexOf(+n)===-1).map(([n,s])=>s)}function Hm(t,e="|"){return t.map(r=>Wm(r)).join(e)}function px(t,e){return typeof e=="bigint"?e.toString():e}function Vl(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Kl(t){return t==null}function Jl(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function dx(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}function _t(t,e,r){Object.defineProperty(t,e,{get(){{let s=r();return t[e]=s,s}throw new Error("cached value already set")},set(s){Object.defineProperty(t,e,{value:s})},configurable:!0})}function mx(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function vV(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function yV(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let s={};for(let i=0;i{};function Ro(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var fx=Vl(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Po(t){if(Ro(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(Ro(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function xV(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var _V=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},hx=new Set(["string","number","symbol"]),HP=new Set(["string","number","bigint","boolean","symbol","undefined"]);function xi(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Es(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function be(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function wV(t){let e;return new Proxy({},{get(r,n,s){return e??(e=t()),Reflect.get(e,n,s)},set(r,n,s,i){return e??(e=t()),Reflect.set(e,n,s,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,s){return e??(e=t()),Reflect.defineProperty(e,n,s)}})}function Wm(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function gx(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var vx={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},BP={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function SV(t,e){let r={},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&(r[s]=n.shape[s])}return Es(t,{...t._zod.def,shape:r,checks:[]})}function kV(t,e){let r={...t._zod.def.shape},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&delete r[s]}return Es(t,{...t._zod.def,shape:r,checks:[]})}function EV(t,e){if(!Po(e))throw new Error("Invalid input to extend: expected a plain object");let r={...t._zod.def,get shape(){let n={...t._zod.def.shape,...e};return mx(this,"shape",n),n},checks:[]};return Es(t,r)}function TV(t,e){return Es(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return mx(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function RV(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in n))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=t?new t({type:"optional",innerType:n[i]}):n[i])}else for(let i in n)s[i]=t?new t({type:"optional",innerType:n[i]}):n[i];return Es(e,{...e._zod.def,shape:s,checks:[]})}function PV(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new t({type:"nonoptional",innerType:n[i]}))}else for(let i in n)s[i]=new t({type:"nonoptional",innerType:n[i]});return Es(e,{...e._zod.def,shape:s,checks:[]})}function pa(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Gl(t){return typeof t=="string"?t:t?.message}function ns(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let s=Gl(t.inst?._zod.def?.error?.(t))??Gl(e?.error?.(t))??Gl(r.customError?.(t))??Gl(r.localeError?.(t))??"Invalid input";n.message=s}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function WP(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Ql(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function yx(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function IV(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var lx=class{constructor(...e){}};var ZP=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(e,px,2)},enumerable:!0}),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Zm=F("$ZodError",ZP),bx=F("$ZodError",ZP,{Parent:Error});function GP(t,e=r=>r.message){let r={},n=[];for(let s of t.issues)s.path.length>0?(r[s.path[0]]=r[s.path[0]]||[],r[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:r}}function VP(t,e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>s({issues:o}));else if(a.code==="invalid_key")s({issues:a.issues});else if(a.code==="invalid_element")s({issues:a.issues});else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;c(e,r,n,s)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new Vs;if(a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>ns(c,i,An())));throw Bm(o,s?.callee),o}return a.value};var JP=t=>async(e,r,n,s)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>ns(c,i,An())));throw Bm(o,s?.callee),o}return a.value};var xx=t=>(e,r,n)=>{let s=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Vs;return i.issues.length?{success:!1,error:new(t??Zm)(i.issues.map(a=>ns(a,s,An())))}:{success:!0,data:i.value}},Yl=xx(bx),_x=t=>async(e,r,n)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=e._zod.run({value:r,issues:[]},s);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(a=>ns(a,s,An())))}:{success:!0,data:i.value}},Gm=_x(bx);var QP=/^[cC][^\s-]{8,}$/,YP=/^[0-9a-z]+$/,XP=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,eI=/^[0-9a-vA-V]{20}$/,tI=/^[A-Za-z0-9]{27}$/,rI=/^[a-zA-Z0-9_-]{21}$/,nI=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var sI=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,wx=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;var iI=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var OV="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function aI(){return new RegExp(OV,"u")}var oI=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,cI=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,lI=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,uI=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,pI=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Sx=/^[A-Za-z0-9_-]*$/,dI=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/;var mI=/^\+(?:[0-9]){6,14}[0-9]$/,fI="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",hI=new RegExp(`^${fI}$`);function gI(t){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function vI(t){return new RegExp(`^${gI(t)}$`)}function yI(t){let e=gI({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-]\\d{2}:\\d{2})");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${fI}T(?:${n})$`)}var bI=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)};var xI=/^\d+$/,_I=/^-?\d+(?:\.\d+)?/i,wI=/true|false/i,SI=/null/i;var kI=/^[^A-Z]*$/,EI=/^[^a-z]*$/;var Ar=F("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),TI={number:"number",bigint:"bigint",object:"date"},Ex=F("$ZodCheckLessThan",(t,e)=>{Ar.init(t,e);let r=TI[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.maximum:s.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{Ar.init(t,e);let r=TI[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.minimum:s.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?s.minimum=e.value:s.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),RI=F("$ZodCheckMultipleOf",(t,e)=>{Ar.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):dx(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),PI=F("$ZodCheckNumberFormat",(t,e)=>{Ar.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[s,i]=vx[e.format];t._zod.onattach.push(a=>{let o=a._zod.bag;o.format=e.format,o.minimum=s,o.maximum=i,r&&(o.pattern=xI)}),t._zod.check=a=>{let o=a.value;if(r){if(!Number.isInteger(o)){a.issues.push({expected:n,format:e.format,code:"invalid_type",input:o,inst:t});return}if(!Number.isSafeInteger(o)){o>0?a.issues.push({input:o,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort}):a.issues.push({input:o,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort});return}}oi&&a.issues.push({origin:"number",input:o,code:"too_big",maximum:i,inst:t})}});var II=F("$ZodCheckMaxLength",(t,e)=>{var r;Ar.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Kl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let s=n.value;if(s.length<=e.maximum)return;let a=Ql(s);n.issues.push({origin:a,code:"too_big",maximum:e.maximum,inclusive:!0,input:s,inst:t,continue:!e.abort})}}),CI=F("$ZodCheckMinLength",(t,e)=>{var r;Ar.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Kl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>s&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let s=n.value;if(s.length>=e.minimum)return;let a=Ql(s);n.issues.push({origin:a,code:"too_small",minimum:e.minimum,inclusive:!0,input:s,inst:t,continue:!e.abort})}}),OI=F("$ZodCheckLengthEquals",(t,e)=>{var r;Ar.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Kl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag;s.minimum=e.length,s.maximum=e.length,s.length=e.length}),t._zod.check=n=>{let s=n.value,i=s.length;if(i===e.length)return;let a=Ql(s),o=i>e.length;n.issues.push({origin:a,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),Xl=F("$ZodCheckStringFormat",(t,e)=>{var r,n;Ar.init(t,e),t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=s=>{e.pattern.lastIndex=0,!e.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:e.format,input:s.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),AI=F("$ZodCheckRegex",(t,e)=>{Xl.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),jI=F("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=kI),Xl.init(t,e)}),NI=F("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=EI),Xl.init(t,e)}),DI=F("$ZodCheckIncludes",(t,e)=>{Ar.init(t,e);let r=xi(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(s=>{let i=s._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=s=>{s.value.includes(e.includes,e.position)||s.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:s.value,inst:t,continue:!e.abort})}}),MI=F("$ZodCheckStartsWith",(t,e)=>{Ar.init(t,e);let r=new RegExp(`^${xi(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),zI=F("$ZodCheckEndsWith",(t,e)=>{Ar.init(t,e);let r=new RegExp(`.*${xi(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});var $I=F("$ZodCheckOverwrite",(t,e)=>{Ar.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Vm=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(` +`),{exitCode:Wu.SUCCESS}}}});function zG(t){let e=HTe[t];if(!e)throw new Error(`Unknown event type: ${t}`);return e}var HTe,$G=ye(()=>{"use strict";mP();hP();vP();bP();_P();mP();hP();vP();bP();_P();HTe={context:dP,"session-init":fP,observation:gP,summarize:yP,"user-message":xP}});var LG={};es(LG,{hookCommand:()=>BTe});async function BTe(t,e){try{let r=PG(t),n=zG(e),s=await wG(),i=r.normalizeInput(s);i.platform=t;let a=await n.execute(i),o=r.formatOutput(a);console.log(JSON.stringify(o)),process.exit(a.exitCode??Wu.SUCCESS)}catch(r){let n=r instanceof Error?r.message:String(r);_.debug("HOOK",`Hook error (fail-open) [${e}]: ${n.slice(0,200)}`),console.log(JSON.stringify(e==="context"?{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""}}:{continue:!0,suppressOutput:!0})),process.exit(Wu.SUCCESS)}}var UG=ye(()=>{"use strict";SG();IG();$G();As();re()});var VTe={};es(VTe,{WorkerService:()=>ex,buildStatusOutput:()=>HG,verifyLicense:()=>BG});module.exports=ql(VTe);var zm=Q(require("path"),1),qG=require("child_process"),wP=require("fs"),FG=require("os");er();var tRe=Object.freeze({status:"aborted"});function F(t,e,r){function n(o,c){var l;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(l=o._zod).traits??(l.traits=new Set),o._zod.traits.add(t),e(o,c);for(let u in a.prototype)u in o||Object.defineProperty(o,u,{value:a.prototype[u].bind(o)});o._zod.constr=a,o._zod.def=c}let s=r?.Parent??Object;class i extends s{}Object.defineProperty(i,"name",{value:t});function a(o){var c;let l=r?.Parent?new i:this;n(l,o),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:o=>r?.Parent&&o instanceof r.Parent?!0:o?._zod?.traits?.has(t)}),Object.defineProperty(a,"name",{value:t}),a}var Vs=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Um={};function An(t){return t&&Object.assign(Um,t),Um}var nt={};es(nt,{BIGINT_FORMAT_RANGES:()=>UP,Class:()=>ax,NUMBER_FORMAT_RANGES:()=>fx,aborted:()=>ua,allowsEval:()=>px,assert:()=>uV,assertEqual:()=>aV,assertIs:()=>cV,assertNever:()=>lV,assertNotEqual:()=>oV,assignProp:()=>ux,cached:()=>Gl,captureStackTrace:()=>Fm,cleanEnum:()=>SV,cleanRegex:()=>Kl,clone:()=>ks,createTransparentProxy:()=>gV,defineLazy:()=>_t,esc:()=>la,escapeRegex:()=>xi,extend:()=>bV,finalizeIssue:()=>ns,floatSafeRemainder:()=>lx,getElementAtPath:()=>pV,getEnumValues:()=>ox,getLengthableOrigin:()=>Jl,getParsedType:()=>hV,getSizableOrigin:()=>qP,isObject:()=>To,isPlainObject:()=>Ro,issue:()=>hx,joinValues:()=>qm,jsonStringifyReplacer:()=>cx,merge:()=>xV,normalizeParams:()=>be,nullish:()=>Vl,numKeys:()=>fV,omit:()=>yV,optionalKeys:()=>mx,partial:()=>_V,pick:()=>vV,prefixIssues:()=>Ts,primitiveTypes:()=>LP,promiseAllObject:()=>dV,propertyKeyTypes:()=>dx,randomString:()=>mV,required:()=>wV,stringifyPrimitive:()=>Hm,unwrapMessage:()=>Zl});function aV(t){return t}function oV(t){return t}function cV(t){}function lV(t){throw new Error}function uV(t){}function ox(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,s])=>e.indexOf(+n)===-1).map(([n,s])=>s)}function qm(t,e="|"){return t.map(r=>Hm(r)).join(e)}function cx(t,e){return typeof e=="bigint"?e.toString():e}function Gl(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Vl(t){return t==null}function Kl(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function lx(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}function _t(t,e,r){Object.defineProperty(t,e,{get(){{let s=r();return t[e]=s,s}throw new Error("cached value already set")},set(s){Object.defineProperty(t,e,{value:s})},configurable:!0})}function ux(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function pV(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function dV(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let s={};for(let i=0;i{};function To(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var px=Gl(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Ro(t){if(To(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(To(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function fV(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var hV=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},dx=new Set(["string","number","symbol"]),LP=new Set(["string","number","bigint","boolean","symbol","undefined"]);function xi(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ks(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function be(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function gV(t){let e;return new Proxy({},{get(r,n,s){return e??(e=t()),Reflect.get(e,n,s)},set(r,n,s,i){return e??(e=t()),Reflect.set(e,n,s,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,s){return e??(e=t()),Reflect.defineProperty(e,n,s)}})}function Hm(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function mx(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var fx={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},UP={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function vV(t,e){let r={},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&(r[s]=n.shape[s])}return ks(t,{...t._zod.def,shape:r,checks:[]})}function yV(t,e){let r={...t._zod.def.shape},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&delete r[s]}return ks(t,{...t._zod.def,shape:r,checks:[]})}function bV(t,e){if(!Ro(e))throw new Error("Invalid input to extend: expected a plain object");let r={...t._zod.def,get shape(){let n={...t._zod.def.shape,...e};return ux(this,"shape",n),n},checks:[]};return ks(t,r)}function xV(t,e){return ks(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return ux(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function _V(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in n))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=t?new t({type:"optional",innerType:n[i]}):n[i])}else for(let i in n)s[i]=t?new t({type:"optional",innerType:n[i]}):n[i];return ks(e,{...e._zod.def,shape:s,checks:[]})}function wV(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new t({type:"nonoptional",innerType:n[i]}))}else for(let i in n)s[i]=new t({type:"nonoptional",innerType:n[i]});return ks(e,{...e._zod.def,shape:s,checks:[]})}function ua(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Zl(t){return typeof t=="string"?t:t?.message}function ns(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let s=Zl(t.inst?._zod.def?.error?.(t))??Zl(e?.error?.(t))??Zl(r.customError?.(t))??Zl(r.localeError?.(t))??"Invalid input";n.message=s}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function qP(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Jl(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function hx(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function SV(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var ax=class{constructor(...e){}};var FP=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(e,cx,2)},enumerable:!0}),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Bm=F("$ZodError",FP),gx=F("$ZodError",FP,{Parent:Error});function HP(t,e=r=>r.message){let r={},n=[];for(let s of t.issues)s.path.length>0?(r[s.path[0]]=r[s.path[0]]||[],r[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:r}}function BP(t,e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>s({issues:o}));else if(a.code==="invalid_key")s({issues:a.issues});else if(a.code==="invalid_element")s({issues:a.issues});else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;c(e,r,n,s)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new Vs;if(a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>ns(c,i,An())));throw Fm(o,s?.callee),o}return a.value};var ZP=t=>async(e,r,n,s)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>ns(c,i,An())));throw Fm(o,s?.callee),o}return a.value};var vx=t=>(e,r,n)=>{let s=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Vs;return i.issues.length?{success:!1,error:new(t??Bm)(i.issues.map(a=>ns(a,s,An())))}:{success:!0,data:i.value}},Ql=vx(gx),yx=t=>async(e,r,n)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=e._zod.run({value:r,issues:[]},s);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(a=>ns(a,s,An())))}:{success:!0,data:i.value}},Wm=yx(gx);var GP=/^[cC][^\s-]{8,}$/,VP=/^[0-9a-z]+$/,KP=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,JP=/^[0-9a-vA-V]{20}$/,QP=/^[A-Za-z0-9]{27}$/,YP=/^[a-zA-Z0-9_-]{21}$/,XP=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var eI=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,bx=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;var tI=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var kV="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function rI(){return new RegExp(kV,"u")}var nI=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,sI=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,iI=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,aI=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,oI=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,xx=/^[A-Za-z0-9_-]*$/,cI=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/;var lI=/^\+(?:[0-9]){6,14}[0-9]$/,uI="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",pI=new RegExp(`^${uI}$`);function dI(t){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function mI(t){return new RegExp(`^${dI(t)}$`)}function fI(t){let e=dI({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-]\\d{2}:\\d{2})");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${uI}T(?:${n})$`)}var hI=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)};var gI=/^\d+$/,vI=/^-?\d+(?:\.\d+)?/i,yI=/true|false/i,bI=/null/i;var xI=/^[^A-Z]*$/,_I=/^[^a-z]*$/;var Ar=F("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),wI={number:"number",bigint:"bigint",object:"date"},wx=F("$ZodCheckLessThan",(t,e)=>{Ar.init(t,e);let r=wI[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.maximum:s.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{Ar.init(t,e);let r=wI[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.minimum:s.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?s.minimum=e.value:s.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),SI=F("$ZodCheckMultipleOf",(t,e)=>{Ar.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):lx(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),EI=F("$ZodCheckNumberFormat",(t,e)=>{Ar.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[s,i]=fx[e.format];t._zod.onattach.push(a=>{let o=a._zod.bag;o.format=e.format,o.minimum=s,o.maximum=i,r&&(o.pattern=gI)}),t._zod.check=a=>{let o=a.value;if(r){if(!Number.isInteger(o)){a.issues.push({expected:n,format:e.format,code:"invalid_type",input:o,inst:t});return}if(!Number.isSafeInteger(o)){o>0?a.issues.push({input:o,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort}):a.issues.push({input:o,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort});return}}oi&&a.issues.push({origin:"number",input:o,code:"too_big",maximum:i,inst:t})}});var kI=F("$ZodCheckMaxLength",(t,e)=>{var r;Ar.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Vl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let s=n.value;if(s.length<=e.maximum)return;let a=Jl(s);n.issues.push({origin:a,code:"too_big",maximum:e.maximum,inclusive:!0,input:s,inst:t,continue:!e.abort})}}),TI=F("$ZodCheckMinLength",(t,e)=>{var r;Ar.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Vl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>s&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let s=n.value;if(s.length>=e.minimum)return;let a=Jl(s);n.issues.push({origin:a,code:"too_small",minimum:e.minimum,inclusive:!0,input:s,inst:t,continue:!e.abort})}}),RI=F("$ZodCheckLengthEquals",(t,e)=>{var r;Ar.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Vl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag;s.minimum=e.length,s.maximum=e.length,s.length=e.length}),t._zod.check=n=>{let s=n.value,i=s.length;if(i===e.length)return;let a=Jl(s),o=i>e.length;n.issues.push({origin:a,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),Yl=F("$ZodCheckStringFormat",(t,e)=>{var r,n;Ar.init(t,e),t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=s=>{e.pattern.lastIndex=0,!e.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:e.format,input:s.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),PI=F("$ZodCheckRegex",(t,e)=>{Yl.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),II=F("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=xI),Yl.init(t,e)}),CI=F("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=_I),Yl.init(t,e)}),OI=F("$ZodCheckIncludes",(t,e)=>{Ar.init(t,e);let r=xi(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(s=>{let i=s._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=s=>{s.value.includes(e.includes,e.position)||s.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:s.value,inst:t,continue:!e.abort})}}),AI=F("$ZodCheckStartsWith",(t,e)=>{Ar.init(t,e);let r=new RegExp(`^${xi(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),jI=F("$ZodCheckEndsWith",(t,e)=>{Ar.init(t,e);let r=new RegExp(`.*${xi(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});var NI=F("$ZodCheckOverwrite",(t,e)=>{Ar.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var Zm=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(` `).filter(a=>a),s=Math.min(...n.map(a=>a.length-a.trimStart().length)),i=n.map(a=>a.slice(s)).map(a=>" ".repeat(this.indent*2)+a);for(let a of i)this.content.push(a)}compile(){let e=Function,r=this?.args,s=[...(this?.content??[""]).map(i=>` ${i}`)];return new e(...r,s.join(` -`))}};var UI={major:4,minor:0,patch:0};var wt=F("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=UI;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let s of n)for(let i of s._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let s=(i,a,o)=>{let c=pa(i),l;for(let u of a){if(u._zod.def.when){if(!u._zod.def.when(i))continue}else if(c)continue;let p=i.issues.length,d=u._zod.check(i);if(d instanceof Promise&&o?.async===!1)throw new Vs;if(l||d instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await d,i.issues.length!==p&&(c||(c=pa(i,p)))});else{if(i.issues.length===p)continue;c||(c=pa(i,p))}}return l?l.then(()=>i):i};t._zod.run=(i,a)=>{let o=t._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new Vs;return o.then(c=>s(c,n,a))}return s(o,n,a)}}t["~standard"]={validate:s=>{try{let i=Yl(t,s);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Gm(t,s).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}}),Jm=F("$ZodString",(t,e)=>{wt.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??bI(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),Rt=F("$ZodStringFormat",(t,e)=>{Xl.init(t,e),Jm.init(t,e)}),JI=F("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=sI),Rt.init(t,e)}),QI=F("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=wx(n))}else e.pattern??(e.pattern=wx());Rt.init(t,e)}),YI=F("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=iI),Rt.init(t,e)}),XI=F("$ZodURL",(t,e)=>{Rt.init(t,e),t._zod.check=r=>{try{let n=r.value,s=new URL(n),i=s.href;e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(s.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:dI.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(s.protocol.endsWith(":")?s.protocol.slice(0,-1):s.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),!n.endsWith("/")&&i.endsWith("/")?r.value=i.slice(0,-1):r.value=i;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),eC=F("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=aI()),Rt.init(t,e)}),tC=F("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=rI),Rt.init(t,e)}),rC=F("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=QP),Rt.init(t,e)}),nC=F("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=YP),Rt.init(t,e)}),sC=F("$ZodULID",(t,e)=>{e.pattern??(e.pattern=XP),Rt.init(t,e)}),iC=F("$ZodXID",(t,e)=>{e.pattern??(e.pattern=eI),Rt.init(t,e)}),aC=F("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=tI),Rt.init(t,e)}),oC=F("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=yI(e)),Rt.init(t,e)}),cC=F("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=hI),Rt.init(t,e)}),lC=F("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=vI(e)),Rt.init(t,e)}),uC=F("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=nI),Rt.init(t,e)}),pC=F("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=oI),Rt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),dC=F("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=cI),Rt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv6"}),t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),mC=F("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=lI),Rt.init(t,e)}),fC=F("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=uI),Rt.init(t,e),t._zod.check=r=>{let[n,s]=r.value.split("/");try{if(!s)throw new Error;let i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${n}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function hC(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var gC=F("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=pI),Rt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{hC(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function AV(t){if(!Sx.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return hC(r)}var vC=F("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Sx),Rt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{AV(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),yC=F("$ZodE164",(t,e)=>{e.pattern??(e.pattern=mI),Rt.init(t,e)});function jV(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let s=JSON.parse(atob(n));return!("typ"in s&&s?.typ!=="JWT"||!s.alg||e&&(!("alg"in s)||s.alg!==e))}catch{return!1}}var bC=F("$ZodJWT",(t,e)=>{Rt.init(t,e),t._zod.check=r=>{jV(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var Px=F("$ZodNumber",(t,e)=>{wt.init(t,e),t._zod.pattern=t._zod.bag.pattern??_I,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let s=r.value;if(typeof s=="number"&&!Number.isNaN(s)&&Number.isFinite(s))return r;let i=typeof s=="number"?Number.isNaN(s)?"NaN":Number.isFinite(s)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:s,inst:t,...i?{received:i}:{}}),r}}),xC=F("$ZodNumber",(t,e)=>{PI.init(t,e),Px.init(t,e)}),_C=F("$ZodBoolean",(t,e)=>{wt.init(t,e),t._zod.pattern=wI,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let s=r.value;return typeof s=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:s,inst:t}),r}});var wC=F("$ZodNull",(t,e)=>{wt.init(t,e),t._zod.pattern=SI,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let s=r.value;return s===null||r.issues.push({expected:"null",code:"invalid_type",input:s,inst:t}),r}});var SC=F("$ZodUnknown",(t,e)=>{wt.init(t,e),t._zod.parse=r=>r}),kC=F("$ZodNever",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});function qI(t,e,r){t.issues.length&&e.issues.push(...Ts(r,t.issues)),e.value[r]=t.value}var EC=F("$ZodArray",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!Array.isArray(s))return r.issues.push({expected:"array",code:"invalid_type",input:s,inst:t}),r;r.value=Array(s.length);let i=[];for(let a=0;aqI(l,r,a))):qI(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function Km(t,e,r){t.issues.length&&e.issues.push(...Ts(r,t.issues)),e.value[r]=t.value}function FI(t,e,r,n){t.issues.length?n[r]===void 0?r in n?e.value[r]=void 0:e.value[r]=t.value:e.issues.push(...Ts(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var TC=F("$ZodObject",(t,e)=>{wt.init(t,e);let r=Vl(()=>{let p=Object.keys(e.shape);for(let m of p)if(!(e.shape[m]instanceof wt))throw new Error(`Invalid element at key "${m}": expected a Zod schema`);let d=gx(e.shape);return{shape:e.shape,keys:p,keySet:new Set(p),numKeys:p.length,optionalKeys:new Set(d)}});_t(t._zod,"propValues",()=>{let p=e.shape,d={};for(let m in p){let f=p[m]._zod;if(f.values){d[m]??(d[m]=new Set);for(let g of f.values)d[m].add(g)}}return d});let n=p=>{let d=new Vm(["shape","payload","ctx"]),m=r.value,f=y=>{let b=ua(y);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};d.write("const input = payload.value;");let g=Object.create(null),v=0;for(let y of m.keys)g[y]=`key_${v++}`;d.write("const newResult = {}");for(let y of m.keys)if(m.optionalKeys.has(y)){let b=g[y];d.write(`const ${b} = ${f(y)};`);let x=ua(y);d.write(` +`))}};var MI={major:4,minor:0,patch:0};var wt=F("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=MI;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let s of n)for(let i of s._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let s=(i,a,o)=>{let c=ua(i),l;for(let u of a){if(u._zod.def.when){if(!u._zod.def.when(i))continue}else if(c)continue;let p=i.issues.length,d=u._zod.check(i);if(d instanceof Promise&&o?.async===!1)throw new Vs;if(l||d instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await d,i.issues.length!==p&&(c||(c=ua(i,p)))});else{if(i.issues.length===p)continue;c||(c=ua(i,p))}}return l?l.then(()=>i):i};t._zod.run=(i,a)=>{let o=t._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new Vs;return o.then(c=>s(c,n,a))}return s(o,n,a)}}t["~standard"]={validate:s=>{try{let i=Ql(t,s);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Wm(t,s).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}}),Vm=F("$ZodString",(t,e)=>{wt.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??hI(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),Rt=F("$ZodStringFormat",(t,e)=>{Yl.init(t,e),Vm.init(t,e)}),ZI=F("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=eI),Rt.init(t,e)}),GI=F("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=bx(n))}else e.pattern??(e.pattern=bx());Rt.init(t,e)}),VI=F("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=tI),Rt.init(t,e)}),KI=F("$ZodURL",(t,e)=>{Rt.init(t,e),t._zod.check=r=>{try{let n=r.value,s=new URL(n),i=s.href;e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(s.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:cI.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(s.protocol.endsWith(":")?s.protocol.slice(0,-1):s.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),!n.endsWith("/")&&i.endsWith("/")?r.value=i.slice(0,-1):r.value=i;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),JI=F("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=rI()),Rt.init(t,e)}),QI=F("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=YP),Rt.init(t,e)}),YI=F("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=GP),Rt.init(t,e)}),XI=F("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=VP),Rt.init(t,e)}),eC=F("$ZodULID",(t,e)=>{e.pattern??(e.pattern=KP),Rt.init(t,e)}),tC=F("$ZodXID",(t,e)=>{e.pattern??(e.pattern=JP),Rt.init(t,e)}),rC=F("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=QP),Rt.init(t,e)}),nC=F("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=fI(e)),Rt.init(t,e)}),sC=F("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=pI),Rt.init(t,e)}),iC=F("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=mI(e)),Rt.init(t,e)}),aC=F("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=XP),Rt.init(t,e)}),oC=F("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=nI),Rt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),cC=F("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=sI),Rt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv6"}),t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),lC=F("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=iI),Rt.init(t,e)}),uC=F("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=aI),Rt.init(t,e),t._zod.check=r=>{let[n,s]=r.value.split("/");try{if(!s)throw new Error;let i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${n}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function pC(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var dC=F("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=oI),Rt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{pC(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function TV(t){if(!xx.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return pC(r)}var mC=F("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=xx),Rt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{TV(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),fC=F("$ZodE164",(t,e)=>{e.pattern??(e.pattern=lI),Rt.init(t,e)});function RV(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let s=JSON.parse(atob(n));return!("typ"in s&&s?.typ!=="JWT"||!s.alg||e&&(!("alg"in s)||s.alg!==e))}catch{return!1}}var hC=F("$ZodJWT",(t,e)=>{Rt.init(t,e),t._zod.check=r=>{RV(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var kx=F("$ZodNumber",(t,e)=>{wt.init(t,e),t._zod.pattern=t._zod.bag.pattern??vI,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let s=r.value;if(typeof s=="number"&&!Number.isNaN(s)&&Number.isFinite(s))return r;let i=typeof s=="number"?Number.isNaN(s)?"NaN":Number.isFinite(s)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:s,inst:t,...i?{received:i}:{}}),r}}),gC=F("$ZodNumber",(t,e)=>{EI.init(t,e),kx.init(t,e)}),vC=F("$ZodBoolean",(t,e)=>{wt.init(t,e),t._zod.pattern=yI,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let s=r.value;return typeof s=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:s,inst:t}),r}});var yC=F("$ZodNull",(t,e)=>{wt.init(t,e),t._zod.pattern=bI,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let s=r.value;return s===null||r.issues.push({expected:"null",code:"invalid_type",input:s,inst:t}),r}});var bC=F("$ZodUnknown",(t,e)=>{wt.init(t,e),t._zod.parse=r=>r}),xC=F("$ZodNever",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});function zI(t,e,r){t.issues.length&&e.issues.push(...Ts(r,t.issues)),e.value[r]=t.value}var _C=F("$ZodArray",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!Array.isArray(s))return r.issues.push({expected:"array",code:"invalid_type",input:s,inst:t}),r;r.value=Array(s.length);let i=[];for(let a=0;azI(l,r,a))):zI(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function Gm(t,e,r){t.issues.length&&e.issues.push(...Ts(r,t.issues)),e.value[r]=t.value}function $I(t,e,r,n){t.issues.length?n[r]===void 0?r in n?e.value[r]=void 0:e.value[r]=t.value:e.issues.push(...Ts(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var wC=F("$ZodObject",(t,e)=>{wt.init(t,e);let r=Gl(()=>{let p=Object.keys(e.shape);for(let m of p)if(!(e.shape[m]instanceof wt))throw new Error(`Invalid element at key "${m}": expected a Zod schema`);let d=mx(e.shape);return{shape:e.shape,keys:p,keySet:new Set(p),numKeys:p.length,optionalKeys:new Set(d)}});_t(t._zod,"propValues",()=>{let p=e.shape,d={};for(let m in p){let f=p[m]._zod;if(f.values){d[m]??(d[m]=new Set);for(let g of f.values)d[m].add(g)}}return d});let n=p=>{let d=new Zm(["shape","payload","ctx"]),m=r.value,f=y=>{let b=la(y);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};d.write("const input = payload.value;");let g=Object.create(null),v=0;for(let y of m.keys)g[y]=`key_${v++}`;d.write("const newResult = {}");for(let y of m.keys)if(m.optionalKeys.has(y)){let b=g[y];d.write(`const ${b} = ${f(y)};`);let x=la(y);d.write(` if (${b}.issues.length) { if (input[${x}] === undefined) { if (${x} in input) { @@ -950,10 +950,10 @@ ${X.dim}No previous sessions found for this project yet.${X.reset} `)}else{let b=g[y];d.write(`const ${b} = ${f(y)};`),d.write(` if (${b}.issues.length) payload.issues = payload.issues.concat(${b}.issues.map(iss => ({ ...iss, - path: iss.path ? [${ua(y)}, ...iss.path] : [${ua(y)}] - })));`),d.write(`newResult[${ua(y)}] = ${b}.value`)}d.write("payload.value = newResult;"),d.write("return payload;");let h=d.compile();return(y,b)=>h(p,y,b)},s,i=Ro,a=!Fm.jitless,c=a&&fx.value,l=e.catchall,u;t._zod.parse=(p,d)=>{u??(u=r.value);let m=p.value;if(!i(m))return p.issues.push({expected:"object",code:"invalid_type",input:m,inst:t}),p;let f=[];if(a&&c&&d?.async===!1&&d.jitless!==!0)s||(s=n(e.shape)),p=s(p,d);else{p.value={};let b=u.shape;for(let x of u.keys){let w=b[x],S=w._zod.run({value:m[x],issues:[]},d),k=w._zod.optin==="optional"&&w._zod.optout==="optional";S instanceof Promise?f.push(S.then(E=>k?FI(E,p,x,m):Km(E,p,x))):k?FI(S,p,x,m):Km(S,p,x)}}if(!l)return f.length?Promise.all(f).then(()=>p):p;let g=[],v=u.keySet,h=l._zod,y=h.def.type;for(let b of Object.keys(m)){if(v.has(b))continue;if(y==="never"){g.push(b);continue}let x=h.run({value:m[b],issues:[]},d);x instanceof Promise?f.push(x.then(w=>Km(w,p,b))):Km(x,p,b)}return g.length&&p.issues.push({code:"unrecognized_keys",keys:g,input:m,inst:t}),f.length?Promise.all(f).then(()=>p):p}});function HI(t,e,r,n){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(i=>ns(i,n,An())))}),e}var Ix=F("$ZodUnion",(t,e)=>{wt.init(t,e),_t(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),_t(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),_t(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),_t(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(n=>n._zod.pattern);return new RegExp(`^(${r.map(n=>Jl(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let s=!1,i=[];for(let a of e.options){let o=a._zod.run({value:r.value,issues:[]},n);if(o instanceof Promise)i.push(o),s=!0;else{if(o.issues.length===0)return o;i.push(o)}}return s?Promise.all(i).then(a=>HI(a,r,t,n)):HI(i,r,t,n)}}),RC=F("$ZodDiscriminatedUnion",(t,e)=>{Ix.init(t,e);let r=t._zod.parse;_t(t._zod,"propValues",()=>{let s={};for(let i of e.options){let a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[o,c]of Object.entries(a)){s[o]||(s[o]=new Set);for(let l of c)s[o].add(l)}}return s});let n=Vl(()=>{let s=e.options,i=new Map;for(let a of s){let o=a._zod.propValues[e.discriminator];if(!o||o.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let c of o){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});t._zod.parse=(s,i)=>{let a=s.value;if(!Ro(a))return s.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),s;let o=n.value.get(a?.[e.discriminator]);return o?o._zod.run(s,i):e.unionFallback?r(s,i):(s.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:a,path:[e.discriminator],inst:t}),s)}}),PC=F("$ZodIntersection",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value,i=e.left._zod.run({value:s,issues:[]},n),a=e.right._zod.run({value:s,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([c,l])=>BI(r,c,l)):BI(r,i,a)}});function Rx(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Po(t)&&Po(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),s={...t,...e};for(let i of n){let a=Rx(t[i],e[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};s[i]=a.data}return{valid:!0,data:s}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!Po(s))return r.issues.push({expected:"record",code:"invalid_type",input:s,inst:t}),r;let i=[];if(e.keyType._zod.values){let a=e.keyType._zod.values;r.value={};for(let c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let l=e.valueType._zod.run({value:s[c],issues:[]},n);l instanceof Promise?i.push(l.then(u=>{u.issues.length&&r.issues.push(...Ts(c,u.issues)),r.value[c]=u.value})):(l.issues.length&&r.issues.push(...Ts(c,l.issues)),r.value[c]=l.value)}let o;for(let c in s)a.has(c)||(o=o??[],o.push(c));o&&o.length>0&&r.issues.push({code:"unrecognized_keys",input:s,inst:t,keys:o})}else{r.value={};for(let a of Reflect.ownKeys(s)){if(a==="__proto__")continue;let o=e.keyType._zod.run({value:a,issues:[]},n);if(o instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(o.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:o.issues.map(l=>ns(l,n,An())),input:a,path:[a],inst:t}),r.value[o.value]=o.value;continue}let c=e.valueType._zod.run({value:s[a],issues:[]},n);c instanceof Promise?i.push(c.then(l=>{l.issues.length&&r.issues.push(...Ts(a,l.issues)),r.value[o.value]=l.value})):(c.issues.length&&r.issues.push(...Ts(a,c.issues)),r.value[o.value]=c.value)}}return i.length?Promise.all(i).then(()=>r):r}});var CC=F("$ZodEnum",(t,e)=>{wt.init(t,e);let r=ux(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>hx.has(typeof n)).map(n=>typeof n=="string"?xi(n):n.toString()).join("|")})$`),t._zod.parse=(n,s)=>{let i=n.value;return t._zod.values.has(i)||n.issues.push({code:"invalid_value",values:r,input:i,inst:t}),n}}),OC=F("$ZodLiteral",(t,e)=>{wt.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?xi(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,n)=>{let s=r.value;return t._zod.values.has(s)||r.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),r}});var AC=F("$ZodTransform",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=e.transform(r.value,r);if(n.async)return(s instanceof Promise?s:Promise.resolve(s)).then(a=>(r.value=a,r));if(s instanceof Promise)throw new Vs;return r.value=s,r}}),jC=F("$ZodOptional",(t,e)=>{wt.init(t,e),t._zod.optin="optional",t._zod.optout="optional",_t(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),_t(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Jl(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,n):r.value===void 0?r:e.innerType._zod.run(r,n)}),NC=F("$ZodNullable",(t,e)=>{wt.init(t,e),_t(t._zod,"optin",()=>e.innerType._zod.optin),_t(t._zod,"optout",()=>e.innerType._zod.optout),_t(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Jl(r.source)}|null)$`):void 0}),_t(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),DC=F("$ZodDefault",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>WI(i,e)):WI(s,e)}});function WI(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var MC=F("$ZodPrefault",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),zC=F("$ZodNonOptional",(t,e)=>{wt.init(t,e),_t(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>ZI(i,t)):ZI(s,t)}});function ZI(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var $C=F("$ZodCatch",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"optout",()=>e.innerType._zod.optout),_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>ns(a,n,An()))},input:r.value}),r.issues=[]),r)):(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(i=>ns(i,n,An()))},input:r.value}),r.issues=[]),r)}});var LC=F("$ZodPipe",(t,e)=>{wt.init(t,e),_t(t._zod,"values",()=>e.in._zod.values),_t(t._zod,"optin",()=>e.in._zod.optin),_t(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,n)=>{let s=e.in._zod.run(r,n);return s instanceof Promise?s.then(i=>GI(i,e,n)):GI(s,e,n)}});function GI(t,e,r){return pa(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var UC=F("$ZodReadonly",(t,e)=>{wt.init(t,e),_t(t._zod,"propValues",()=>e.innerType._zod.propValues),_t(t._zod,"values",()=>e.innerType._zod.values),_t(t._zod,"optin",()=>e.innerType._zod.optin),_t(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(VI):VI(s)}});function VI(t){return t.value=Object.freeze(t.value),t}var qC=F("$ZodCustom",(t,e)=>{Ar.init(t,e),wt.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,s=e.fn(n);if(s instanceof Promise)return s.then(i=>KI(i,r,n,t));KI(s,r,n,t)}});function KI(t,e,r,n){if(!t){let s={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(s.params=n._zod.def.params),e.issues.push(yx(s))}}var NV=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},DV=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(n){return t[n]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return n=>{switch(n.code){case"invalid_type":return`Invalid input: expected ${n.expected}, received ${NV(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${Wm(n.values[0])}`:`Invalid option: expected one of ${Hm(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Too big: expected ${n.origin??"value"} to have ${s}${n.maximum.toString()} ${i.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Too small: expected ${n.origin} to have ${s}${n.minimum.toString()} ${i.unit}`:`Too small: expected ${n.origin} to be ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Invalid string: must start with "${s.prefix}"`:s.format==="ends_with"?`Invalid string: must end with "${s.suffix}"`:s.format==="includes"?`Invalid string: must include "${s.includes}"`:s.format==="regex"?`Invalid string: must match pattern ${s.pattern}`:`Invalid ${r[s.format]??n.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${n.divisor}`;case"unrecognized_keys":return`Unrecognized key${n.keys.length>1?"s":""}: ${Hm(n.keys,", ")}`;case"invalid_key":return`Invalid key in ${n.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${n.origin}`;default:return"Invalid input"}}};function FC(){return{localeError:DV()}}var Cx=class{constructor(){this._map=new Map,this._idmap=new Map}add(e,...r){let n=r[0];if(this._map.set(e,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function MV(){return new Cx}var eu=MV();function HC(t,e){return new t({type:"string",...be(e)})}function BC(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...be(e)})}function Ox(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...be(e)})}function WC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...be(e)})}function ZC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...be(e)})}function GC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...be(e)})}function VC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...be(e)})}function KC(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...be(e)})}function JC(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...be(e)})}function QC(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...be(e)})}function YC(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...be(e)})}function XC(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...be(e)})}function eO(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...be(e)})}function tO(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...be(e)})}function rO(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...be(e)})}function nO(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...be(e)})}function sO(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...be(e)})}function iO(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...be(e)})}function aO(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...be(e)})}function oO(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...be(e)})}function cO(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...be(e)})}function lO(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...be(e)})}function uO(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...be(e)})}function pO(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...be(e)})}function dO(t,e){return new t({type:"string",format:"date",check:"string_format",...be(e)})}function mO(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...be(e)})}function fO(t,e){return new t({type:"string",format:"duration",check:"string_format",...be(e)})}function hO(t,e){return new t({type:"number",checks:[],...be(e)})}function gO(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...be(e)})}function vO(t,e){return new t({type:"boolean",...be(e)})}function yO(t,e){return new t({type:"null",...be(e)})}function bO(t){return new t({type:"unknown"})}function xO(t,e){return new t({type:"never",...be(e)})}function Qm(t,e){return new Ex({check:"less_than",...be(e),value:t,inclusive:!1})}function tu(t,e){return new Ex({check:"less_than",...be(e),value:t,inclusive:!0})}function Ym(t,e){return new Tx({check:"greater_than",...be(e),value:t,inclusive:!1})}function ru(t,e){return new Tx({check:"greater_than",...be(e),value:t,inclusive:!0})}function Xm(t,e){return new RI({check:"multiple_of",...be(e),value:t})}function ef(t,e){return new II({check:"max_length",...be(e),maximum:t})}function Io(t,e){return new CI({check:"min_length",...be(e),minimum:t})}function tf(t,e){return new OI({check:"length_equals",...be(e),length:t})}function Ax(t,e){return new AI({check:"string_format",format:"regex",...be(e),pattern:t})}function jx(t){return new jI({check:"string_format",format:"lowercase",...be(t)})}function Nx(t){return new NI({check:"string_format",format:"uppercase",...be(t)})}function Dx(t,e){return new DI({check:"string_format",format:"includes",...be(e),includes:t})}function Mx(t,e){return new MI({check:"string_format",format:"starts_with",...be(e),prefix:t})}function zx(t,e){return new zI({check:"string_format",format:"ends_with",...be(e),suffix:t})}function da(t){return new $I({check:"overwrite",tx:t})}function $x(t){return da(e=>e.normalize(t))}function Lx(){return da(t=>t.trim())}function Ux(){return da(t=>t.toLowerCase())}function qx(){return da(t=>t.toUpperCase())}function _O(t,e,r){return new t({type:"array",element:e,...be(r)})}function wO(t,e,r){let n=be(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function SO(t,e,r){return new t({type:"custom",check:"custom",fn:e,...be(r)})}function Co(t){return!!t._zod}function ss(t,e){return Co(t)?Yl(t,e):t.safeParse(e)}function rf(t){if(!t)return;let e;if(Co(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function kO(t){if(Co(t)){let i=t._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var su={};es(su,{ZodISODate:()=>TO,ZodISODateTime:()=>EO,ZodISODuration:()=>PO,ZodISOTime:()=>RO,date:()=>Hx,datetime:()=>Fx,duration:()=>Wx,time:()=>Bx});var EO=F("ZodISODateTime",(t,e)=>{oC.init(t,e),Dt.init(t,e)});function Fx(t){return pO(EO,t)}var TO=F("ZodISODate",(t,e)=>{cC.init(t,e),Dt.init(t,e)});function Hx(t){return dO(TO,t)}var RO=F("ZodISOTime",(t,e)=>{lC.init(t,e),Dt.init(t,e)});function Bx(t){return mO(RO,t)}var PO=F("ZodISODuration",(t,e)=>{uC.init(t,e),Dt.init(t,e)});function Wx(t){return fO(PO,t)}var IO=(t,e)=>{Zm.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>VP(t,r)},flatten:{value:r=>GP(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},t1e=F("ZodError",IO),iu=F("ZodError",IO,{Parent:Error});var CO=KP(iu),OO=JP(iu),AO=xx(iu),jO=_x(iu);var Ut=F("ZodType",(t,e)=>(wt.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>Es(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>CO(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>AO(t,r,n),t.parseAsync=async(r,n)=>OO(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>jO(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(j7(r,n)),t.superRefine=r=>t.check(N7(r)),t.overwrite=r=>t.check(da(r)),t.optional=()=>zt(t),t.nullable=()=>MO(t),t.nullish=()=>zt(MO(t)),t.nonoptional=r=>T7(t,r),t.array=()=>Ze(t),t.or=r=>Pt([t,r]),t.and=r=>sf(t,r),t.transform=r=>Gx(t,FO(r)),t.default=r=>S7(t,r),t.prefault=r=>E7(t,r),t.catch=r=>P7(t,r),t.pipe=r=>Gx(t,r),t.readonly=()=>O7(t),t.describe=r=>{let n=t.clone();return eu.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return eu.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return eu.get(t);let n=t.clone();return eu.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),zO=F("_ZodString",(t,e)=>{Jm.init(t,e),Ut.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(Ax(...n)),t.includes=(...n)=>t.check(Dx(...n)),t.startsWith=(...n)=>t.check(Mx(...n)),t.endsWith=(...n)=>t.check(zx(...n)),t.min=(...n)=>t.check(Io(...n)),t.max=(...n)=>t.check(ef(...n)),t.length=(...n)=>t.check(tf(...n)),t.nonempty=(...n)=>t.check(Io(1,...n)),t.lowercase=n=>t.check(jx(n)),t.uppercase=n=>t.check(Nx(n)),t.trim=()=>t.check(Lx()),t.normalize=(...n)=>t.check($x(...n)),t.toLowerCase=()=>t.check(Ux()),t.toUpperCase=()=>t.check(qx())}),WV=F("ZodString",(t,e)=>{Jm.init(t,e),zO.init(t,e),t.email=r=>t.check(BC(ZV,r)),t.url=r=>t.check(KC(GV,r)),t.jwt=r=>t.check(uO(c7,r)),t.emoji=r=>t.check(JC(VV,r)),t.guid=r=>t.check(Ox(NO,r)),t.uuid=r=>t.check(WC(nf,r)),t.uuidv4=r=>t.check(ZC(nf,r)),t.uuidv6=r=>t.check(GC(nf,r)),t.uuidv7=r=>t.check(VC(nf,r)),t.nanoid=r=>t.check(QC(KV,r)),t.guid=r=>t.check(Ox(NO,r)),t.cuid=r=>t.check(YC(JV,r)),t.cuid2=r=>t.check(XC(QV,r)),t.ulid=r=>t.check(eO(YV,r)),t.base64=r=>t.check(oO(i7,r)),t.base64url=r=>t.check(cO(a7,r)),t.xid=r=>t.check(tO(XV,r)),t.ksuid=r=>t.check(rO(e7,r)),t.ipv4=r=>t.check(nO(t7,r)),t.ipv6=r=>t.check(sO(r7,r)),t.cidrv4=r=>t.check(iO(n7,r)),t.cidrv6=r=>t.check(aO(s7,r)),t.e164=r=>t.check(lO(o7,r)),t.datetime=r=>t.check(Fx(r)),t.date=r=>t.check(Hx(r)),t.time=r=>t.check(Bx(r)),t.duration=r=>t.check(Wx(r))});function $(t){return HC(WV,t)}var Dt=F("ZodStringFormat",(t,e)=>{Rt.init(t,e),zO.init(t,e)}),ZV=F("ZodEmail",(t,e)=>{YI.init(t,e),Dt.init(t,e)});var NO=F("ZodGUID",(t,e)=>{JI.init(t,e),Dt.init(t,e)});var nf=F("ZodUUID",(t,e)=>{QI.init(t,e),Dt.init(t,e)});var GV=F("ZodURL",(t,e)=>{XI.init(t,e),Dt.init(t,e)});var VV=F("ZodEmoji",(t,e)=>{eC.init(t,e),Dt.init(t,e)});var KV=F("ZodNanoID",(t,e)=>{tC.init(t,e),Dt.init(t,e)});var JV=F("ZodCUID",(t,e)=>{rC.init(t,e),Dt.init(t,e)});var QV=F("ZodCUID2",(t,e)=>{nC.init(t,e),Dt.init(t,e)});var YV=F("ZodULID",(t,e)=>{sC.init(t,e),Dt.init(t,e)});var XV=F("ZodXID",(t,e)=>{iC.init(t,e),Dt.init(t,e)});var e7=F("ZodKSUID",(t,e)=>{aC.init(t,e),Dt.init(t,e)});var t7=F("ZodIPv4",(t,e)=>{pC.init(t,e),Dt.init(t,e)});var r7=F("ZodIPv6",(t,e)=>{dC.init(t,e),Dt.init(t,e)});var n7=F("ZodCIDRv4",(t,e)=>{mC.init(t,e),Dt.init(t,e)});var s7=F("ZodCIDRv6",(t,e)=>{fC.init(t,e),Dt.init(t,e)});var i7=F("ZodBase64",(t,e)=>{gC.init(t,e),Dt.init(t,e)});var a7=F("ZodBase64URL",(t,e)=>{vC.init(t,e),Dt.init(t,e)});var o7=F("ZodE164",(t,e)=>{yC.init(t,e),Dt.init(t,e)});var c7=F("ZodJWT",(t,e)=>{bC.init(t,e),Dt.init(t,e)});var $O=F("ZodNumber",(t,e)=>{Px.init(t,e),Ut.init(t,e),t.gt=(n,s)=>t.check(Ym(n,s)),t.gte=(n,s)=>t.check(ru(n,s)),t.min=(n,s)=>t.check(ru(n,s)),t.lt=(n,s)=>t.check(Qm(n,s)),t.lte=(n,s)=>t.check(tu(n,s)),t.max=(n,s)=>t.check(tu(n,s)),t.int=n=>t.check(DO(n)),t.safe=n=>t.check(DO(n)),t.positive=n=>t.check(Ym(0,n)),t.nonnegative=n=>t.check(ru(0,n)),t.negative=n=>t.check(Qm(0,n)),t.nonpositive=n=>t.check(tu(0,n)),t.multipleOf=(n,s)=>t.check(Xm(n,s)),t.step=(n,s)=>t.check(Xm(n,s)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function at(t){return hO($O,t)}var l7=F("ZodNumberFormat",(t,e)=>{xC.init(t,e),$O.init(t,e)});function DO(t){return gO(l7,t)}var u7=F("ZodBoolean",(t,e)=>{_C.init(t,e),Ut.init(t,e)});function cr(t){return vO(u7,t)}var p7=F("ZodNull",(t,e)=>{wC.init(t,e),Ut.init(t,e)});function LO(t){return yO(p7,t)}var d7=F("ZodUnknown",(t,e)=>{SC.init(t,e),Ut.init(t,e)});function Mt(){return bO(d7)}var m7=F("ZodNever",(t,e)=>{kC.init(t,e),Ut.init(t,e)});function f7(t){return xO(m7,t)}var h7=F("ZodArray",(t,e)=>{EC.init(t,e),Ut.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(Io(r,n)),t.nonempty=r=>t.check(Io(1,r)),t.max=(r,n)=>t.check(ef(r,n)),t.length=(r,n)=>t.check(tf(r,n)),t.unwrap=()=>t.element});function Ze(t,e){return _O(h7,t,e)}var UO=F("ZodObject",(t,e)=>{TC.init(t,e),Ut.init(t,e),nt.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>sn(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Mt()}),t.loose=()=>t.clone({...t._zod.def,catchall:Mt()}),t.strict=()=>t.clone({...t._zod.def,catchall:f7()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>nt.extend(t,r),t.merge=r=>nt.merge(t,r),t.pick=r=>nt.pick(t,r),t.omit=r=>nt.omit(t,r),t.partial=(...r)=>nt.partial(HO,t,r[0]),t.required=(...r)=>nt.required(BO,t,r[0])});function ie(t,e){let r={type:"object",get shape(){return nt.assignProp(this,"shape",{...t}),this.shape},...nt.normalizeParams(e)};return new UO(r)}function $r(t,e){return new UO({type:"object",get shape(){return nt.assignProp(this,"shape",{...t}),this.shape},catchall:Mt(),...nt.normalizeParams(e)})}var qO=F("ZodUnion",(t,e)=>{Ix.init(t,e),Ut.init(t,e),t.options=e.options});function Pt(t,e){return new qO({type:"union",options:t,...nt.normalizeParams(e)})}var g7=F("ZodDiscriminatedUnion",(t,e)=>{qO.init(t,e),RC.init(t,e)});function Vx(t,e,r){return new g7({type:"union",options:e,discriminator:t,...nt.normalizeParams(r)})}var v7=F("ZodIntersection",(t,e)=>{PC.init(t,e),Ut.init(t,e)});function sf(t,e){return new v7({type:"intersection",left:t,right:e})}var y7=F("ZodRecord",(t,e)=>{IC.init(t,e),Ut.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function St(t,e,r){return new y7({type:"record",keyType:t,valueType:e,...nt.normalizeParams(r)})}var Zx=F("ZodEnum",(t,e)=>{CC.init(t,e),Ut.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,s)=>{let i={};for(let a of n)if(r.has(a))i[a]=e.entries[a];else throw new Error(`Key ${a} not found in enum`);return new Zx({...e,checks:[],...nt.normalizeParams(s),entries:i})},t.exclude=(n,s)=>{let i={...e.entries};for(let a of n)if(r.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new Zx({...e,checks:[],...nt.normalizeParams(s),entries:i})}});function sn(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Zx({type:"enum",entries:r,...nt.normalizeParams(e)})}var b7=F("ZodLiteral",(t,e)=>{OC.init(t,e),Ut.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function me(t,e){return new b7({type:"literal",values:Array.isArray(t)?t:[t],...nt.normalizeParams(e)})}var x7=F("ZodTransform",(t,e)=>{AC.init(t,e),Ut.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=i=>{if(typeof i=="string")r.issues.push(nt.issue(i,r.value,e));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=t),a.continue??(a.continue=!0),r.issues.push(nt.issue(a))}};let s=e.transform(r.value,r);return s instanceof Promise?s.then(i=>(r.value=i,r)):(r.value=s,r)}});function FO(t){return new x7({type:"transform",transform:t})}var HO=F("ZodOptional",(t,e)=>{jC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function zt(t){return new HO({type:"optional",innerType:t})}var _7=F("ZodNullable",(t,e)=>{NC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function MO(t){return new _7({type:"nullable",innerType:t})}var w7=F("ZodDefault",(t,e)=>{DC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function S7(t,e){return new w7({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var k7=F("ZodPrefault",(t,e)=>{MC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function E7(t,e){return new k7({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var BO=F("ZodNonOptional",(t,e)=>{zC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function T7(t,e){return new BO({type:"nonoptional",innerType:t,...nt.normalizeParams(e)})}var R7=F("ZodCatch",(t,e)=>{$C.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function P7(t,e){return new R7({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var I7=F("ZodPipe",(t,e)=>{LC.init(t,e),Ut.init(t,e),t.in=e.in,t.out=e.out});function Gx(t,e){return new I7({type:"pipe",in:t,out:e})}var C7=F("ZodReadonly",(t,e)=>{UC.init(t,e),Ut.init(t,e)});function O7(t){return new C7({type:"readonly",innerType:t})}var WO=F("ZodCustom",(t,e)=>{qC.init(t,e),Ut.init(t,e)});function A7(t){let e=new Ar({check:"custom"});return e._zod.check=t,e}function ZO(t,e){return wO(WO,t??(()=>!0),e)}function j7(t,e={}){return SO(WO,t,e)}function N7(t){let e=A7(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(nt.issue(n,r.value,e._zod.def));else{let s=n;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=e),s.continue??(s.continue=!e._zod.def.abort),r.issues.push(nt.issue(s))}},t(r.value,r)));return e}function Kx(t,e){return Gx(FO(t),e)}An(FC());var Qx="2025-11-25";var GO=[Qx,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],_i="io.modelcontextprotocol/related-task",of="2.0",rr=ZO(t=>t!==null&&(typeof t=="object"||typeof t=="function")),VO=Pt([$(),at().int()]),KO=$(),V1e=$r({ttl:at().optional(),pollInterval:at().optional()}),D7=ie({ttl:at().optional()}),M7=ie({taskId:$()}),Yx=$r({progressToken:VO.optional(),[_i]:M7.optional()}),xn=ie({_meta:Yx.optional()}),au=xn.extend({task:D7.optional()}),JO=t=>au.safeParse(t).success,xr=ie({method:$(),params:xn.loose().optional()}),jn=ie({_meta:Yx.optional()}),Nn=ie({method:$(),params:jn.loose().optional()}),_r=$r({_meta:Yx.optional()}),cf=Pt([$(),at().int()]),QO=ie({jsonrpc:me(of),id:cf,...xr.shape}).strict(),Xx=t=>QO.safeParse(t).success,YO=ie({jsonrpc:me(of),...Nn.shape}).strict(),XO=t=>YO.safeParse(t).success,e_=ie({jsonrpc:me(of),id:cf,result:_r}).strict(),ou=t=>e_.safeParse(t).success;var Se;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Se||(Se={}));var t_=ie({jsonrpc:me(of),id:cf.optional(),error:ie({code:at().int(),message:$(),data:Mt().optional()})}).strict();var eA=t=>t_.safeParse(t).success;var tA=Pt([QO,YO,e_,t_]),K1e=Pt([e_,t_]),ma=_r.strict(),z7=jn.extend({requestId:cf.optional(),reason:$().optional()}),lf=Nn.extend({method:me("notifications/cancelled"),params:z7}),$7=ie({src:$(),mimeType:$().optional(),sizes:Ze($()).optional(),theme:sn(["light","dark"]).optional()}),cu=ie({icons:Ze($7).optional()}),Oo=ie({name:$(),title:$().optional()}),rA=Oo.extend({...Oo.shape,...cu.shape,version:$(),websiteUrl:$().optional(),description:$().optional()}),L7=sf(ie({applyDefaults:cr().optional()}),St($(),Mt())),U7=Kx(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,sf(ie({form:L7.optional(),url:rr.optional()}),St($(),Mt()).optional())),q7=$r({list:rr.optional(),cancel:rr.optional(),requests:$r({sampling:$r({createMessage:rr.optional()}).optional(),elicitation:$r({create:rr.optional()}).optional()}).optional()}),F7=$r({list:rr.optional(),cancel:rr.optional(),requests:$r({tools:$r({call:rr.optional()}).optional()}).optional()}),H7=ie({experimental:St($(),rr).optional(),sampling:ie({context:rr.optional(),tools:rr.optional()}).optional(),elicitation:U7.optional(),roots:ie({listChanged:cr().optional()}).optional(),tasks:q7.optional(),extensions:St($(),rr).optional()}),B7=xn.extend({protocolVersion:$(),capabilities:H7,clientInfo:rA}),W7=xr.extend({method:me("initialize"),params:B7});var Z7=ie({experimental:St($(),rr).optional(),logging:rr.optional(),completions:rr.optional(),prompts:ie({listChanged:cr().optional()}).optional(),resources:ie({subscribe:cr().optional(),listChanged:cr().optional()}).optional(),tools:ie({listChanged:cr().optional()}).optional(),tasks:F7.optional(),extensions:St($(),rr).optional()}),r_=_r.extend({protocolVersion:$(),capabilities:Z7,serverInfo:rA,instructions:$().optional()}),G7=Nn.extend({method:me("notifications/initialized"),params:jn.optional()});var uf=xr.extend({method:me("ping"),params:xn.optional()}),V7=ie({progress:at(),total:zt(at()),message:zt($())}),K7=ie({...jn.shape,...V7.shape,progressToken:VO}),pf=Nn.extend({method:me("notifications/progress"),params:K7}),J7=xn.extend({cursor:KO.optional()}),lu=xr.extend({params:J7.optional()}),uu=_r.extend({nextCursor:KO.optional()}),Q7=sn(["working","input_required","completed","failed","cancelled"]),pu=ie({taskId:$(),status:Q7,ttl:Pt([at(),LO()]),createdAt:$(),lastUpdatedAt:$(),pollInterval:zt(at()),statusMessage:zt($())}),fa=_r.extend({task:pu}),Y7=jn.merge(pu),du=Nn.extend({method:me("notifications/tasks/status"),params:Y7}),df=xr.extend({method:me("tasks/get"),params:xn.extend({taskId:$()})}),mf=_r.merge(pu),ff=xr.extend({method:me("tasks/result"),params:xn.extend({taskId:$()})}),J1e=_r.loose(),hf=lu.extend({method:me("tasks/list")}),gf=uu.extend({tasks:Ze(pu)}),vf=xr.extend({method:me("tasks/cancel"),params:xn.extend({taskId:$()})}),nA=_r.merge(pu),sA=ie({uri:$(),mimeType:zt($()),_meta:St($(),Mt()).optional()}),iA=sA.extend({text:$()}),n_=$().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),aA=sA.extend({blob:n_}),mu=sn(["user","assistant"]),Ao=ie({audience:Ze(mu).optional(),priority:at().min(0).max(1).optional(),lastModified:su.datetime({offset:!0}).optional()}),oA=ie({...Oo.shape,...cu.shape,uri:$(),description:zt($()),mimeType:zt($()),size:zt(at()),annotations:Ao.optional(),_meta:zt($r({}))}),X7=ie({...Oo.shape,...cu.shape,uriTemplate:$(),description:zt($()),mimeType:zt($()),annotations:Ao.optional(),_meta:zt($r({}))}),eK=lu.extend({method:me("resources/list")}),s_=uu.extend({resources:Ze(oA)}),tK=lu.extend({method:me("resources/templates/list")}),i_=uu.extend({resourceTemplates:Ze(X7)}),a_=xn.extend({uri:$()}),rK=a_,nK=xr.extend({method:me("resources/read"),params:rK}),o_=_r.extend({contents:Ze(Pt([iA,aA]))}),c_=Nn.extend({method:me("notifications/resources/list_changed"),params:jn.optional()}),sK=a_,iK=xr.extend({method:me("resources/subscribe"),params:sK}),aK=a_,oK=xr.extend({method:me("resources/unsubscribe"),params:aK}),cK=jn.extend({uri:$()}),lK=Nn.extend({method:me("notifications/resources/updated"),params:cK}),uK=ie({name:$(),description:zt($()),required:zt(cr())}),pK=ie({...Oo.shape,...cu.shape,description:zt($()),arguments:zt(Ze(uK)),_meta:zt($r({}))}),dK=lu.extend({method:me("prompts/list")}),l_=uu.extend({prompts:Ze(pK)}),mK=xn.extend({name:$(),arguments:St($(),$()).optional()}),fK=xr.extend({method:me("prompts/get"),params:mK}),u_=ie({type:me("text"),text:$(),annotations:Ao.optional(),_meta:St($(),Mt()).optional()}),p_=ie({type:me("image"),data:n_,mimeType:$(),annotations:Ao.optional(),_meta:St($(),Mt()).optional()}),d_=ie({type:me("audio"),data:n_,mimeType:$(),annotations:Ao.optional(),_meta:St($(),Mt()).optional()}),hK=ie({type:me("tool_use"),name:$(),id:$(),input:St($(),Mt()),_meta:St($(),Mt()).optional()}),gK=ie({type:me("resource"),resource:Pt([iA,aA]),annotations:Ao.optional(),_meta:St($(),Mt()).optional()}),vK=oA.extend({type:me("resource_link")}),m_=Pt([u_,p_,d_,vK,gK]),yK=ie({role:mu,content:m_}),f_=_r.extend({description:$().optional(),messages:Ze(yK)}),h_=Nn.extend({method:me("notifications/prompts/list_changed"),params:jn.optional()}),bK=ie({title:$().optional(),readOnlyHint:cr().optional(),destructiveHint:cr().optional(),idempotentHint:cr().optional(),openWorldHint:cr().optional()}),xK=ie({taskSupport:sn(["required","optional","forbidden"]).optional()}),cA=ie({...Oo.shape,...cu.shape,description:$().optional(),inputSchema:ie({type:me("object"),properties:St($(),rr).optional(),required:Ze($()).optional()}).catchall(Mt()),outputSchema:ie({type:me("object"),properties:St($(),rr).optional(),required:Ze($()).optional()}).catchall(Mt()).optional(),annotations:bK.optional(),execution:xK.optional(),_meta:St($(),Mt()).optional()}),_K=lu.extend({method:me("tools/list")}),g_=uu.extend({tools:Ze(cA)}),jo=_r.extend({content:Ze(m_).default([]),structuredContent:St($(),Mt()).optional(),isError:cr().optional()}),Q1e=jo.or(_r.extend({toolResult:Mt()})),wK=au.extend({name:$(),arguments:St($(),Mt()).optional()}),SK=xr.extend({method:me("tools/call"),params:wK}),v_=Nn.extend({method:me("notifications/tools/list_changed"),params:jn.optional()}),lA=ie({autoRefresh:cr().default(!0),debounceMs:at().int().nonnegative().default(300)}),uA=sn(["debug","info","notice","warning","error","critical","alert","emergency"]),kK=xn.extend({level:uA}),EK=xr.extend({method:me("logging/setLevel"),params:kK}),TK=jn.extend({level:uA,logger:$().optional(),data:Mt()}),RK=Nn.extend({method:me("notifications/message"),params:TK}),PK=ie({name:$().optional()}),IK=ie({hints:Ze(PK).optional(),costPriority:at().min(0).max(1).optional(),speedPriority:at().min(0).max(1).optional(),intelligencePriority:at().min(0).max(1).optional()}),CK=ie({mode:sn(["auto","required","none"]).optional()}),OK=ie({type:me("tool_result"),toolUseId:$().describe("The unique identifier for the corresponding tool call."),content:Ze(m_).default([]),structuredContent:ie({}).loose().optional(),isError:cr().optional(),_meta:St($(),Mt()).optional()}),AK=Vx("type",[u_,p_,d_]),af=Vx("type",[u_,p_,d_,hK,OK]),jK=ie({role:mu,content:Pt([af,Ze(af)]),_meta:St($(),Mt()).optional()}),NK=au.extend({messages:Ze(jK),modelPreferences:IK.optional(),systemPrompt:$().optional(),includeContext:sn(["none","thisServer","allServers"]).optional(),temperature:at().optional(),maxTokens:at().int(),stopSequences:Ze($()).optional(),metadata:rr.optional(),tools:Ze(cA).optional(),toolChoice:CK.optional()}),y_=xr.extend({method:me("sampling/createMessage"),params:NK}),b_=_r.extend({model:$(),stopReason:zt(sn(["endTurn","stopSequence","maxTokens"]).or($())),role:mu,content:AK}),x_=_r.extend({model:$(),stopReason:zt(sn(["endTurn","stopSequence","maxTokens","toolUse"]).or($())),role:mu,content:Pt([af,Ze(af)])}),DK=ie({type:me("boolean"),title:$().optional(),description:$().optional(),default:cr().optional()}),MK=ie({type:me("string"),title:$().optional(),description:$().optional(),minLength:at().optional(),maxLength:at().optional(),format:sn(["email","uri","date","date-time"]).optional(),default:$().optional()}),zK=ie({type:sn(["number","integer"]),title:$().optional(),description:$().optional(),minimum:at().optional(),maximum:at().optional(),default:at().optional()}),$K=ie({type:me("string"),title:$().optional(),description:$().optional(),enum:Ze($()),default:$().optional()}),LK=ie({type:me("string"),title:$().optional(),description:$().optional(),oneOf:Ze(ie({const:$(),title:$()})),default:$().optional()}),UK=ie({type:me("string"),title:$().optional(),description:$().optional(),enum:Ze($()),enumNames:Ze($()).optional(),default:$().optional()}),qK=Pt([$K,LK]),FK=ie({type:me("array"),title:$().optional(),description:$().optional(),minItems:at().optional(),maxItems:at().optional(),items:ie({type:me("string"),enum:Ze($())}),default:Ze($()).optional()}),HK=ie({type:me("array"),title:$().optional(),description:$().optional(),minItems:at().optional(),maxItems:at().optional(),items:ie({anyOf:Ze(ie({const:$(),title:$()}))}),default:Ze($()).optional()}),BK=Pt([FK,HK]),WK=Pt([UK,qK,BK]),ZK=Pt([WK,DK,MK,zK]),GK=au.extend({mode:me("form").optional(),message:$(),requestedSchema:ie({type:me("object"),properties:St($(),ZK),required:Ze($()).optional()})}),VK=au.extend({mode:me("url"),message:$(),elicitationId:$(),url:$().url()}),KK=Pt([GK,VK]),__=xr.extend({method:me("elicitation/create"),params:KK}),JK=jn.extend({elicitationId:$()}),QK=Nn.extend({method:me("notifications/elicitation/complete"),params:JK}),w_=_r.extend({action:sn(["accept","decline","cancel"]),content:Kx(t=>t===null?void 0:t,St($(),Pt([$(),at(),cr(),Ze($())])).optional())}),YK=ie({type:me("ref/resource"),uri:$()});var XK=ie({type:me("ref/prompt"),name:$()}),eJ=xn.extend({ref:Pt([XK,YK]),argument:ie({name:$(),value:$()}),context:ie({arguments:St($(),$()).optional()}).optional()}),tJ=xr.extend({method:me("completion/complete"),params:eJ});var S_=_r.extend({completion:$r({values:Ze($()).max(100),total:zt(at().int()),hasMore:zt(cr())})}),rJ=ie({uri:$().startsWith("file://"),name:$().optional(),_meta:St($(),Mt()).optional()}),nJ=xr.extend({method:me("roots/list"),params:xn.optional()}),sJ=_r.extend({roots:Ze(rJ)}),iJ=Nn.extend({method:me("notifications/roots/list_changed"),params:jn.optional()}),Y1e=Pt([uf,W7,tJ,EK,fK,dK,eK,tK,nK,iK,oK,SK,_K,df,ff,hf,vf]),X1e=Pt([lf,pf,G7,iJ,du]),ePe=Pt([ma,b_,x_,w_,sJ,mf,gf,fa]),tPe=Pt([uf,y_,__,nJ,df,ff,hf,vf]),rPe=Pt([lf,pf,RK,lK,c_,v_,h_,du,QK]),nPe=Pt([ma,r_,S_,f_,l_,s_,i_,o_,jo,g_,mf,gf,fa]),ve=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===Se.UrlElicitationRequired&&n){let s=n;if(s.elicitations)return new Jx(s.elicitations,r)}return new t(e,r,n)}},Jx=class extends ve{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(Se.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function wi(t){return t==="completed"||t==="failed"||t==="cancelled"}var MPe=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function k_(t){let r=rf(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=kO(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function E_(t,e){let r=ss(t,e);if(!r.success)throw r.error;return r.data}var pJ=6e4,yf=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(lf,r=>{this._oncancel(r)}),this.setNotificationHandler(pf,r=>{this._onprogress(r)}),this.setRequestHandler(uf,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(df,async(r,n)=>{let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new ve(Se.InvalidParams,"Failed to retrieve task: Task not found");return{...s}}),this.setRequestHandler(ff,async(r,n)=>{let s=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let o;for(;o=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(o.type==="response"||o.type==="error"){let c=o.message,l=c.id,u=this._requestResolvers.get(l);if(u)if(this._requestResolvers.delete(l),o.type==="response")u(c);else{let p=c,d=new ve(p.error.code,p.error.message,p.error.data);u(d)}else{let p=o.type==="response"?"Response":"Error";this._onerror(new Error(`${p} handler missing for request ${l}`))}continue}await this._transport?.send(o.message,{relatedRequestId:n.requestId})}}let a=await this._taskStore.getTask(i,n.sessionId);if(!a)throw new ve(Se.InvalidParams,`Task not found: ${i}`);if(!wi(a.status))return await this._waitForTaskUpdate(i,n.signal),await s();if(wi(a.status)){let o=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...o,_meta:{...o._meta,[_i]:{taskId:i}}}}return await s()};return await s()}),this.setRequestHandler(hf,async(r,n)=>{try{let{tasks:s,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:s,nextCursor:i,_meta:{}}}catch(s){throw new ve(Se.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(vf,async(r,n)=>{try{let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new ve(Se.InvalidParams,`Task not found: ${r.params.taskId}`);if(wi(s.status))throw new ve(Se.InvalidParams,`Cannot cancel task in terminal status: ${s.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new ve(Se.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(s){throw s instanceof ve?s:new ve(Se.InvalidRequest,`Failed to cancel task: ${s instanceof Error?s.message:String(s)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,s,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(s,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:s})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),ve.fromError(Se.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let s=this._transport?.onmessage;this._transport.onmessage=(i,a)=>{s?.(i,a),ou(i)||eA(i)?this._onresponse(i):Xx(i)?this._onrequest(i,a):XO(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=ve.fromError(Se.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,s=this._transport,i=e.params?._meta?.[_i]?.taskId;if(n===void 0){let u={jsonrpc:"2.0",id:e.id,error:{code:Se.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:u,timestamp:Date.now()},s?.sessionId).catch(p=>this._onerror(new Error(`Failed to enqueue error response: ${p}`))):s?.send(u).catch(p=>this._onerror(new Error(`Failed to send an error response: ${p}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(e.id,a);let o=JO(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,s?.sessionId):void 0,l={signal:a.signal,sessionId:s?.sessionId,_meta:e.params?._meta,sendNotification:async u=>{if(a.signal.aborted)return;let p={relatedRequestId:e.id};i&&(p.relatedTask={taskId:i}),await this.notification(u,p)},sendRequest:async(u,p,d)=>{if(a.signal.aborted)throw new ve(Se.ConnectionClosed,"Request was cancelled");let m={...d,relatedRequestId:e.id};i&&!m.relatedTask&&(m.relatedTask={taskId:i});let f=m.relatedTask?.taskId??i;return f&&c&&await c.updateTaskStatus(f,"input_required"),await this.request(u,p,m)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:o?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{o&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,l)).then(async u=>{if(a.signal.aborted)return;let p={result:u,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:p,timestamp:Date.now()},s?.sessionId):await s?.send(p)},async u=>{if(a.signal.aborted)return;let p={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(u.code)?u.code:Se.InternalError,message:u.message??"Internal error",...u.data!==void 0&&{data:u.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:p,timestamp:Date.now()},s?.sessionId):await s?.send(p)}).catch(u=>this._onerror(new Error(`Failed to send response: ${u}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===a&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,s=Number(r),i=this._progressHandlers.get(s);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(s),o=this._timeoutInfo.get(s);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(s)}catch(c){this._responseHandlers.delete(s),this._progressHandlers.delete(s),this._cleanupTimeout(s),a(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),ou(e))n(e);else{let a=new ve(e.error.code,e.error.message,e.error.data);n(a)}return}let s=this._responseHandlers.get(r);if(s===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(ou(e)&&e.result&&typeof e.result=="object"){let a=e.result;if(a.task&&typeof a.task=="object"){let o=a.task;typeof o.taskId=="string"&&(i=!0,this._taskProgressTokens.set(o.taskId,r))}}if(i||this._progressHandlers.delete(r),ou(e))s(e);else{let a=ve.fromError(e.error.code,e.error.message,e.error.data);s(a)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:s}=n??{};if(!s){try{yield{type:"result",result:await this.request(e,r,n)}}catch(a){yield{type:"error",error:a instanceof ve?a:new ve(Se.InternalError,String(a))}}return}let i;try{let a=await this.request(e,fa,n);if(a.task)i=a.task.taskId,yield{type:"taskCreated",task:a.task};else throw new ve(Se.InternalError,"Task creation did not return a task");for(;;){let o=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:o},wi(o.status)){o.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:o.status==="failed"?yield{type:"error",error:new ve(Se.InternalError,`Task ${i} failed`)}:o.status==="cancelled"&&(yield{type:"error",error:new ve(Se.InternalError,`Task ${i} was cancelled`)});return}if(o.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=o.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(l=>setTimeout(l,c)),n?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof ve?a:new ve(Se.InternalError,String(a))}}}request(e,r,n){let{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a,task:o,relatedTask:c}=n??{};return new Promise((l,u)=>{let p=y=>{u(y)};if(!this._transport){p(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),o&&this.assertTaskCapability(e.method)}catch(y){p(y);return}n?.signal?.throwIfAborted();let d=this._requestMessageId++,m={...e,jsonrpc:"2.0",id:d};n?.onprogress&&(this._progressHandlers.set(d,n.onprogress),m.params={...e.params,_meta:{...e.params?._meta||{},progressToken:d}}),o&&(m.params={...m.params,task:o}),c&&(m.params={...m.params,_meta:{...m.params?._meta||{},[_i]:c}});let f=y=>{this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:d,reason:String(y)}},{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a}).catch(x=>this._onerror(new Error(`Failed to send cancellation: ${x}`)));let b=y instanceof ve?y:new ve(Se.RequestTimeout,String(y));u(b)};this._responseHandlers.set(d,y=>{if(!n?.signal?.aborted){if(y instanceof Error)return u(y);try{let b=ss(r,y.result);b.success?l(b.data):u(b.error)}catch(b){u(b)}}}),n?.signal?.addEventListener("abort",()=>{f(n?.signal?.reason)});let g=n?.timeout??pJ,v=()=>f(ve.fromError(Se.RequestTimeout,"Request timed out",{timeout:g}));this._setupTimeout(d,g,n?.maxTotalTimeout,v,n?.resetTimeoutOnProgress??!1);let h=c?.taskId;if(h){let y=b=>{let x=this._responseHandlers.get(d);x?x(b):this._onerror(new Error(`Response handler missing for side-channeled request ${d}`))};this._requestResolvers.set(d,y),this._enqueueTaskMessage(h,{type:"request",message:m,timestamp:Date.now()}).catch(b=>{this._cleanupTimeout(d),u(b)})}else this._transport.send(m,{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a}).catch(y=>{this._cleanupTimeout(d),u(y)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},mf,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},gf,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},nA,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let o={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[_i]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:o,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let o={...e,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[_i]:r.relatedTask}}}),this._transport?.send(o,r).catch(c=>this._onerror(c))});return}let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[_i]:r.relatedTask}}}),await this._transport.send(a,r)}setRequestHandler(e,r){let n=k_(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(s,i)=>{let a=E_(e,s);return Promise.resolve(r(a,i))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=k_(e);this._notificationHandlers.set(n,s=>{let i=E_(e,s);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let s=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,s)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let s of n)if(s.type==="request"&&Xx(s.message)){let i=s.message.id,a=this._requestResolvers.get(i);a?(a(new ve(Se.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let s=await this._taskStore?.getTask(e);s?.pollInterval&&(n=s.pollInterval)}catch{}return new Promise((s,i)=>{if(r.aborted){i(new ve(Se.InvalidRequest,"Request cancelled"));return}let a=setTimeout(s,n);r.addEventListener("abort",()=>{clearTimeout(a),i(new ve(Se.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async s=>{if(!e)throw new Error("No request provided");return await n.createTask(s,e.id,{method:e.method,params:e.params},r)},getTask:async s=>{let i=await n.getTask(s,r);if(!i)throw new ve(Se.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(s,i,a)=>{await n.storeTaskResult(s,i,a,r);let o=await n.getTask(s,r);if(o){let c=du.parse({method:"notifications/tasks/status",params:o});await this.notification(c),wi(o.status)&&this._cleanupTaskProgressHandler(s)}},getTaskResult:s=>n.getTaskResult(s,r),updateTaskStatus:async(s,i,a)=>{let o=await n.getTask(s,r);if(!o)throw new ve(Se.InvalidParams,`Task "${s}" not found - it may have been cleaned up`);if(wi(o.status))throw new ve(Se.InvalidParams,`Cannot update task "${s}" from terminal status "${o.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(s,i,a,r);let c=await n.getTask(s,r);if(c){let l=du.parse({method:"notifications/tasks/status",params:c});await this.notification(l),wi(c.status)&&this._cleanupTaskProgressHandler(s)}},listTasks:s=>n.listTasks(s,r)}}};function pA(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function dA(t,e){let r={...t};for(let n in e){let s=n,i=e[s];if(i===void 0)continue;let a=r[s];pA(a)&&pA(i)?r[s]={...a,...i}:r[s]=i}return r}var nD=Q(pw(),1),sD=Q(rD(),1);function fre(){let t=new nD.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,sD.default)(t),t}var Xf=class{constructor(e){this._ajv=e??fre()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var eh=class{constructor(e){this._client=e}async*callToolStream(e,r=jo,n){let s=this._client,i={...n,task:n?.task??(s.isToolTask(e.name)?{}:void 0)},a=s.requestStream({method:"tools/call",params:e},r,i),o=s.getToolOutputValidator(e.name);for await(let c of a){if(c.type==="result"&&o){let l=c.result;if(!l.structuredContent&&!l.isError){yield{type:"error",error:new ve(Se.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(l.structuredContent)try{let u=o(l.structuredContent);if(!u.valid){yield{type:"error",error:new ve(Se.InvalidParams,`Structured content does not match the tool's output schema: ${u.errorMessage}`)};return}}catch(u){if(u instanceof ve){yield{type:"error",error:u};return}yield{type:"error",error:new ve(Se.InvalidParams,`Failed to validate structured content: ${u instanceof Error?u.message:String(u)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function iD(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function aD(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function th(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let s of Object.keys(n)){let i=n[s];r[s]===void 0&&Object.prototype.hasOwnProperty.call(i,"default")&&(r[s]=i.default),r[s]!==void 0&&th(i,r[s])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&th(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&th(r,e)}}function hre(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var Yo=class extends yf{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new Xf,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",v_,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",h_,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",c_,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new eh(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=dA(this._capabilities,e)}setRequestHandler(e,r){let s=rf(e)?.method;if(!s)throw new Error("Schema is missing a method literal");let i;if(Co(s)){let o=s;i=o._zod?.def?.value??o.value}else{let o=s;i=o._def?.value??o.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");let a=i;if(a==="elicitation/create"){let o=async(c,l)=>{let u=ss(__,c);if(!u.success){let y=u.error instanceof Error?u.error.message:String(u.error);throw new ve(Se.InvalidParams,`Invalid elicitation request: ${y}`)}let{params:p}=u.data;p.mode=p.mode??"form";let{supportsFormMode:d,supportsUrlMode:m}=hre(this._capabilities.elicitation);if(p.mode==="form"&&!d)throw new ve(Se.InvalidParams,"Client does not support form-mode elicitation requests");if(p.mode==="url"&&!m)throw new ve(Se.InvalidParams,"Client does not support URL-mode elicitation requests");let f=await Promise.resolve(r(c,l));if(p.task){let y=ss(fa,f);if(!y.success){let b=y.error instanceof Error?y.error.message:String(y.error);throw new ve(Se.InvalidParams,`Invalid task creation result: ${b}`)}return y.data}let g=ss(w_,f);if(!g.success){let y=g.error instanceof Error?g.error.message:String(g.error);throw new ve(Se.InvalidParams,`Invalid elicitation result: ${y}`)}let v=g.data,h=p.mode==="form"?p.requestedSchema:void 0;if(p.mode==="form"&&v.action==="accept"&&v.content&&h&&this._capabilities.elicitation?.form?.applyDefaults)try{th(h,v.content)}catch{}return v};return super.setRequestHandler(e,o)}if(a==="sampling/createMessage"){let o=async(c,l)=>{let u=ss(y_,c);if(!u.success){let v=u.error instanceof Error?u.error.message:String(u.error);throw new ve(Se.InvalidParams,`Invalid sampling request: ${v}`)}let{params:p}=u.data,d=await Promise.resolve(r(c,l));if(p.task){let v=ss(fa,d);if(!v.success){let h=v.error instanceof Error?v.error.message:String(v.error);throw new ve(Se.InvalidParams,`Invalid task creation result: ${h}`)}return v.data}let f=p.tools||p.toolChoice?x_:b_,g=ss(f,d);if(!g.success){let v=g.error instanceof Error?g.error.message:String(g.error);throw new ve(Se.InvalidParams,`Invalid sampling result: ${v}`)}return g.data};return super.setRequestHandler(e,o)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:Qx,capabilities:this._capabilities,clientInfo:this._clientInfo}},r_,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!GO.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){iD(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&aD(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},ma,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},S_,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},ma,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},f_,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},l_,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},s_,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},i_,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},o_,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},ma,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},ma,r)}async callTool(e,r=jo,n){if(this.isToolTaskRequired(e.name))throw new ve(Se.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let s=await this.request({method:"tools/call",params:e},r,n),i=this.getToolOutputValidator(e.name);if(i){if(!s.structuredContent&&!s.isError)throw new ve(Se.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(s.structuredContent)try{let a=i(s.structuredContent);if(!a.valid)throw new ve(Se.InvalidParams,`Structured content does not match the tool's output schema: ${a.errorMessage}`)}catch(a){throw a instanceof ve?a:new ve(Se.InvalidParams,`Failed to validate structured content: ${a instanceof Error?a.message:String(a)}`)}}return s}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let s=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,s)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},g_,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,s){let i=lA.safeParse(n);if(!i.success)throw new Error(`Invalid ${e} listChanged options: ${i.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:a,debounceMs:o}=i.data,{onChanged:c}=n,l=async()=>{if(!a){c(null,null);return}try{let p=await s();c(null,p)}catch(p){let d=p instanceof Error?p:new Error(String(p));c(d,null)}},u=()=>{if(o){let p=this._listChangedDebounceTimers.get(e);p&&clearTimeout(p);let d=setTimeout(l,o);this._listChangedDebounceTimers.set(e,d)}else l()};this.setNotificationHandler(r,u)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var JD=Q(VD(),1),sh=Q(require("node:process"),1),QD=require("node:stream");var nh=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` -`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),Fre(r)}clear(){this._buffer=void 0}};function Fre(t){return tA.parse(JSON.parse(t))}function KD(t){return JSON.stringify(t)+` -`}var Hre=sh.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function Bre(){let t={};for(let e of Hre){let r=sh.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var tc=class{constructor(e){this._readBuffer=new nh,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new QD.PassThrough)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{this._process=(0,JD.default)(this._serverParams.command,this._serverParams.args??[],{env:{...Bre(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:sh.default.platform==="win32",cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{this._readBuffer.append(n),this.processReadBuffer()}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=KD(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};Ln();ah();re();var Cw=require("os"),Ow=require("path"),Gre=["/opt/homebrew/bin","/usr/local/bin","/home/linuxbrew/.linuxbrew/bin",`${(0,Cw.homedir)()}/.cargo/bin`,`${(0,Cw.homedir)()}/.local/bin`];function Vre(t=process.env.PATH){let e=t?t.split(Ow.delimiter).filter(n=>n.length>0):[],r=new Set(e);for(let n of Gre)r.has(n)||(e.push(n),r.add(n));return e.join(Ow.delimiter)}function Wu(t=process.env){return{...t,PATH:Vre(t.PATH)}}Qu();re();Ln();var Qre=5e3;async function _h(t,e={},r=Qre){let n=new Promise((s,i)=>setTimeout(()=>i(new Error(`Fetch timeout after ${r}ms`)),r));return Promise.race([fetch(t,e),n])}var Yre="8.10.4";function wh(t){let e=us();return`http://${e.includes(":")&&!e.startsWith("[")?`[${e}]`:e}:${t}`}async function qw(t){try{return(await _h(`${wh(t)}/api/health`)).ok}catch{return!1}}async function Yu(t,e=3e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function Xu(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function ep(t){try{let e=await _h(`${wh(t)}/api/admin/shutdown`,{method:"POST"});return e.ok?!0:(_.warn("SYSTEM","Shutdown request returned error",{port:t,status:e.status}),!1)}catch(e){return e instanceof Error&&(e.message?.includes("ECONNREFUSED")||e.message?.includes("Fetch timeout"))?(_.debug("SYSTEM","Worker already stopped or not responding",{port:t}),!1):(_.error("SYSTEM","Shutdown request failed unexpectedly",{port:t},e),!1)}}function Xre(){return Yre}async function ene(t){try{let e=await _h(`${wh(t)}/api/version`);return e.ok?(await e.json()).version:null}catch{return _.debug("SYSTEM","Could not fetch worker version",{port:t}),null}}async function EM(t){let e=Xre(),r=await ene(t);return r?{matches:e===r,pluginVersion:e,workerVersion:r}:{matches:!0,pluginVersion:e,workerVersion:r}}re();Qu();var tp=5e3;async function rp(t,e,r){let n=new Promise(i=>setTimeout(()=>{_.warn("SYSTEM",`${r} timed out after ${e}ms`),i({completed:!1})},e)),s=t.then(i=>({completed:!0,result:i}));return Promise.race([s,n])}async function TM(t){_.info("SYSTEM","Shutdown initiated"),ds();let e=await rp(zw(process.pid),tp,"Enumerate child processes"),r=e.completed?e.result??[]:[];if(_.info("SYSTEM","Found child processes",{count:r.length,pids:r}),t.server&&(await rp(tne(t.server),tp,"Close HTTP server"),_.info("SYSTEM","HTTP server closed")),await rp(t.sessionManager.shutdownAll(),tp,"Shutdown sessions"),t.mcpClient&&(await rp(t.mcpClient.close(),tp,"Close MCP client"),_.info("SYSTEM","MCP client closed")),t.dbManager&&await rp(t.dbManager.close(),tp,"Close database"),r.length>0){_.info("SYSTEM","Force killing remaining children");for(let n of r)await $w(n);await Lw(r,5e3)}_.info("SYSTEM","Worker shutdown complete")}async function tne(t){t.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{t.close(n=>n?r(n):e())}),process.platform==="win32"&&(await new Promise(e=>setTimeout(e,500)),_.info("SYSTEM","Waited for Windows port cleanup"))}Qu();re();As();var rne={waitForHealth:Yu,checkVersionMatch:EM,httpShutdown:ep,waitForPortFree:Xu,isPortInUse:qw,spawnDaemon:Ju,writePidFile:Ku,removePidFile:ds,cleanStalePidFile:Mw,getPlatformTimeout:Ia};async function Fw(t,e,r=rne){if(r.cleanStalePidFile(),await r.waitForHealth(t,1e3)){let i=await r.checkVersionMatch(t);if(i.matches)return{ready:!0};if(_.info("SYSTEM","Worker version mismatch detected - auto-restarting",{pluginVersion:i.pluginVersion,workerVersion:i.workerVersion}),await r.httpShutdown(t),!await r.waitForPortFree(t,r.getPlatformTimeout(qt.PORT_IN_USE_WAIT)))return{ready:!1,error:"Port did not free after version mismatch restart"};r.removePidFile()}if(await r.isPortInUse(t))return _.info("SYSTEM","Port in use, waiting for worker to become healthy"),await r.waitForHealth(t,r.getPlatformTimeout(qt.PORT_IN_USE_WAIT))?{ready:!0}:{ready:!1,error:"Port in use but worker not responding"};_.info("SYSTEM","Starting worker daemon");let n=r.spawnDaemon(e,t);return n===void 0?{ready:!1,error:"Failed to spawn worker daemon"}:(r.writePidFile({pid:n,port:t,startedAt:new Date().toISOString()}),await r.waitForHealth(t,r.getPlatformTimeout(qt.POST_SPAWN_WAIT))?{ready:!0}:(r.removePidFile(),{ready:!1,error:"Worker failed to start (health check timeout)"}))}var O6=Q(rd(),1),fE=Q(require("fs"),1),hE=Q(require("path"),1);re();var iE=Q(rd(),1),h6=Q(u6(),1),g6=Q(f6(),1),v6=Q(require("path"),1);er();re();ah();var _fe=[/^https?:\/\/localhost(:\d+)?$/,/^https?:\/\/127\.0\.0\.1(:\d+)?$/,/^https?:\/\/\[::1\](:\d+)?$/];function wfe(t){if(t===void 0||_fe.some(e=>e.test(t)))return!0;if(Ra()){let e=XD();if(e&&t&&new RegExp(`^https?://${e.replace(/\./g,"\\.")}(:\\d+)?$`).test(t))return!0}return!1}function aE(t){let e=[];e.push(iE.default.json({limit:"5mb"})),e.push((0,h6.default)({origin:(s,i)=>{wfe(s)?i(null,!0):(_.warn("SECURITY","CORS request blocked",{origin:s}),i(null,!1))}})),e.push((0,g6.default)()),e.push((s,i,a)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(f=>s.path.endsWith(f)),l=s.path==="/api/logs";if(s.path.startsWith("/health")||s.path==="/"||c||l)return a();let u=Date.now(),p=`${s.method}-${Date.now()}`,d=t(s.method,s.path,s.body);_.info("HTTP",`\u2192 ${s.method} ${s.path}`,{requestId:p},d);let m=i.send.bind(i);i.send=function(f){let g=Date.now()-u;return _.info("HTTP",`\u2190 ${i.statusCode} ${s.path}`,{requestId:p,duration:`${g}ms`}),m(f)},a()});let r=la(),n=v6.default.join(r,"plugin","ui");return e.push(iE.default.static(n)),e}function jg(t,e,r){let n=t.ip||t.connection.remoteAddress||"";if(!(n==="127.0.0.1"||n==="::1"||n==="::ffff:127.0.0.1"||n==="localhost")){_.warn("SECURITY","Admin endpoint access denied - not localhost",{endpoint:t.path,clientIp:n,method:t.method}),e.status(403).json({error:"Forbidden",message:"Admin endpoints are only accessible from localhost"});return}r()}function oE(t,e,r){if(!r||Object.keys(r).length===0||e.includes("/init"))return"";if(e.includes("/observations")){let n=r.tool_name||"?",s=r.tool_input;return`tool=${_.formatTool(n,s)}`}return e.includes("/summarize")?"requesting summary":""}re();var nd=class extends Error{constructor(r,n=500,s,i){super(r);this.statusCode=n;this.code=s;this.details=i;this.name="AppError"}statusCode;code;details};function y6(t,e,r,n){let s={error:t,message:e};return r&&(s.code=r),n&&(s.details=n),s}var b6=(t,e,r,n)=>{let s=t instanceof nd?t.statusCode:500;_.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:s,error:t.message,code:t instanceof nd?t.code:void 0},t);let i=t instanceof nd,a=y6(i&&t.name||"Error",i?t.message:"Internal server error",i?t.code:void 0,i?t.details:void 0);r.status(s).json(a)};function x6(t,e){e.status(404).json(y6("NotFound",`Cannot ${t.method} ${t.path}`))}mE();Ln();var jfe="8.10.4",$g=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,O6.default)(),this.setupMiddleware(),this.setupCoreRoutes()}getHttpServer(){return this.server}async listen(e,r){return new Promise((n,s)=>{this.server=this.app.listen(e,r,()=>{_.info("SYSTEM","HTTP server started",{host:r,port:e,pid:process.pid}),n()}),this.server.on("error",s)})}async close(){this.server&&(this.server.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{this.server.close(n=>n?r(n):e())}),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),this.server=null,_.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(x6),this.app.use(b6)}setupMiddleware(){aE(oE).forEach(s=>this.app.use(s)),this.app.use("/api/auth/login",ad(10,6e4)),this.app.use(ad(1e3,6e4));let r=ph();if(r!=="127.0.0.1"&&r!=="localhost"){let s=Za();_.info("SYSTEM","Enabling authentication middleware for network access",{bind:r,tokenConfigured:s}),s||_.warn("SYSTEM","No CLAUDE_PILOT_REMOTE_TOKEN set - all remote requests will be rejected until a token is configured",{bind:r}),this.app.use(zg),Mg()}}setupCoreRoutes(){let e="TEST-008-wrapper-ipc";this.app.get("/api/health",(r,n)=>{n.status(200).json({status:"ok",build:e,managed:process.env.CLAUDE_PILOT_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),coreReady:this.options.getCoreReady(),mcpReady:this.options.getMcpReady()})}),this.app.get("/api/core-ready",(r,n)=>{this.options.getCoreReady()?n.status(200).json({status:"ready",message:"Core services ready (Database + SearchManager)"}):n.status(503).json({status:"initializing",message:"Core services still initializing, please retry"})}),this.app.get("/api/readiness",(r,n)=>{this.options.getInitializationComplete()?n.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):n.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(r,n)=>{n.status(200).json({version:jfe})}),this.app.get("/api/process-stats",async(r,n)=>{try{let{getProcessStats:s}=await Promise.resolve().then(()=>(Qu(),kM)),i=await s();n.status(200).json({...i,uptime:Math.round((Date.now()-this.startTime)/1e3),platform:process.platform,pid:process.pid})}catch(s){_.error("SYSTEM","Failed to get process stats",{},s),n.status(500).json({error:"Failed to get process stats"})}}),this.app.get("/api/instructions",async(r,n)=>{let s=r.query.topic||"all",i=r.query.operation;try{let a;if(i){let o=hE.default.join(__dirname,"../skills/mem-search/operations",`${i}.md`);a=await fE.promises.readFile(o,"utf-8")}else{let o=hE.default.join(__dirname,"../skills/mem-search/SKILL.md"),c=await fE.promises.readFile(o,"utf-8");a=this.extractInstructionSection(c,s)}n.json({content:[{type:"text",text:a}]})}catch{n.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",jg,async(r,n)=>{n.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_PILOT_MANAGED==="true"&&process.send?(_.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{await this.options.onRestart()},100)}),this.app.post("/api/admin/shutdown",jg,async(r,n)=>{n.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_PILOT_MANAGED==="true"&&process.send?(_.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{await this.options.onShutdown()},100)})}extractInstructionSection(e,r){let n={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return n[r]||n.all}extractBetween(e,r,n){let s=e.indexOf(r),i=e.indexOf(n);return s===-1?e:i===-1?e.substring(s):e.substring(s,i).trim()}};Lg();var j6=require("bun:sqlite");er();re();var Ug=class{db;constructor(e){e||(rs(nn),e=Wl),this.db=new j6.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(n=>n.name==="observations_fts"||n.name==="session_summaries_fts")||(_.info("DB","Creating FTS5 tables"),this.db.run(` + path: iss.path ? [${la(y)}, ...iss.path] : [${la(y)}] + })));`),d.write(`newResult[${la(y)}] = ${b}.value`)}d.write("payload.value = newResult;"),d.write("return payload;");let h=d.compile();return(y,b)=>h(p,y,b)},s,i=To,a=!Um.jitless,c=a&&px.value,l=e.catchall,u;t._zod.parse=(p,d)=>{u??(u=r.value);let m=p.value;if(!i(m))return p.issues.push({expected:"object",code:"invalid_type",input:m,inst:t}),p;let f=[];if(a&&c&&d?.async===!1&&d.jitless!==!0)s||(s=n(e.shape)),p=s(p,d);else{p.value={};let b=u.shape;for(let x of u.keys){let w=b[x],S=w._zod.run({value:m[x],issues:[]},d),E=w._zod.optin==="optional"&&w._zod.optout==="optional";S instanceof Promise?f.push(S.then(k=>E?$I(k,p,x,m):Gm(k,p,x))):E?$I(S,p,x,m):Gm(S,p,x)}}if(!l)return f.length?Promise.all(f).then(()=>p):p;let g=[],v=u.keySet,h=l._zod,y=h.def.type;for(let b of Object.keys(m)){if(v.has(b))continue;if(y==="never"){g.push(b);continue}let x=h.run({value:m[b],issues:[]},d);x instanceof Promise?f.push(x.then(w=>Gm(w,p,b))):Gm(x,p,b)}return g.length&&p.issues.push({code:"unrecognized_keys",keys:g,input:m,inst:t}),f.length?Promise.all(f).then(()=>p):p}});function LI(t,e,r,n){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(i=>ns(i,n,An())))}),e}var Tx=F("$ZodUnion",(t,e)=>{wt.init(t,e),_t(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),_t(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),_t(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),_t(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(n=>n._zod.pattern);return new RegExp(`^(${r.map(n=>Kl(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let s=!1,i=[];for(let a of e.options){let o=a._zod.run({value:r.value,issues:[]},n);if(o instanceof Promise)i.push(o),s=!0;else{if(o.issues.length===0)return o;i.push(o)}}return s?Promise.all(i).then(a=>LI(a,r,t,n)):LI(i,r,t,n)}}),SC=F("$ZodDiscriminatedUnion",(t,e)=>{Tx.init(t,e);let r=t._zod.parse;_t(t._zod,"propValues",()=>{let s={};for(let i of e.options){let a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[o,c]of Object.entries(a)){s[o]||(s[o]=new Set);for(let l of c)s[o].add(l)}}return s});let n=Gl(()=>{let s=e.options,i=new Map;for(let a of s){let o=a._zod.propValues[e.discriminator];if(!o||o.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let c of o){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});t._zod.parse=(s,i)=>{let a=s.value;if(!To(a))return s.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),s;let o=n.value.get(a?.[e.discriminator]);return o?o._zod.run(s,i):e.unionFallback?r(s,i):(s.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:a,path:[e.discriminator],inst:t}),s)}}),EC=F("$ZodIntersection",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value,i=e.left._zod.run({value:s,issues:[]},n),a=e.right._zod.run({value:s,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([c,l])=>UI(r,c,l)):UI(r,i,a)}});function Ex(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Ro(t)&&Ro(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),s={...t,...e};for(let i of n){let a=Ex(t[i],e[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};s[i]=a.data}return{valid:!0,data:s}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!Ro(s))return r.issues.push({expected:"record",code:"invalid_type",input:s,inst:t}),r;let i=[];if(e.keyType._zod.values){let a=e.keyType._zod.values;r.value={};for(let c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let l=e.valueType._zod.run({value:s[c],issues:[]},n);l instanceof Promise?i.push(l.then(u=>{u.issues.length&&r.issues.push(...Ts(c,u.issues)),r.value[c]=u.value})):(l.issues.length&&r.issues.push(...Ts(c,l.issues)),r.value[c]=l.value)}let o;for(let c in s)a.has(c)||(o=o??[],o.push(c));o&&o.length>0&&r.issues.push({code:"unrecognized_keys",input:s,inst:t,keys:o})}else{r.value={};for(let a of Reflect.ownKeys(s)){if(a==="__proto__")continue;let o=e.keyType._zod.run({value:a,issues:[]},n);if(o instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(o.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:o.issues.map(l=>ns(l,n,An())),input:a,path:[a],inst:t}),r.value[o.value]=o.value;continue}let c=e.valueType._zod.run({value:s[a],issues:[]},n);c instanceof Promise?i.push(c.then(l=>{l.issues.length&&r.issues.push(...Ts(a,l.issues)),r.value[o.value]=l.value})):(c.issues.length&&r.issues.push(...Ts(a,c.issues)),r.value[o.value]=c.value)}}return i.length?Promise.all(i).then(()=>r):r}});var TC=F("$ZodEnum",(t,e)=>{wt.init(t,e);let r=ox(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>dx.has(typeof n)).map(n=>typeof n=="string"?xi(n):n.toString()).join("|")})$`),t._zod.parse=(n,s)=>{let i=n.value;return t._zod.values.has(i)||n.issues.push({code:"invalid_value",values:r,input:i,inst:t}),n}}),RC=F("$ZodLiteral",(t,e)=>{wt.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?xi(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,n)=>{let s=r.value;return t._zod.values.has(s)||r.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),r}});var PC=F("$ZodTransform",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=e.transform(r.value,r);if(n.async)return(s instanceof Promise?s:Promise.resolve(s)).then(a=>(r.value=a,r));if(s instanceof Promise)throw new Vs;return r.value=s,r}}),IC=F("$ZodOptional",(t,e)=>{wt.init(t,e),t._zod.optin="optional",t._zod.optout="optional",_t(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),_t(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Kl(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,n):r.value===void 0?r:e.innerType._zod.run(r,n)}),CC=F("$ZodNullable",(t,e)=>{wt.init(t,e),_t(t._zod,"optin",()=>e.innerType._zod.optin),_t(t._zod,"optout",()=>e.innerType._zod.optout),_t(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Kl(r.source)}|null)$`):void 0}),_t(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),OC=F("$ZodDefault",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>qI(i,e)):qI(s,e)}});function qI(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var AC=F("$ZodPrefault",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),jC=F("$ZodNonOptional",(t,e)=>{wt.init(t,e),_t(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>FI(i,t)):FI(s,t)}});function FI(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var NC=F("$ZodCatch",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"optout",()=>e.innerType._zod.optout),_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>ns(a,n,An()))},input:r.value}),r.issues=[]),r)):(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(i=>ns(i,n,An()))},input:r.value}),r.issues=[]),r)}});var DC=F("$ZodPipe",(t,e)=>{wt.init(t,e),_t(t._zod,"values",()=>e.in._zod.values),_t(t._zod,"optin",()=>e.in._zod.optin),_t(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,n)=>{let s=e.in._zod.run(r,n);return s instanceof Promise?s.then(i=>HI(i,e,n)):HI(s,e,n)}});function HI(t,e,r){return ua(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var MC=F("$ZodReadonly",(t,e)=>{wt.init(t,e),_t(t._zod,"propValues",()=>e.innerType._zod.propValues),_t(t._zod,"values",()=>e.innerType._zod.values),_t(t._zod,"optin",()=>e.innerType._zod.optin),_t(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(BI):BI(s)}});function BI(t){return t.value=Object.freeze(t.value),t}var zC=F("$ZodCustom",(t,e)=>{Ar.init(t,e),wt.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,s=e.fn(n);if(s instanceof Promise)return s.then(i=>WI(i,r,n,t));WI(s,r,n,t)}});function WI(t,e,r,n){if(!t){let s={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(s.params=n._zod.def.params),e.issues.push(hx(s))}}var PV=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},IV=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(n){return t[n]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return n=>{switch(n.code){case"invalid_type":return`Invalid input: expected ${n.expected}, received ${PV(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${Hm(n.values[0])}`:`Invalid option: expected one of ${qm(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Too big: expected ${n.origin??"value"} to have ${s}${n.maximum.toString()} ${i.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Too small: expected ${n.origin} to have ${s}${n.minimum.toString()} ${i.unit}`:`Too small: expected ${n.origin} to be ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Invalid string: must start with "${s.prefix}"`:s.format==="ends_with"?`Invalid string: must end with "${s.suffix}"`:s.format==="includes"?`Invalid string: must include "${s.includes}"`:s.format==="regex"?`Invalid string: must match pattern ${s.pattern}`:`Invalid ${r[s.format]??n.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${n.divisor}`;case"unrecognized_keys":return`Unrecognized key${n.keys.length>1?"s":""}: ${qm(n.keys,", ")}`;case"invalid_key":return`Invalid key in ${n.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${n.origin}`;default:return"Invalid input"}}};function $C(){return{localeError:IV()}}var Rx=class{constructor(){this._map=new Map,this._idmap=new Map}add(e,...r){let n=r[0];if(this._map.set(e,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function CV(){return new Rx}var Xl=CV();function LC(t,e){return new t({type:"string",...be(e)})}function UC(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...be(e)})}function Px(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...be(e)})}function qC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...be(e)})}function FC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...be(e)})}function HC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...be(e)})}function BC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...be(e)})}function WC(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...be(e)})}function ZC(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...be(e)})}function GC(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...be(e)})}function VC(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...be(e)})}function KC(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...be(e)})}function JC(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...be(e)})}function QC(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...be(e)})}function YC(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...be(e)})}function XC(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...be(e)})}function eO(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...be(e)})}function tO(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...be(e)})}function rO(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...be(e)})}function nO(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...be(e)})}function sO(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...be(e)})}function iO(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...be(e)})}function aO(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...be(e)})}function oO(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...be(e)})}function cO(t,e){return new t({type:"string",format:"date",check:"string_format",...be(e)})}function lO(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...be(e)})}function uO(t,e){return new t({type:"string",format:"duration",check:"string_format",...be(e)})}function pO(t,e){return new t({type:"number",checks:[],...be(e)})}function dO(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...be(e)})}function mO(t,e){return new t({type:"boolean",...be(e)})}function fO(t,e){return new t({type:"null",...be(e)})}function hO(t){return new t({type:"unknown"})}function gO(t,e){return new t({type:"never",...be(e)})}function Km(t,e){return new wx({check:"less_than",...be(e),value:t,inclusive:!1})}function eu(t,e){return new wx({check:"less_than",...be(e),value:t,inclusive:!0})}function Jm(t,e){return new Sx({check:"greater_than",...be(e),value:t,inclusive:!1})}function tu(t,e){return new Sx({check:"greater_than",...be(e),value:t,inclusive:!0})}function Qm(t,e){return new SI({check:"multiple_of",...be(e),value:t})}function Ym(t,e){return new kI({check:"max_length",...be(e),maximum:t})}function Po(t,e){return new TI({check:"min_length",...be(e),minimum:t})}function Xm(t,e){return new RI({check:"length_equals",...be(e),length:t})}function Ix(t,e){return new PI({check:"string_format",format:"regex",...be(e),pattern:t})}function Cx(t){return new II({check:"string_format",format:"lowercase",...be(t)})}function Ox(t){return new CI({check:"string_format",format:"uppercase",...be(t)})}function Ax(t,e){return new OI({check:"string_format",format:"includes",...be(e),includes:t})}function jx(t,e){return new AI({check:"string_format",format:"starts_with",...be(e),prefix:t})}function Nx(t,e){return new jI({check:"string_format",format:"ends_with",...be(e),suffix:t})}function pa(t){return new NI({check:"overwrite",tx:t})}function Dx(t){return pa(e=>e.normalize(t))}function Mx(){return pa(t=>t.trim())}function zx(){return pa(t=>t.toLowerCase())}function $x(){return pa(t=>t.toUpperCase())}function vO(t,e,r){return new t({type:"array",element:e,...be(r)})}function yO(t,e,r){let n=be(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function bO(t,e,r){return new t({type:"custom",check:"custom",fn:e,...be(r)})}function Io(t){return!!t._zod}function ss(t,e){return Io(t)?Ql(t,e):t.safeParse(e)}function ef(t){if(!t)return;let e;if(Io(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function xO(t){if(Io(t)){let i=t._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var nu={};es(nu,{ZodISODate:()=>wO,ZodISODateTime:()=>_O,ZodISODuration:()=>EO,ZodISOTime:()=>SO,date:()=>Ux,datetime:()=>Lx,duration:()=>Fx,time:()=>qx});var _O=F("ZodISODateTime",(t,e)=>{nC.init(t,e),Dt.init(t,e)});function Lx(t){return oO(_O,t)}var wO=F("ZodISODate",(t,e)=>{sC.init(t,e),Dt.init(t,e)});function Ux(t){return cO(wO,t)}var SO=F("ZodISOTime",(t,e)=>{iC.init(t,e),Dt.init(t,e)});function qx(t){return lO(SO,t)}var EO=F("ZodISODuration",(t,e)=>{aC.init(t,e),Dt.init(t,e)});function Fx(t){return uO(EO,t)}var kO=(t,e)=>{Bm.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>BP(t,r)},flatten:{value:r=>HP(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},VRe=F("ZodError",kO),su=F("ZodError",kO,{Parent:Error});var TO=WP(su),RO=ZP(su),PO=vx(su),IO=yx(su);var Ut=F("ZodType",(t,e)=>(wt.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>ks(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>TO(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>PO(t,r,n),t.parseAsync=async(r,n)=>RO(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>IO(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(R7(r,n)),t.superRefine=r=>t.check(P7(r)),t.overwrite=r=>t.check(pa(r)),t.optional=()=>zt(t),t.nullable=()=>AO(t),t.nullish=()=>zt(AO(t)),t.nonoptional=r=>x7(t,r),t.array=()=>Ze(t),t.or=r=>Pt([t,r]),t.and=r=>rf(t,r),t.transform=r=>Bx(t,$O(r)),t.default=r=>v7(t,r),t.prefault=r=>b7(t,r),t.catch=r=>w7(t,r),t.pipe=r=>Bx(t,r),t.readonly=()=>k7(t),t.describe=r=>{let n=t.clone();return Xl.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return Xl.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Xl.get(t);let n=t.clone();return Xl.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),jO=F("_ZodString",(t,e)=>{Vm.init(t,e),Ut.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(Ix(...n)),t.includes=(...n)=>t.check(Ax(...n)),t.startsWith=(...n)=>t.check(jx(...n)),t.endsWith=(...n)=>t.check(Nx(...n)),t.min=(...n)=>t.check(Po(...n)),t.max=(...n)=>t.check(Ym(...n)),t.length=(...n)=>t.check(Xm(...n)),t.nonempty=(...n)=>t.check(Po(1,...n)),t.lowercase=n=>t.check(Cx(n)),t.uppercase=n=>t.check(Ox(n)),t.trim=()=>t.check(Mx()),t.normalize=(...n)=>t.check(Dx(...n)),t.toLowerCase=()=>t.check(zx()),t.toUpperCase=()=>t.check($x())}),LV=F("ZodString",(t,e)=>{Vm.init(t,e),jO.init(t,e),t.email=r=>t.check(UC(UV,r)),t.url=r=>t.check(WC(qV,r)),t.jwt=r=>t.check(aO(r7,r)),t.emoji=r=>t.check(ZC(FV,r)),t.guid=r=>t.check(Px(CO,r)),t.uuid=r=>t.check(qC(tf,r)),t.uuidv4=r=>t.check(FC(tf,r)),t.uuidv6=r=>t.check(HC(tf,r)),t.uuidv7=r=>t.check(BC(tf,r)),t.nanoid=r=>t.check(GC(HV,r)),t.guid=r=>t.check(Px(CO,r)),t.cuid=r=>t.check(VC(BV,r)),t.cuid2=r=>t.check(KC(WV,r)),t.ulid=r=>t.check(JC(ZV,r)),t.base64=r=>t.check(nO(XV,r)),t.base64url=r=>t.check(sO(e7,r)),t.xid=r=>t.check(QC(GV,r)),t.ksuid=r=>t.check(YC(VV,r)),t.ipv4=r=>t.check(XC(KV,r)),t.ipv6=r=>t.check(eO(JV,r)),t.cidrv4=r=>t.check(tO(QV,r)),t.cidrv6=r=>t.check(rO(YV,r)),t.e164=r=>t.check(iO(t7,r)),t.datetime=r=>t.check(Lx(r)),t.date=r=>t.check(Ux(r)),t.time=r=>t.check(qx(r)),t.duration=r=>t.check(Fx(r))});function $(t){return LC(LV,t)}var Dt=F("ZodStringFormat",(t,e)=>{Rt.init(t,e),jO.init(t,e)}),UV=F("ZodEmail",(t,e)=>{VI.init(t,e),Dt.init(t,e)});var CO=F("ZodGUID",(t,e)=>{ZI.init(t,e),Dt.init(t,e)});var tf=F("ZodUUID",(t,e)=>{GI.init(t,e),Dt.init(t,e)});var qV=F("ZodURL",(t,e)=>{KI.init(t,e),Dt.init(t,e)});var FV=F("ZodEmoji",(t,e)=>{JI.init(t,e),Dt.init(t,e)});var HV=F("ZodNanoID",(t,e)=>{QI.init(t,e),Dt.init(t,e)});var BV=F("ZodCUID",(t,e)=>{YI.init(t,e),Dt.init(t,e)});var WV=F("ZodCUID2",(t,e)=>{XI.init(t,e),Dt.init(t,e)});var ZV=F("ZodULID",(t,e)=>{eC.init(t,e),Dt.init(t,e)});var GV=F("ZodXID",(t,e)=>{tC.init(t,e),Dt.init(t,e)});var VV=F("ZodKSUID",(t,e)=>{rC.init(t,e),Dt.init(t,e)});var KV=F("ZodIPv4",(t,e)=>{oC.init(t,e),Dt.init(t,e)});var JV=F("ZodIPv6",(t,e)=>{cC.init(t,e),Dt.init(t,e)});var QV=F("ZodCIDRv4",(t,e)=>{lC.init(t,e),Dt.init(t,e)});var YV=F("ZodCIDRv6",(t,e)=>{uC.init(t,e),Dt.init(t,e)});var XV=F("ZodBase64",(t,e)=>{dC.init(t,e),Dt.init(t,e)});var e7=F("ZodBase64URL",(t,e)=>{mC.init(t,e),Dt.init(t,e)});var t7=F("ZodE164",(t,e)=>{fC.init(t,e),Dt.init(t,e)});var r7=F("ZodJWT",(t,e)=>{hC.init(t,e),Dt.init(t,e)});var NO=F("ZodNumber",(t,e)=>{kx.init(t,e),Ut.init(t,e),t.gt=(n,s)=>t.check(Jm(n,s)),t.gte=(n,s)=>t.check(tu(n,s)),t.min=(n,s)=>t.check(tu(n,s)),t.lt=(n,s)=>t.check(Km(n,s)),t.lte=(n,s)=>t.check(eu(n,s)),t.max=(n,s)=>t.check(eu(n,s)),t.int=n=>t.check(OO(n)),t.safe=n=>t.check(OO(n)),t.positive=n=>t.check(Jm(0,n)),t.nonnegative=n=>t.check(tu(0,n)),t.negative=n=>t.check(Km(0,n)),t.nonpositive=n=>t.check(eu(0,n)),t.multipleOf=(n,s)=>t.check(Qm(n,s)),t.step=(n,s)=>t.check(Qm(n,s)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function at(t){return pO(NO,t)}var n7=F("ZodNumberFormat",(t,e)=>{gC.init(t,e),NO.init(t,e)});function OO(t){return dO(n7,t)}var s7=F("ZodBoolean",(t,e)=>{vC.init(t,e),Ut.init(t,e)});function cr(t){return mO(s7,t)}var i7=F("ZodNull",(t,e)=>{yC.init(t,e),Ut.init(t,e)});function DO(t){return fO(i7,t)}var a7=F("ZodUnknown",(t,e)=>{bC.init(t,e),Ut.init(t,e)});function Mt(){return hO(a7)}var o7=F("ZodNever",(t,e)=>{xC.init(t,e),Ut.init(t,e)});function c7(t){return gO(o7,t)}var l7=F("ZodArray",(t,e)=>{_C.init(t,e),Ut.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(Po(r,n)),t.nonempty=r=>t.check(Po(1,r)),t.max=(r,n)=>t.check(Ym(r,n)),t.length=(r,n)=>t.check(Xm(r,n)),t.unwrap=()=>t.element});function Ze(t,e){return vO(l7,t,e)}var MO=F("ZodObject",(t,e)=>{wC.init(t,e),Ut.init(t,e),nt.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>sn(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Mt()}),t.loose=()=>t.clone({...t._zod.def,catchall:Mt()}),t.strict=()=>t.clone({...t._zod.def,catchall:c7()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>nt.extend(t,r),t.merge=r=>nt.merge(t,r),t.pick=r=>nt.pick(t,r),t.omit=r=>nt.omit(t,r),t.partial=(...r)=>nt.partial(LO,t,r[0]),t.required=(...r)=>nt.required(UO,t,r[0])});function ie(t,e){let r={type:"object",get shape(){return nt.assignProp(this,"shape",{...t}),this.shape},...nt.normalizeParams(e)};return new MO(r)}function $r(t,e){return new MO({type:"object",get shape(){return nt.assignProp(this,"shape",{...t}),this.shape},catchall:Mt(),...nt.normalizeParams(e)})}var zO=F("ZodUnion",(t,e)=>{Tx.init(t,e),Ut.init(t,e),t.options=e.options});function Pt(t,e){return new zO({type:"union",options:t,...nt.normalizeParams(e)})}var u7=F("ZodDiscriminatedUnion",(t,e)=>{zO.init(t,e),SC.init(t,e)});function Wx(t,e,r){return new u7({type:"union",options:e,discriminator:t,...nt.normalizeParams(r)})}var p7=F("ZodIntersection",(t,e)=>{EC.init(t,e),Ut.init(t,e)});function rf(t,e){return new p7({type:"intersection",left:t,right:e})}var d7=F("ZodRecord",(t,e)=>{kC.init(t,e),Ut.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function St(t,e,r){return new d7({type:"record",keyType:t,valueType:e,...nt.normalizeParams(r)})}var Hx=F("ZodEnum",(t,e)=>{TC.init(t,e),Ut.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,s)=>{let i={};for(let a of n)if(r.has(a))i[a]=e.entries[a];else throw new Error(`Key ${a} not found in enum`);return new Hx({...e,checks:[],...nt.normalizeParams(s),entries:i})},t.exclude=(n,s)=>{let i={...e.entries};for(let a of n)if(r.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new Hx({...e,checks:[],...nt.normalizeParams(s),entries:i})}});function sn(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Hx({type:"enum",entries:r,...nt.normalizeParams(e)})}var m7=F("ZodLiteral",(t,e)=>{RC.init(t,e),Ut.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function me(t,e){return new m7({type:"literal",values:Array.isArray(t)?t:[t],...nt.normalizeParams(e)})}var f7=F("ZodTransform",(t,e)=>{PC.init(t,e),Ut.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=i=>{if(typeof i=="string")r.issues.push(nt.issue(i,r.value,e));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=t),a.continue??(a.continue=!0),r.issues.push(nt.issue(a))}};let s=e.transform(r.value,r);return s instanceof Promise?s.then(i=>(r.value=i,r)):(r.value=s,r)}});function $O(t){return new f7({type:"transform",transform:t})}var LO=F("ZodOptional",(t,e)=>{IC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function zt(t){return new LO({type:"optional",innerType:t})}var h7=F("ZodNullable",(t,e)=>{CC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function AO(t){return new h7({type:"nullable",innerType:t})}var g7=F("ZodDefault",(t,e)=>{OC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function v7(t,e){return new g7({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var y7=F("ZodPrefault",(t,e)=>{AC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function b7(t,e){return new y7({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var UO=F("ZodNonOptional",(t,e)=>{jC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function x7(t,e){return new UO({type:"nonoptional",innerType:t,...nt.normalizeParams(e)})}var _7=F("ZodCatch",(t,e)=>{NC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function w7(t,e){return new _7({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var S7=F("ZodPipe",(t,e)=>{DC.init(t,e),Ut.init(t,e),t.in=e.in,t.out=e.out});function Bx(t,e){return new S7({type:"pipe",in:t,out:e})}var E7=F("ZodReadonly",(t,e)=>{MC.init(t,e),Ut.init(t,e)});function k7(t){return new E7({type:"readonly",innerType:t})}var qO=F("ZodCustom",(t,e)=>{zC.init(t,e),Ut.init(t,e)});function T7(t){let e=new Ar({check:"custom"});return e._zod.check=t,e}function FO(t,e){return yO(qO,t??(()=>!0),e)}function R7(t,e={}){return bO(qO,t,e)}function P7(t){let e=T7(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(nt.issue(n,r.value,e._zod.def));else{let s=n;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=e),s.continue??(s.continue=!e._zod.def.abort),r.issues.push(nt.issue(s))}},t(r.value,r)));return e}function Zx(t,e){return Bx($O(t),e)}An($C());var Vx="2025-11-25";var HO=[Vx,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],_i="io.modelcontextprotocol/related-task",sf="2.0",rr=FO(t=>t!==null&&(typeof t=="object"||typeof t=="function")),BO=Pt([$(),at().int()]),WO=$(),q1e=$r({ttl:at().optional(),pollInterval:at().optional()}),I7=ie({ttl:at().optional()}),C7=ie({taskId:$()}),Kx=$r({progressToken:BO.optional(),[_i]:C7.optional()}),xn=ie({_meta:Kx.optional()}),iu=xn.extend({task:I7.optional()}),ZO=t=>iu.safeParse(t).success,xr=ie({method:$(),params:xn.loose().optional()}),jn=ie({_meta:Kx.optional()}),Nn=ie({method:$(),params:jn.loose().optional()}),_r=$r({_meta:Kx.optional()}),af=Pt([$(),at().int()]),GO=ie({jsonrpc:me(sf),id:af,...xr.shape}).strict(),Jx=t=>GO.safeParse(t).success,VO=ie({jsonrpc:me(sf),...Nn.shape}).strict(),KO=t=>VO.safeParse(t).success,Qx=ie({jsonrpc:me(sf),id:af,result:_r}).strict(),au=t=>Qx.safeParse(t).success;var Se;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Se||(Se={}));var Yx=ie({jsonrpc:me(sf),id:af.optional(),error:ie({code:at().int(),message:$(),data:Mt().optional()})}).strict();var JO=t=>Yx.safeParse(t).success;var QO=Pt([GO,VO,Qx,Yx]),F1e=Pt([Qx,Yx]),da=_r.strict(),O7=jn.extend({requestId:af.optional(),reason:$().optional()}),of=Nn.extend({method:me("notifications/cancelled"),params:O7}),A7=ie({src:$(),mimeType:$().optional(),sizes:Ze($()).optional(),theme:sn(["light","dark"]).optional()}),ou=ie({icons:Ze(A7).optional()}),Co=ie({name:$(),title:$().optional()}),YO=Co.extend({...Co.shape,...ou.shape,version:$(),websiteUrl:$().optional(),description:$().optional()}),j7=rf(ie({applyDefaults:cr().optional()}),St($(),Mt())),N7=Zx(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,rf(ie({form:j7.optional(),url:rr.optional()}),St($(),Mt()).optional())),D7=$r({list:rr.optional(),cancel:rr.optional(),requests:$r({sampling:$r({createMessage:rr.optional()}).optional(),elicitation:$r({create:rr.optional()}).optional()}).optional()}),M7=$r({list:rr.optional(),cancel:rr.optional(),requests:$r({tools:$r({call:rr.optional()}).optional()}).optional()}),z7=ie({experimental:St($(),rr).optional(),sampling:ie({context:rr.optional(),tools:rr.optional()}).optional(),elicitation:N7.optional(),roots:ie({listChanged:cr().optional()}).optional(),tasks:D7.optional(),extensions:St($(),rr).optional()}),$7=xn.extend({protocolVersion:$(),capabilities:z7,clientInfo:YO}),L7=xr.extend({method:me("initialize"),params:$7});var U7=ie({experimental:St($(),rr).optional(),logging:rr.optional(),completions:rr.optional(),prompts:ie({listChanged:cr().optional()}).optional(),resources:ie({subscribe:cr().optional(),listChanged:cr().optional()}).optional(),tools:ie({listChanged:cr().optional()}).optional(),tasks:M7.optional(),extensions:St($(),rr).optional()}),Xx=_r.extend({protocolVersion:$(),capabilities:U7,serverInfo:YO,instructions:$().optional()}),q7=Nn.extend({method:me("notifications/initialized"),params:jn.optional()});var cf=xr.extend({method:me("ping"),params:xn.optional()}),F7=ie({progress:at(),total:zt(at()),message:zt($())}),H7=ie({...jn.shape,...F7.shape,progressToken:BO}),lf=Nn.extend({method:me("notifications/progress"),params:H7}),B7=xn.extend({cursor:WO.optional()}),cu=xr.extend({params:B7.optional()}),lu=_r.extend({nextCursor:WO.optional()}),W7=sn(["working","input_required","completed","failed","cancelled"]),uu=ie({taskId:$(),status:W7,ttl:Pt([at(),DO()]),createdAt:$(),lastUpdatedAt:$(),pollInterval:zt(at()),statusMessage:zt($())}),ma=_r.extend({task:uu}),Z7=jn.merge(uu),pu=Nn.extend({method:me("notifications/tasks/status"),params:Z7}),uf=xr.extend({method:me("tasks/get"),params:xn.extend({taskId:$()})}),pf=_r.merge(uu),df=xr.extend({method:me("tasks/result"),params:xn.extend({taskId:$()})}),H1e=_r.loose(),mf=cu.extend({method:me("tasks/list")}),ff=lu.extend({tasks:Ze(uu)}),hf=xr.extend({method:me("tasks/cancel"),params:xn.extend({taskId:$()})}),XO=_r.merge(uu),eA=ie({uri:$(),mimeType:zt($()),_meta:St($(),Mt()).optional()}),tA=eA.extend({text:$()}),e_=$().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),rA=eA.extend({blob:e_}),du=sn(["user","assistant"]),Oo=ie({audience:Ze(du).optional(),priority:at().min(0).max(1).optional(),lastModified:nu.datetime({offset:!0}).optional()}),nA=ie({...Co.shape,...ou.shape,uri:$(),description:zt($()),mimeType:zt($()),size:zt(at()),annotations:Oo.optional(),_meta:zt($r({}))}),G7=ie({...Co.shape,...ou.shape,uriTemplate:$(),description:zt($()),mimeType:zt($()),annotations:Oo.optional(),_meta:zt($r({}))}),V7=cu.extend({method:me("resources/list")}),t_=lu.extend({resources:Ze(nA)}),K7=cu.extend({method:me("resources/templates/list")}),r_=lu.extend({resourceTemplates:Ze(G7)}),n_=xn.extend({uri:$()}),J7=n_,Q7=xr.extend({method:me("resources/read"),params:J7}),s_=_r.extend({contents:Ze(Pt([tA,rA]))}),i_=Nn.extend({method:me("notifications/resources/list_changed"),params:jn.optional()}),Y7=n_,X7=xr.extend({method:me("resources/subscribe"),params:Y7}),eK=n_,tK=xr.extend({method:me("resources/unsubscribe"),params:eK}),rK=jn.extend({uri:$()}),nK=Nn.extend({method:me("notifications/resources/updated"),params:rK}),sK=ie({name:$(),description:zt($()),required:zt(cr())}),iK=ie({...Co.shape,...ou.shape,description:zt($()),arguments:zt(Ze(sK)),_meta:zt($r({}))}),aK=cu.extend({method:me("prompts/list")}),a_=lu.extend({prompts:Ze(iK)}),oK=xn.extend({name:$(),arguments:St($(),$()).optional()}),cK=xr.extend({method:me("prompts/get"),params:oK}),o_=ie({type:me("text"),text:$(),annotations:Oo.optional(),_meta:St($(),Mt()).optional()}),c_=ie({type:me("image"),data:e_,mimeType:$(),annotations:Oo.optional(),_meta:St($(),Mt()).optional()}),l_=ie({type:me("audio"),data:e_,mimeType:$(),annotations:Oo.optional(),_meta:St($(),Mt()).optional()}),lK=ie({type:me("tool_use"),name:$(),id:$(),input:St($(),Mt()),_meta:St($(),Mt()).optional()}),uK=ie({type:me("resource"),resource:Pt([tA,rA]),annotations:Oo.optional(),_meta:St($(),Mt()).optional()}),pK=nA.extend({type:me("resource_link")}),u_=Pt([o_,c_,l_,pK,uK]),dK=ie({role:du,content:u_}),p_=_r.extend({description:$().optional(),messages:Ze(dK)}),d_=Nn.extend({method:me("notifications/prompts/list_changed"),params:jn.optional()}),mK=ie({title:$().optional(),readOnlyHint:cr().optional(),destructiveHint:cr().optional(),idempotentHint:cr().optional(),openWorldHint:cr().optional()}),fK=ie({taskSupport:sn(["required","optional","forbidden"]).optional()}),sA=ie({...Co.shape,...ou.shape,description:$().optional(),inputSchema:ie({type:me("object"),properties:St($(),rr).optional(),required:Ze($()).optional()}).catchall(Mt()),outputSchema:ie({type:me("object"),properties:St($(),rr).optional(),required:Ze($()).optional()}).catchall(Mt()).optional(),annotations:mK.optional(),execution:fK.optional(),_meta:St($(),Mt()).optional()}),hK=cu.extend({method:me("tools/list")}),m_=lu.extend({tools:Ze(sA)}),Ao=_r.extend({content:Ze(u_).default([]),structuredContent:St($(),Mt()).optional(),isError:cr().optional()}),B1e=Ao.or(_r.extend({toolResult:Mt()})),gK=iu.extend({name:$(),arguments:St($(),Mt()).optional()}),vK=xr.extend({method:me("tools/call"),params:gK}),f_=Nn.extend({method:me("notifications/tools/list_changed"),params:jn.optional()}),iA=ie({autoRefresh:cr().default(!0),debounceMs:at().int().nonnegative().default(300)}),aA=sn(["debug","info","notice","warning","error","critical","alert","emergency"]),yK=xn.extend({level:aA}),bK=xr.extend({method:me("logging/setLevel"),params:yK}),xK=jn.extend({level:aA,logger:$().optional(),data:Mt()}),_K=Nn.extend({method:me("notifications/message"),params:xK}),wK=ie({name:$().optional()}),SK=ie({hints:Ze(wK).optional(),costPriority:at().min(0).max(1).optional(),speedPriority:at().min(0).max(1).optional(),intelligencePriority:at().min(0).max(1).optional()}),EK=ie({mode:sn(["auto","required","none"]).optional()}),kK=ie({type:me("tool_result"),toolUseId:$().describe("The unique identifier for the corresponding tool call."),content:Ze(u_).default([]),structuredContent:ie({}).loose().optional(),isError:cr().optional(),_meta:St($(),Mt()).optional()}),TK=Wx("type",[o_,c_,l_]),nf=Wx("type",[o_,c_,l_,lK,kK]),RK=ie({role:du,content:Pt([nf,Ze(nf)]),_meta:St($(),Mt()).optional()}),PK=iu.extend({messages:Ze(RK),modelPreferences:SK.optional(),systemPrompt:$().optional(),includeContext:sn(["none","thisServer","allServers"]).optional(),temperature:at().optional(),maxTokens:at().int(),stopSequences:Ze($()).optional(),metadata:rr.optional(),tools:Ze(sA).optional(),toolChoice:EK.optional()}),h_=xr.extend({method:me("sampling/createMessage"),params:PK}),g_=_r.extend({model:$(),stopReason:zt(sn(["endTurn","stopSequence","maxTokens"]).or($())),role:du,content:TK}),v_=_r.extend({model:$(),stopReason:zt(sn(["endTurn","stopSequence","maxTokens","toolUse"]).or($())),role:du,content:Pt([nf,Ze(nf)])}),IK=ie({type:me("boolean"),title:$().optional(),description:$().optional(),default:cr().optional()}),CK=ie({type:me("string"),title:$().optional(),description:$().optional(),minLength:at().optional(),maxLength:at().optional(),format:sn(["email","uri","date","date-time"]).optional(),default:$().optional()}),OK=ie({type:sn(["number","integer"]),title:$().optional(),description:$().optional(),minimum:at().optional(),maximum:at().optional(),default:at().optional()}),AK=ie({type:me("string"),title:$().optional(),description:$().optional(),enum:Ze($()),default:$().optional()}),jK=ie({type:me("string"),title:$().optional(),description:$().optional(),oneOf:Ze(ie({const:$(),title:$()})),default:$().optional()}),NK=ie({type:me("string"),title:$().optional(),description:$().optional(),enum:Ze($()),enumNames:Ze($()).optional(),default:$().optional()}),DK=Pt([AK,jK]),MK=ie({type:me("array"),title:$().optional(),description:$().optional(),minItems:at().optional(),maxItems:at().optional(),items:ie({type:me("string"),enum:Ze($())}),default:Ze($()).optional()}),zK=ie({type:me("array"),title:$().optional(),description:$().optional(),minItems:at().optional(),maxItems:at().optional(),items:ie({anyOf:Ze(ie({const:$(),title:$()}))}),default:Ze($()).optional()}),$K=Pt([MK,zK]),LK=Pt([NK,DK,$K]),UK=Pt([LK,IK,CK,OK]),qK=iu.extend({mode:me("form").optional(),message:$(),requestedSchema:ie({type:me("object"),properties:St($(),UK),required:Ze($()).optional()})}),FK=iu.extend({mode:me("url"),message:$(),elicitationId:$(),url:$().url()}),HK=Pt([qK,FK]),y_=xr.extend({method:me("elicitation/create"),params:HK}),BK=jn.extend({elicitationId:$()}),WK=Nn.extend({method:me("notifications/elicitation/complete"),params:BK}),b_=_r.extend({action:sn(["accept","decline","cancel"]),content:Zx(t=>t===null?void 0:t,St($(),Pt([$(),at(),cr(),Ze($())])).optional())}),ZK=ie({type:me("ref/resource"),uri:$()});var GK=ie({type:me("ref/prompt"),name:$()}),VK=xn.extend({ref:Pt([GK,ZK]),argument:ie({name:$(),value:$()}),context:ie({arguments:St($(),$()).optional()}).optional()}),KK=xr.extend({method:me("completion/complete"),params:VK});var x_=_r.extend({completion:$r({values:Ze($()).max(100),total:zt(at().int()),hasMore:zt(cr())})}),JK=ie({uri:$().startsWith("file://"),name:$().optional(),_meta:St($(),Mt()).optional()}),QK=xr.extend({method:me("roots/list"),params:xn.optional()}),YK=_r.extend({roots:Ze(JK)}),XK=Nn.extend({method:me("notifications/roots/list_changed"),params:jn.optional()}),W1e=Pt([cf,L7,KK,bK,cK,aK,V7,K7,Q7,X7,tK,vK,hK,uf,df,mf,hf]),Z1e=Pt([of,lf,q7,XK,pu]),G1e=Pt([da,g_,v_,b_,YK,pf,ff,ma]),V1e=Pt([cf,h_,y_,QK,uf,df,mf,hf]),K1e=Pt([of,lf,_K,nK,i_,f_,d_,pu,WK]),J1e=Pt([da,Xx,x_,p_,a_,t_,r_,s_,Ao,m_,pf,ff,ma]),ve=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===Se.UrlElicitationRequired&&n){let s=n;if(s.elicitations)return new Gx(s.elicitations,r)}return new t(e,r,n)}},Gx=class extends ve{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(Se.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function wi(t){return t==="completed"||t==="failed"||t==="cancelled"}var IPe=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function __(t){let r=ef(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=xO(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function w_(t,e){let r=ss(t,e);if(!r.success)throw r.error;return r.data}var iJ=6e4,gf=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(of,r=>{this._oncancel(r)}),this.setNotificationHandler(lf,r=>{this._onprogress(r)}),this.setRequestHandler(cf,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(uf,async(r,n)=>{let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new ve(Se.InvalidParams,"Failed to retrieve task: Task not found");return{...s}}),this.setRequestHandler(df,async(r,n)=>{let s=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let o;for(;o=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(o.type==="response"||o.type==="error"){let c=o.message,l=c.id,u=this._requestResolvers.get(l);if(u)if(this._requestResolvers.delete(l),o.type==="response")u(c);else{let p=c,d=new ve(p.error.code,p.error.message,p.error.data);u(d)}else{let p=o.type==="response"?"Response":"Error";this._onerror(new Error(`${p} handler missing for request ${l}`))}continue}await this._transport?.send(o.message,{relatedRequestId:n.requestId})}}let a=await this._taskStore.getTask(i,n.sessionId);if(!a)throw new ve(Se.InvalidParams,`Task not found: ${i}`);if(!wi(a.status))return await this._waitForTaskUpdate(i,n.signal),await s();if(wi(a.status)){let o=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...o,_meta:{...o._meta,[_i]:{taskId:i}}}}return await s()};return await s()}),this.setRequestHandler(mf,async(r,n)=>{try{let{tasks:s,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:s,nextCursor:i,_meta:{}}}catch(s){throw new ve(Se.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(hf,async(r,n)=>{try{let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new ve(Se.InvalidParams,`Task not found: ${r.params.taskId}`);if(wi(s.status))throw new ve(Se.InvalidParams,`Cannot cancel task in terminal status: ${s.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new ve(Se.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(s){throw s instanceof ve?s:new ve(Se.InvalidRequest,`Failed to cancel task: ${s instanceof Error?s.message:String(s)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,s,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(s,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:s})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),ve.fromError(Se.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let s=this._transport?.onmessage;this._transport.onmessage=(i,a)=>{s?.(i,a),au(i)||JO(i)?this._onresponse(i):Jx(i)?this._onrequest(i,a):KO(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=ve.fromError(Se.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,s=this._transport,i=e.params?._meta?.[_i]?.taskId;if(n===void 0){let u={jsonrpc:"2.0",id:e.id,error:{code:Se.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:u,timestamp:Date.now()},s?.sessionId).catch(p=>this._onerror(new Error(`Failed to enqueue error response: ${p}`))):s?.send(u).catch(p=>this._onerror(new Error(`Failed to send an error response: ${p}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(e.id,a);let o=ZO(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,s?.sessionId):void 0,l={signal:a.signal,sessionId:s?.sessionId,_meta:e.params?._meta,sendNotification:async u=>{if(a.signal.aborted)return;let p={relatedRequestId:e.id};i&&(p.relatedTask={taskId:i}),await this.notification(u,p)},sendRequest:async(u,p,d)=>{if(a.signal.aborted)throw new ve(Se.ConnectionClosed,"Request was cancelled");let m={...d,relatedRequestId:e.id};i&&!m.relatedTask&&(m.relatedTask={taskId:i});let f=m.relatedTask?.taskId??i;return f&&c&&await c.updateTaskStatus(f,"input_required"),await this.request(u,p,m)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:o?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{o&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,l)).then(async u=>{if(a.signal.aborted)return;let p={result:u,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:p,timestamp:Date.now()},s?.sessionId):await s?.send(p)},async u=>{if(a.signal.aborted)return;let p={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(u.code)?u.code:Se.InternalError,message:u.message??"Internal error",...u.data!==void 0&&{data:u.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:p,timestamp:Date.now()},s?.sessionId):await s?.send(p)}).catch(u=>this._onerror(new Error(`Failed to send response: ${u}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===a&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,s=Number(r),i=this._progressHandlers.get(s);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(s),o=this._timeoutInfo.get(s);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(s)}catch(c){this._responseHandlers.delete(s),this._progressHandlers.delete(s),this._cleanupTimeout(s),a(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),au(e))n(e);else{let a=new ve(e.error.code,e.error.message,e.error.data);n(a)}return}let s=this._responseHandlers.get(r);if(s===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(au(e)&&e.result&&typeof e.result=="object"){let a=e.result;if(a.task&&typeof a.task=="object"){let o=a.task;typeof o.taskId=="string"&&(i=!0,this._taskProgressTokens.set(o.taskId,r))}}if(i||this._progressHandlers.delete(r),au(e))s(e);else{let a=ve.fromError(e.error.code,e.error.message,e.error.data);s(a)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:s}=n??{};if(!s){try{yield{type:"result",result:await this.request(e,r,n)}}catch(a){yield{type:"error",error:a instanceof ve?a:new ve(Se.InternalError,String(a))}}return}let i;try{let a=await this.request(e,ma,n);if(a.task)i=a.task.taskId,yield{type:"taskCreated",task:a.task};else throw new ve(Se.InternalError,"Task creation did not return a task");for(;;){let o=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:o},wi(o.status)){o.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:o.status==="failed"?yield{type:"error",error:new ve(Se.InternalError,`Task ${i} failed`)}:o.status==="cancelled"&&(yield{type:"error",error:new ve(Se.InternalError,`Task ${i} was cancelled`)});return}if(o.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=o.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(l=>setTimeout(l,c)),n?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof ve?a:new ve(Se.InternalError,String(a))}}}request(e,r,n){let{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a,task:o,relatedTask:c}=n??{};return new Promise((l,u)=>{let p=y=>{u(y)};if(!this._transport){p(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),o&&this.assertTaskCapability(e.method)}catch(y){p(y);return}n?.signal?.throwIfAborted();let d=this._requestMessageId++,m={...e,jsonrpc:"2.0",id:d};n?.onprogress&&(this._progressHandlers.set(d,n.onprogress),m.params={...e.params,_meta:{...e.params?._meta||{},progressToken:d}}),o&&(m.params={...m.params,task:o}),c&&(m.params={...m.params,_meta:{...m.params?._meta||{},[_i]:c}});let f=y=>{this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:d,reason:String(y)}},{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a}).catch(x=>this._onerror(new Error(`Failed to send cancellation: ${x}`)));let b=y instanceof ve?y:new ve(Se.RequestTimeout,String(y));u(b)};this._responseHandlers.set(d,y=>{if(!n?.signal?.aborted){if(y instanceof Error)return u(y);try{let b=ss(r,y.result);b.success?l(b.data):u(b.error)}catch(b){u(b)}}}),n?.signal?.addEventListener("abort",()=>{f(n?.signal?.reason)});let g=n?.timeout??iJ,v=()=>f(ve.fromError(Se.RequestTimeout,"Request timed out",{timeout:g}));this._setupTimeout(d,g,n?.maxTotalTimeout,v,n?.resetTimeoutOnProgress??!1);let h=c?.taskId;if(h){let y=b=>{let x=this._responseHandlers.get(d);x?x(b):this._onerror(new Error(`Response handler missing for side-channeled request ${d}`))};this._requestResolvers.set(d,y),this._enqueueTaskMessage(h,{type:"request",message:m,timestamp:Date.now()}).catch(b=>{this._cleanupTimeout(d),u(b)})}else this._transport.send(m,{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a}).catch(y=>{this._cleanupTimeout(d),u(y)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},pf,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},ff,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},XO,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let o={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[_i]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:o,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let o={...e,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[_i]:r.relatedTask}}}),this._transport?.send(o,r).catch(c=>this._onerror(c))});return}let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[_i]:r.relatedTask}}}),await this._transport.send(a,r)}setRequestHandler(e,r){let n=__(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(s,i)=>{let a=w_(e,s);return Promise.resolve(r(a,i))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=__(e);this._notificationHandlers.set(n,s=>{let i=w_(e,s);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let s=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,s)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let s of n)if(s.type==="request"&&Jx(s.message)){let i=s.message.id,a=this._requestResolvers.get(i);a?(a(new ve(Se.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let s=await this._taskStore?.getTask(e);s?.pollInterval&&(n=s.pollInterval)}catch{}return new Promise((s,i)=>{if(r.aborted){i(new ve(Se.InvalidRequest,"Request cancelled"));return}let a=setTimeout(s,n);r.addEventListener("abort",()=>{clearTimeout(a),i(new ve(Se.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async s=>{if(!e)throw new Error("No request provided");return await n.createTask(s,e.id,{method:e.method,params:e.params},r)},getTask:async s=>{let i=await n.getTask(s,r);if(!i)throw new ve(Se.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(s,i,a)=>{await n.storeTaskResult(s,i,a,r);let o=await n.getTask(s,r);if(o){let c=pu.parse({method:"notifications/tasks/status",params:o});await this.notification(c),wi(o.status)&&this._cleanupTaskProgressHandler(s)}},getTaskResult:s=>n.getTaskResult(s,r),updateTaskStatus:async(s,i,a)=>{let o=await n.getTask(s,r);if(!o)throw new ve(Se.InvalidParams,`Task "${s}" not found - it may have been cleaned up`);if(wi(o.status))throw new ve(Se.InvalidParams,`Cannot update task "${s}" from terminal status "${o.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(s,i,a,r);let c=await n.getTask(s,r);if(c){let l=pu.parse({method:"notifications/tasks/status",params:c});await this.notification(l),wi(c.status)&&this._cleanupTaskProgressHandler(s)}},listTasks:s=>n.listTasks(s,r)}}};function oA(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function cA(t,e){let r={...t};for(let n in e){let s=n,i=e[s];if(i===void 0)continue;let a=r[s];oA(a)&&oA(i)?r[s]={...a,...i}:r[s]=i}return r}var XN=Q(cw(),1),eD=Q(YN(),1);function cre(){let t=new XN.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,eD.default)(t),t}var Qf=class{constructor(e){this._ajv=e??cre()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var Yf=class{constructor(e){this._client=e}async*callToolStream(e,r=Ao,n){let s=this._client,i={...n,task:n?.task??(s.isToolTask(e.name)?{}:void 0)},a=s.requestStream({method:"tools/call",params:e},r,i),o=s.getToolOutputValidator(e.name);for await(let c of a){if(c.type==="result"&&o){let l=c.result;if(!l.structuredContent&&!l.isError){yield{type:"error",error:new ve(Se.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(l.structuredContent)try{let u=o(l.structuredContent);if(!u.valid){yield{type:"error",error:new ve(Se.InvalidParams,`Structured content does not match the tool's output schema: ${u.errorMessage}`)};return}}catch(u){if(u instanceof ve){yield{type:"error",error:u};return}yield{type:"error",error:new ve(Se.InvalidParams,`Failed to validate structured content: ${u instanceof Error?u.message:String(u)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function tD(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function rD(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function Xf(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let s of Object.keys(n)){let i=n[s];r[s]===void 0&&Object.prototype.hasOwnProperty.call(i,"default")&&(r[s]=i.default),r[s]!==void 0&&Xf(i,r[s])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Xf(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Xf(r,e)}}function lre(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var Qo=class extends gf{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new Qf,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",f_,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",d_,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",i_,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Yf(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=cA(this._capabilities,e)}setRequestHandler(e,r){let s=ef(e)?.method;if(!s)throw new Error("Schema is missing a method literal");let i;if(Io(s)){let o=s;i=o._zod?.def?.value??o.value}else{let o=s;i=o._def?.value??o.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");let a=i;if(a==="elicitation/create"){let o=async(c,l)=>{let u=ss(y_,c);if(!u.success){let y=u.error instanceof Error?u.error.message:String(u.error);throw new ve(Se.InvalidParams,`Invalid elicitation request: ${y}`)}let{params:p}=u.data;p.mode=p.mode??"form";let{supportsFormMode:d,supportsUrlMode:m}=lre(this._capabilities.elicitation);if(p.mode==="form"&&!d)throw new ve(Se.InvalidParams,"Client does not support form-mode elicitation requests");if(p.mode==="url"&&!m)throw new ve(Se.InvalidParams,"Client does not support URL-mode elicitation requests");let f=await Promise.resolve(r(c,l));if(p.task){let y=ss(ma,f);if(!y.success){let b=y.error instanceof Error?y.error.message:String(y.error);throw new ve(Se.InvalidParams,`Invalid task creation result: ${b}`)}return y.data}let g=ss(b_,f);if(!g.success){let y=g.error instanceof Error?g.error.message:String(g.error);throw new ve(Se.InvalidParams,`Invalid elicitation result: ${y}`)}let v=g.data,h=p.mode==="form"?p.requestedSchema:void 0;if(p.mode==="form"&&v.action==="accept"&&v.content&&h&&this._capabilities.elicitation?.form?.applyDefaults)try{Xf(h,v.content)}catch{}return v};return super.setRequestHandler(e,o)}if(a==="sampling/createMessage"){let o=async(c,l)=>{let u=ss(h_,c);if(!u.success){let v=u.error instanceof Error?u.error.message:String(u.error);throw new ve(Se.InvalidParams,`Invalid sampling request: ${v}`)}let{params:p}=u.data,d=await Promise.resolve(r(c,l));if(p.task){let v=ss(ma,d);if(!v.success){let h=v.error instanceof Error?v.error.message:String(v.error);throw new ve(Se.InvalidParams,`Invalid task creation result: ${h}`)}return v.data}let f=p.tools||p.toolChoice?v_:g_,g=ss(f,d);if(!g.success){let v=g.error instanceof Error?g.error.message:String(g.error);throw new ve(Se.InvalidParams,`Invalid sampling result: ${v}`)}return g.data};return super.setRequestHandler(e,o)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:Vx,capabilities:this._capabilities,clientInfo:this._clientInfo}},Xx,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!HO.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){tD(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&rD(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},da,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},x_,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},da,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},p_,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},a_,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},t_,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},r_,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},s_,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},da,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},da,r)}async callTool(e,r=Ao,n){if(this.isToolTaskRequired(e.name))throw new ve(Se.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let s=await this.request({method:"tools/call",params:e},r,n),i=this.getToolOutputValidator(e.name);if(i){if(!s.structuredContent&&!s.isError)throw new ve(Se.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(s.structuredContent)try{let a=i(s.structuredContent);if(!a.valid)throw new ve(Se.InvalidParams,`Structured content does not match the tool's output schema: ${a.errorMessage}`)}catch(a){throw a instanceof ve?a:new ve(Se.InvalidParams,`Failed to validate structured content: ${a instanceof Error?a.message:String(a)}`)}}return s}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let s=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,s)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},m_,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,s){let i=iA.safeParse(n);if(!i.success)throw new Error(`Invalid ${e} listChanged options: ${i.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:a,debounceMs:o}=i.data,{onChanged:c}=n,l=async()=>{if(!a){c(null,null);return}try{let p=await s();c(null,p)}catch(p){let d=p instanceof Error?p:new Error(String(p));c(d,null)}},u=()=>{if(o){let p=this._listChangedDebounceTimers.get(e);p&&clearTimeout(p);let d=setTimeout(l,o);this._listChangedDebounceTimers.set(e,d)}else l()};this.setNotificationHandler(r,u)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var ZD=Q(BD(),1),rh=Q(require("node:process"),1),GD=require("node:stream");var th=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` +`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),Mre(r)}clear(){this._buffer=void 0}};function Mre(t){return QO.parse(JSON.parse(t))}function WD(t){return JSON.stringify(t)+` +`}var zre=rh.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function $re(){let t={};for(let e of zre){let r=rh.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var ec=class{constructor(e){this._readBuffer=new th,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new GD.PassThrough)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{this._process=(0,ZD.default)(this._serverParams.command,this._serverParams.args??[],{env:{...$re(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:rh.default.platform==="win32",cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{this._readBuffer.append(n),this.processReadBuffer()}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=WD(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};Ln();sh();re();var Rw=require("os"),Pw=require("path"),qre=["/opt/homebrew/bin","/usr/local/bin","/home/linuxbrew/.linuxbrew/bin",`${(0,Rw.homedir)()}/.cargo/bin`,`${(0,Rw.homedir)()}/.local/bin`];function Fre(t=process.env.PATH){let e=t?t.split(Pw.delimiter).filter(n=>n.length>0):[],r=new Set(e);for(let n of qre)r.has(n)||(e.push(n),r.add(n));return e.join(Pw.delimiter)}function Bu(t=process.env){return{...t,PATH:Fre(t.PATH)}}Ju();re();Ln();var Wre=5e3;async function bh(t,e={},r=Wre){let n=new Promise((s,i)=>setTimeout(()=>i(new Error(`Fetch timeout after ${r}ms`)),r));return Promise.race([fetch(t,e),n])}var Zre="8.10.5";function xh(t){let e=us();return`http://${e.includes(":")&&!e.startsWith("[")?`[${e}]`:e}:${t}`}async function $w(t){try{return(await bh(`${xh(t)}/api/health`)).ok}catch{return!1}}async function Qu(t,e=3e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function Yu(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function Xu(t){try{let e=await bh(`${xh(t)}/api/admin/shutdown`,{method:"POST"});return e.ok?!0:(_.warn("SYSTEM","Shutdown request returned error",{port:t,status:e.status}),!1)}catch(e){return e instanceof Error&&(e.message?.includes("ECONNREFUSED")||e.message?.includes("Fetch timeout"))?(_.debug("SYSTEM","Worker already stopped or not responding",{port:t}),!1):(_.error("SYSTEM","Shutdown request failed unexpectedly",{port:t},e),!1)}}function Gre(){return Zre}async function Vre(t){try{let e=await bh(`${xh(t)}/api/version`);return e.ok?(await e.json()).version:null}catch{return _.debug("SYSTEM","Could not fetch worker version",{port:t}),null}}async function _M(t){let e=Gre(),r=await Vre(t);return r?{matches:e===r,pluginVersion:e,workerVersion:r}:{matches:!0,pluginVersion:e,workerVersion:r}}re();Ju();var ep=5e3;async function tp(t,e,r){let n=new Promise(i=>setTimeout(()=>{_.warn("SYSTEM",`${r} timed out after ${e}ms`),i({completed:!1})},e)),s=t.then(i=>({completed:!0,result:i}));return Promise.race([s,n])}async function wM(t){_.info("SYSTEM","Shutdown initiated"),ds();let e=await tp(Nw(process.pid),ep,"Enumerate child processes"),r=e.completed?e.result??[]:[];if(_.info("SYSTEM","Found child processes",{count:r.length,pids:r}),t.server&&(await tp(Kre(t.server),ep,"Close HTTP server"),_.info("SYSTEM","HTTP server closed")),await tp(t.sessionManager.shutdownAll(),ep,"Shutdown sessions"),t.mcpClient&&(await tp(t.mcpClient.close(),ep,"Close MCP client"),_.info("SYSTEM","MCP client closed")),t.dbManager&&await tp(t.dbManager.close(),ep,"Close database"),r.length>0){_.info("SYSTEM","Force killing remaining children");for(let n of r)await Dw(n);await Mw(r,5e3)}_.info("SYSTEM","Worker shutdown complete")}async function Kre(t){t.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{t.close(n=>n?r(n):e())}),process.platform==="win32"&&(await new Promise(e=>setTimeout(e,500)),_.info("SYSTEM","Waited for Windows port cleanup"))}Ju();re();As();var Jre={waitForHealth:Qu,checkVersionMatch:_M,httpShutdown:Xu,waitForPortFree:Yu,isPortInUse:$w,spawnDaemon:Ku,writePidFile:Vu,removePidFile:ds,cleanStalePidFile:jw,getPlatformTimeout:Pa};async function Lw(t,e,r=Jre){if(r.cleanStalePidFile(),await r.waitForHealth(t,1e3)){let i=await r.checkVersionMatch(t);if(i.matches)return{ready:!0};if(_.info("SYSTEM","Worker version mismatch detected - auto-restarting",{pluginVersion:i.pluginVersion,workerVersion:i.workerVersion}),await r.httpShutdown(t),!await r.waitForPortFree(t,r.getPlatformTimeout(qt.PORT_IN_USE_WAIT)))return{ready:!1,error:"Port did not free after version mismatch restart"};r.removePidFile()}if(await r.isPortInUse(t))return _.info("SYSTEM","Port in use, waiting for worker to become healthy"),await r.waitForHealth(t,r.getPlatformTimeout(qt.PORT_IN_USE_WAIT))?{ready:!0}:{ready:!1,error:"Port in use but worker not responding"};_.info("SYSTEM","Starting worker daemon");let n=r.spawnDaemon(e,t);return n===void 0?{ready:!1,error:"Failed to spawn worker daemon"}:(r.writePidFile({pid:n,port:t,startedAt:new Date().toISOString()}),await r.waitForHealth(t,r.getPlatformTimeout(qt.POST_SPAWN_WAIT))?{ready:!0}:(r.removePidFile(),{ready:!1,error:"Worker failed to start (health check timeout)"}))}var R6=Q(td(),1),pk=Q(require("fs"),1),dk=Q(require("path"),1);re();var rk=Q(td(),1),p6=Q(a6(),1),d6=Q(u6(),1),m6=Q(require("path"),1);er();re();sh();var hfe=[/^https?:\/\/localhost(:\d+)?$/,/^https?:\/\/127\.0\.0\.1(:\d+)?$/,/^https?:\/\/\[::1\](:\d+)?$/];function gfe(t){if(t===void 0||hfe.some(e=>e.test(t)))return!0;if(Ta()){let e=KD();if(e&&t&&new RegExp(`^https?://${e.replace(/\./g,"\\.")}(:\\d+)?$`).test(t))return!0}return!1}function nk(t){let e=[];e.push(rk.default.json({limit:"5mb"})),e.push((0,p6.default)({origin:(s,i)=>{gfe(s)?i(null,!0):(_.warn("SECURITY","CORS request blocked",{origin:s}),i(null,!1))}})),e.push((0,d6.default)()),e.push((s,i,a)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(f=>s.path.endsWith(f)),l=s.path==="/api/logs";if(s.path.startsWith("/health")||s.path==="/"||c||l)return a();let u=Date.now(),p=`${s.method}-${Date.now()}`,d=t(s.method,s.path,s.body);_.info("HTTP",`\u2192 ${s.method} ${s.path}`,{requestId:p},d);let m=i.send.bind(i);i.send=function(f){let g=Date.now()-u;return _.info("HTTP",`\u2190 ${i.statusCode} ${s.path}`,{requestId:p,duration:`${g}ms`}),m(f)},a()});let r=ca(),n=m6.default.join(r,"plugin","ui");return e.push(rk.default.static(n)),e}function Og(t,e,r){let n=t.ip||t.connection.remoteAddress||"";if(!(n==="127.0.0.1"||n==="::1"||n==="::ffff:127.0.0.1"||n==="localhost")){_.warn("SECURITY","Admin endpoint access denied - not localhost",{endpoint:t.path,clientIp:n,method:t.method}),e.status(403).json({error:"Forbidden",message:"Admin endpoints are only accessible from localhost"});return}r()}function sk(t,e,r){if(!r||Object.keys(r).length===0||e.includes("/init"))return"";if(e.includes("/observations")){let n=r.tool_name||"?",s=r.tool_input;return`tool=${_.formatTool(n,s)}`}return e.includes("/summarize")?"requesting summary":""}re();var rd=class extends Error{constructor(r,n=500,s,i){super(r);this.statusCode=n;this.code=s;this.details=i;this.name="AppError"}statusCode;code;details};function f6(t,e,r,n){let s={error:t,message:e};return r&&(s.code=r),n&&(s.details=n),s}var h6=(t,e,r,n)=>{let s=t instanceof rd?t.statusCode:500;_.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:s,error:t.message,code:t instanceof rd?t.code:void 0},t);let i=t instanceof rd,a=f6(i&&t.name||"Error",i?t.message:"Internal server error",i?t.code:void 0,i?t.details:void 0);r.status(s).json(a)};function g6(t,e){e.status(404).json(f6("NotFound",`Cannot ${t.method} ${t.path}`))}uk();Ln();var Rfe="8.10.5",Mg=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,R6.default)(),this.setupMiddleware(),this.setupCoreRoutes()}getHttpServer(){return this.server}async listen(e,r){return new Promise((n,s)=>{this.server=this.app.listen(e,r,()=>{_.info("SYSTEM","HTTP server started",{host:r,port:e,pid:process.pid}),n()}),this.server.on("error",s)})}async close(){this.server&&(this.server.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{this.server.close(n=>n?r(n):e())}),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),this.server=null,_.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(g6),this.app.use(h6)}setupMiddleware(){nk(sk).forEach(s=>this.app.use(s)),this.app.use("/api/auth/login",id(10,6e4)),this.app.use(id(1e3,6e4));let r=lh();if(r!=="127.0.0.1"&&r!=="localhost"){let s=Wa();_.info("SYSTEM","Enabling authentication middleware for network access",{bind:r,tokenConfigured:s}),s||_.warn("SYSTEM","No CLAUDE_PILOT_REMOTE_TOKEN set - all remote requests will be rejected until a token is configured",{bind:r}),this.app.use(Dg),Ng()}}setupCoreRoutes(){let e="TEST-008-wrapper-ipc";this.app.get("/api/health",(r,n)=>{n.status(200).json({status:"ok",build:e,managed:process.env.CLAUDE_PILOT_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),coreReady:this.options.getCoreReady(),mcpReady:this.options.getMcpReady()})}),this.app.get("/api/core-ready",(r,n)=>{this.options.getCoreReady()?n.status(200).json({status:"ready",message:"Core services ready (Database + SearchManager)"}):n.status(503).json({status:"initializing",message:"Core services still initializing, please retry"})}),this.app.get("/api/readiness",(r,n)=>{this.options.getInitializationComplete()?n.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):n.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(r,n)=>{n.status(200).json({version:Rfe})}),this.app.get("/api/process-stats",async(r,n)=>{try{let{getProcessStats:s}=await Promise.resolve().then(()=>(Ju(),xM)),i=await s();n.status(200).json({...i,uptime:Math.round((Date.now()-this.startTime)/1e3),platform:process.platform,pid:process.pid})}catch(s){_.error("SYSTEM","Failed to get process stats",{},s),n.status(500).json({error:"Failed to get process stats"})}}),this.app.get("/api/instructions",async(r,n)=>{let s=r.query.topic||"all",i=r.query.operation;try{let a;if(i){let o=dk.default.join(__dirname,"../skills/mem-search/operations",`${i}.md`);a=await pk.promises.readFile(o,"utf-8")}else{let o=dk.default.join(__dirname,"../skills/mem-search/SKILL.md"),c=await pk.promises.readFile(o,"utf-8");a=this.extractInstructionSection(c,s)}n.json({content:[{type:"text",text:a}]})}catch{n.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",Og,async(r,n)=>{n.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_PILOT_MANAGED==="true"&&process.send?(_.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{await this.options.onRestart()},100)}),this.app.post("/api/admin/shutdown",Og,async(r,n)=>{n.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_PILOT_MANAGED==="true"&&process.send?(_.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{await this.options.onShutdown()},100)})}extractInstructionSection(e,r){let n={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return n[r]||n.all}extractBetween(e,r,n){let s=e.indexOf(r),i=e.indexOf(n);return s===-1?e:i===-1?e.substring(s):e.substring(s,i).trim()}};zg();var I6=require("bun:sqlite");er();re();var $g=class{db;constructor(e){e||(rs(nn),e=Bl),this.db=new I6.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(n=>n.name==="observations_fts"||n.name==="session_summaries_fts")||(_.info("DB","Creating FTS5 tables"),this.db.run(` CREATE VIRTUAL TABLE IF NOT EXISTS observations_fts USING fts5( title, subtitle, @@ -1077,7 +1077,7 @@ ${X.dim}No previous sessions found for this project yet.${X.reset} FROM user_prompts WHERE content_session_id = ? ORDER BY prompt_number ASC - `).all(e)}close(){this.db.close()}};Lg();re();re();var D6=Q(require("fs"),1),gE=Q(require("os"),1),vE=Q(require("path"),1);Or();er();re();var qg=Q(require("fs"),1),od=Q(require("path"),1);function Nfe(t){let e=process.platform==="win32",r=e?"Scripts":"bin",n=e?"chroma-mcp.exe":"chroma-mcp";return od.default.join(t,r,n)}async function Dfe(t){let e=od.default.join(t,".pilot-installed");if(qg.default.existsSync(e))return!0;let n=Ae.loadFromFile(Ht).CLAUDE_PILOT_PYTHON_VERSION;try{let{spawnSync:s}=await import("child_process");_.info("CHROMA_SYNC","Creating persistent venv for chroma-mcp",{venvDir:t,pythonVersion:n});let i=s("uv",["venv","--python",n,t],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:6e4});if(i.status!==0)return _.error("CHROMA_SYNC","Failed to create venv",{stderr:i.stderr?.slice(0,200)}),!1;let a=process.platform==="win32",o=od.default.join(t,a?"Scripts/python.exe":"bin/python"),c=s("uv",["pip","install","--python",o,"chroma-mcp"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:12e4});return c.status!==0?(_.error("CHROMA_SYNC","Failed to install chroma-mcp in venv",{stderr:c.stderr?.slice(0,200)}),!1):(qg.default.mkdirSync(od.default.dirname(e),{recursive:!0}),qg.default.writeFileSync(e,"chroma-mcp"),_.info("CHROMA_SYNC","Persistent venv ready",{venvDir:t}),!0)}catch(s){return _.error("CHROMA_SYNC","Venv setup failed, will fall back to uvx",{},s),!1}}async function N6(t,e){let n=Ae.loadFromFile(Ht).CLAUDE_PILOT_PYTHON_VERSION,s=process.platform==="win32",i=["--client-type","persistent","--data-dir",e],a=Nfe(t);try{let{spawnSync:u}=await import("child_process");if(u(a,["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0){let d={command:a,args:i,stderr:"ignore"};return s&&(d.windowsHide=!0),d}if(await Dfe(t)){let d={command:a,args:i,stderr:"ignore"};return s&&(d.windowsHide=!0),d}}catch(u){_.debug("CHROMA_SYNC","Venv check failed, trying uvx",{},u)}let o={command:"uvx",args:["--python",n,"chroma-mcp",...i],stderr:"ignore"};s&&(o.windowsHide=!0);try{let{spawnSync:u}=await import("child_process");if(u("uvx",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0)return o}catch(u){_.debug("CHROMA_SYNC","uvx check failed, trying pip",{},u)}let c=s?"python":`python${n}`,l={command:c,args:["-m","chroma_mcp",...i],stderr:"ignore"};s&&(l.windowsHide=!0);try{let{spawnSync:u}=await import("child_process");if(u(c,["-c","import chroma_mcp"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0)return l}catch(u){_.debug("CHROMA_SYNC","pip check failed",{},u)}throw new Error("Chroma MCP not available. Install with: uvx chroma-mcp OR pip install chroma-mcp")}var Mfe="1.0.0",Fg=class{client=null;transport=null;childPid=void 0;connected=!1;project;collectionName;VECTOR_DB_DIR;VENV_DIR;connectionPromise=null;operationMutex=Promise.resolve();failureCount=0;circuitOpenUntil=0;isHalfOpenAttemptInProgress=!1;corruptionRecoveryAttempted=!1;maxFailures;cooldownMs;constructor(e,r){this.project=e,this.collectionName=`cm__${e}`,this.VECTOR_DB_DIR=vE.default.join(gE.default.homedir(),".pilot/memory","vector-db"),this.VENV_DIR=vE.default.join(gE.default.homedir(),".pilot/memory","chroma-venv"),this.maxFailures=r?.maxFailures??3,this.cooldownMs=r?.cooldownMs??6e4}getCollectionName(){return this.collectionName}async getClient(){if(this.connected&&this.client)return this.client;if(this.connectionPromise&&(await this.connectionPromise,this.connected&&this.client))return this.client;if(this.failureCount>=this.maxFailures){let e=Date.now();if(e=this.maxFailures&&(this.circuitOpenUntil=Date.now()+this.cooldownMs,_.error("CHROMA_SYNC",`Circuit breaker opened after ${this.failureCount} failures`,{project:this.project},e)),await this.safeCloseTransport(),this.client=null,this.connected=!1,new Error(`Chroma connection failed: ${e instanceof Error?e.message:String(e)}`)}}async getWorkingTransportOptions(){return N6(this.VENV_DIR,this.VECTOR_DB_DIR)}async withMutex(e){let r=await this.getClient(),n,s=this.operationMutex;this.operationMutex=new Promise(i=>{n=i}),await s;try{return await e(r)}finally{n()}}async isHealthy(){return this.connected&&this.client!==null}async recoverFromCorruptedDatabase(){if(this.corruptionRecoveryAttempted)return!1;this.corruptionRecoveryAttempted=!0,_.warn("CHROMA_SYNC","Attempting corruption recovery \u2014 deleting vector-db",{vectorDbDir:this.VECTOR_DB_DIR,project:this.project}),await this.close();try{D6.default.rmSync(this.VECTOR_DB_DIR,{recursive:!0,force:!0}),_.info("CHROMA_SYNC","Corrupted vector-db deleted, will rebuild on next connect")}catch(e){return _.error("CHROMA_SYNC","Failed to delete corrupted vector-db",{},e),!1}return this.failureCount=0,this.circuitOpenUntil=0,!0}async close(){await this.safeCloseTransport(),this.client=null,this.transport=null,this.connected=!1,this.connectionPromise=null}async safeCloseTransport(){let e=this.childPid;if(this.childPid=void 0,this.transport)try{await this.transport.close()}catch(r){_.debug("CHROMA_SYNC","Transport close error (non-fatal)",{},r)}if(e!==void 0)try{process.kill(e,0),_.warn("CHROMA_SYNC","Chroma subprocess survived transport.close(), force killing",{pid:e}),process.kill(e,"SIGKILL")}catch{}}};var Er=Q(require("node:fs"),1),qi=Q(require("node:path"),1);re();var zfe=512,cd=2048,ld=51200,$fe=1024,Lfe=10240,Hg=10080*60*1e3,Ufe=2,Ga=class extends Error{logical;physical;capKind;constructor(e,r,n){super(`vector-db size limit exceeded (${e}: logical=${r}B physical=${n}B). Refusing write to prevent runaway growth.`),this.name="VectorDbSizeLimitError",this.capKind=e,this.logical=r,this.physical=n}};function Bg(t){let e={logical:0,physical:0,fileCount:0};if(!Er.default.existsSync(t))return e;let r=[t];for(;r.length>0;){let n=r.pop(),s;try{s=Er.default.readdirSync(n,{withFileTypes:!0})}catch{continue}for(let i of s){let a=qi.default.join(n,i.name);if(i.isDirectory()){r.push(a);continue}try{let o=Er.default.statSync(a),c=o.size,l=typeof o.blocks=="number"&&o.blocks>=0?o.blocks*zfe:c;e.logical+=c,e.physical+=l,e.fileCount+=1,(!e.largestFile||c>e.largestFile.logical||c===e.largestFile.logical&&l>e.largestFile.physical)&&(e.largestFile={path:a,logical:c,physical:l})}catch{}}}return e}function Wg(t,e={}){let r=e.maxPhysicalBytes??cd*1024*1024,n=e.maxLogicalBytes??ld*1024*1024,s=Bg(t);if(s.fileCount===0)return{evicted:!1,before:s};let i;if(s.physical>r?i="physical_cap_exceeded":s.logical>n&&(i="logical_cap_exceeded"),!i)return{evicted:!1,before:s};let a=`${t}.evicted.${Date.now()}`,o=!0;try{Er.default.renameSync(t,a)}catch(u){o=!1,_.error("VECTOR_DB_GUARD","Rename failed during eviction, falling back to recursive delete",{dir:t,backupPath:a},u);try{Er.default.rmSync(t,{recursive:!0,force:!0})}catch(p){return{evicted:!1,before:s,reason:i,error:p.message}}}let c=qfe(qi.default.dirname(t),{before:s,reason:i,backupPath:o?a:void 0});Hfe(qi.default.dirname(t),qi.default.basename(t));let l=!1;return e.settingsPathForAutoDisable&&c>=Ufe&&(l=Ffe(e.settingsPathForAutoDisable),l&&_.warn("VECTOR_DB_GUARD",`Auto-disabled Chroma after ${c} evictions in ${Math.round(Hg/(1440*60*1e3))} days \u2014 search will fall back to SQLite. Re-enable by setting CLAUDE_PILOT_CHROMA_ENABLED=true in settings.json.`,{settingsPath:e.settingsPathForAutoDisable,recentEvictionCount:c})),{evicted:!0,before:s,reason:i,backupPath:o?a:void 0,recentEvictionCount:c,chromaAutoDisabled:l}}function qfe(t,e){let r=qi.default.join(t,"vector-db.last-eviction.json"),n=Date.now(),s=[];try{if(Er.default.existsSync(r)){let a=JSON.parse(Er.default.readFileSync(r,"utf-8"));Array.isArray(a.history)&&(s=a.history.filter(o=>typeof o?.epochMs=="number"&&n-o.epochMsn-a.epochMs<=Hg).length;try{Er.default.writeFileSync(r,JSON.stringify({timestamp:new Date(n).toISOString(),reason:e.reason,backupPath:e.backupPath??null,logicalBytes:e.before.logical,physicalBytes:e.before.physical,fileCount:e.before.fileCount,largestFile:e.before.largestFile??null,recentEvictionCount:i,autoDisableWindowMs:Hg,history:s},null,2),"utf-8")}catch(a){_.warn("VECTOR_DB_GUARD","Failed to write eviction marker",{marker:r},a)}return i}function M6(t,e={}){let r=e.maxPhysicalBytes??$fe*1024*1024,n=e.maxLogicalBytes??Lfe*1024*1024,s=Bg(t);if(s.fileCount!==0){if(s.physical>r)throw new Ga("physical",s.logical,s.physical);if(s.logical>n)throw new Ga("logical",s.logical,s.physical)}}function Ffe(t){try{if(!Er.default.existsSync(t))return Er.default.mkdirSync(qi.default.dirname(t),{recursive:!0}),Er.default.writeFileSync(t,JSON.stringify({CLAUDE_PILOT_CHROMA_ENABLED:!1},null,2),"utf-8"),!0;let e=Er.default.readFileSync(t,"utf-8"),r=JSON.parse(e),n=r&&typeof r.env=="object"&&r.env!==null?r.env:r;if(n.CLAUDE_PILOT_CHROMA_ENABLED===!1)return!1;n.CLAUDE_PILOT_CHROMA_ENABLED=!1;let s=`${t}.tmp-${process.pid}-${Date.now()}`;return Er.default.writeFileSync(s,JSON.stringify(r,null,2),"utf-8"),Er.default.renameSync(s,t),!0}catch(e){return _.error("VECTOR_DB_GUARD","Failed to auto-disable Chroma in settings",{settingsPath:t},e),!1}}function Hfe(t,e){try{let n=Er.default.readdirSync(t,{withFileTypes:!0}).filter(s=>s.isDirectory()&&s.name.startsWith(`${e}.evicted.`)).map(s=>{let i=s.name.slice(`${e}.evicted.`.length),a=Number.parseInt(i,10);return{name:s.name,ts:Number.isNaN(a)?0:a}}).sort((s,i)=>i.ts-s.ts);for(let s of n.slice(2)){let i=qi.default.join(t,s.name);try{Er.default.rmSync(i,{recursive:!0,force:!0})}catch(a){_.debug("VECTOR_DB_GUARD","Failed to prune stale eviction backup",{full:i},a)}}}catch{}}var Zg=class{connectionManager;project;collectionName;BATCH_SIZE=100;writeGateTripped=!1;constructor(e){this.project=e,this.collectionName=`cm__${e}`,this.connectionManager=new Fg(e)}assertSafeToWrite(e){if(this.writeGateTripped)throw new Ga("physical",0,0);try{M6(this.connectionManager.VECTOR_DB_DIR)}catch(r){throw r instanceof Ga&&(this.writeGateTripped=!0,_.error("VECTOR_DB_GUARD",`Refusing ${e}: vector-db already at size limit`,{capKind:r.capKind,logical:r.logical,physical:r.physical}),this.connectionManager.close()),r}}async getClient(){return this.connectionManager.getClient()}async invalidateConnection(){await this.connectionManager.close()}async ensureCollection(){let e=await this.getClient();try{await e.callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}}),_.debug("CHROMA_SYNC","Collection exists",{collection:this.collectionName})}catch(r){let n=r instanceof Error?r.message:String(r);if(n.includes("Not connected")||n.includes("Connection closed")||n.includes("MCP error -32000")){if(await this.connectionManager.recoverFromCorruptedDatabase())return _.warn("CHROMA_SYNC","Corruption recovery triggered, retrying collection check"),this.ensureCollection();throw await this.invalidateConnection(),_.error("CHROMA_SYNC","Connection lost during collection check",{collection:this.collectionName},r),new Error(`Chroma connection lost: ${n}`)}_.error("CHROMA_SYNC","Collection check failed, attempting to create",{collection:this.collectionName},r),_.info("CHROMA_SYNC","Creating collection",{collection:this.collectionName});try{this.assertSafeToWrite("create_collection"),await e.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),_.info("CHROMA_SYNC","Collection created",{collection:this.collectionName})}catch(i){throw _.error("CHROMA_SYNC","Failed to create collection",{collection:this.collectionName},i),new Error(`Collection creation failed: ${i instanceof Error?i.message:String(i)}`)}}return e}formatObservationDocs(e){let r=[],n=e.facts?JSON.parse(e.facts):[],s=e.concepts?JSON.parse(e.concepts):[],i=e.files_read?JSON.parse(e.files_read):[],a=e.files_modified?JSON.parse(e.files_modified):[],o={sqlite_id:e.id,doc_type:"observation",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,type:e.type||"discovery",title:e.title||"Untitled"};return e.subtitle&&(o.subtitle=e.subtitle),s.length>0&&(o.concepts=s.join(",")),i.length>0&&(o.files_read=i.join(",")),a.length>0&&(o.files_modified=a.join(",")),e.narrative&&r.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...o,field_type:"narrative"}}),e.text&&r.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...o,field_type:"text"}}),n.forEach((c,l)=>{r.push({id:`obs_${e.id}_fact_${l}`,document:c,metadata:{...o,field_type:"fact",fact_index:l}})}),r}formatSummaryDocs(e){let r=[],n={sqlite_id:e.id,doc_type:"session_summary",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number||0};return e.request&&r.push({id:`summary_${e.id}_request`,document:e.request,metadata:{...n,field_type:"request"}}),e.investigated&&r.push({id:`summary_${e.id}_investigated`,document:e.investigated,metadata:{...n,field_type:"investigated"}}),e.learned&&r.push({id:`summary_${e.id}_learned`,document:e.learned,metadata:{...n,field_type:"learned"}}),e.completed&&r.push({id:`summary_${e.id}_completed`,document:e.completed,metadata:{...n,field_type:"completed"}}),e.next_steps&&r.push({id:`summary_${e.id}_next_steps`,document:e.next_steps,metadata:{...n,field_type:"next_steps"}}),e.notes&&r.push({id:`summary_${e.id}_notes`,document:e.notes,metadata:{...n,field_type:"notes"}}),r}async addDocuments(e){if(e.length===0)return;let r=await this.ensureCollection();try{this.assertSafeToWrite("add_documents"),await r.callTool({name:"chroma_add_documents",arguments:{collection_name:this.collectionName,documents:e.map(n=>n.document),ids:e.map(n=>n.id),metadatas:e.map(n=>n.metadata)}}),_.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}catch(n){throw _.error("CHROMA_SYNC","Failed to add documents",{collection:this.collectionName,count:e.length},n),new Error(`Document add failed: ${n instanceof Error?n.message:String(n)}`)}}async syncObservation(e,r,n,s,i,a,o=0){let c={id:e,memory_session_id:r,project:n,text:null,type:s.type,title:s.title,subtitle:s.subtitle,facts:JSON.stringify(s.facts),narrative:s.narrative,concepts:JSON.stringify(s.concepts),files_read:JSON.stringify(s.files_read),files_modified:JSON.stringify(s.files_modified),prompt_number:i,discovery_tokens:o,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a},l=this.formatObservationDocs(c);_.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:l.length,project:n}),await this.addDocuments(l)}async syncSummary(e,r,n,s,i,a,o=0){let c={id:e,memory_session_id:r,project:n,request:s.request,investigated:s.investigated,learned:s.learned,completed:s.completed,next_steps:s.next_steps,notes:s.notes,prompt_number:i,discovery_tokens:o,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a},l=this.formatSummaryDocs(c);_.info("CHROMA_SYNC","Syncing summary",{summaryId:e,documentCount:l.length,project:n}),await this.addDocuments(l)}formatUserPromptDoc(e){return{id:`prompt_${e.id}`,document:e.prompt_text,metadata:{sqlite_id:e.id,doc_type:"user_prompt",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number}}}async syncUserPrompt(e,r,n,s,i,a){let o={id:e,content_session_id:"",prompt_number:i,prompt_text:s,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a,memory_session_id:r,project:n},c=this.formatUserPromptDoc(o);_.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:n}),await this.addDocuments([c])}async getExistingChromaIds(){let e=await this.getClient(),r=new Set,n=new Set,s=new Set,i=0,a=1e3;for(_.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:this.project});;)try{let c=(await e.callTool({name:"chroma_get_documents",arguments:{collection_name:this.collectionName,limit:a,offset:i,where:{project:this.project},include:["metadatas"]}})).content[0];if(!c||c.type!=="text"||!c.text)throw new Error("Unexpected response type from chroma_get_documents");let u=JSON.parse(c.text).metadatas||[];if(u.length===0)break;for(let p of u)p.sqlite_id&&(p.doc_type==="observation"?r.add(p.sqlite_id):p.doc_type==="session_summary"?n.add(p.sqlite_id):p.doc_type==="user_prompt"&&s.add(p.sqlite_id));i+=a,_.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:this.project,offset:i,batchSize:u.length})}catch(o){throw _.error("CHROMA_SYNC","Failed to fetch existing IDs",{project:this.project},o),o}return _.info("CHROMA_SYNC","Existing IDs fetched",{project:this.project,observations:r.size,summaries:n.size,prompts:s.size}),{observations:r,summaries:n,prompts:s}}async ensureBackfilled(){_.info("CHROMA_SYNC","Starting smart backfill",{project:this.project}),await this.ensureCollection();let e=await this.getExistingChromaIds(),r=new Ui;try{let n=Array.from(e.observations),s=n.length>0?`AND id NOT IN (${n.join(",")})`:"",i=r.db.prepare(` + `).all(e)}close(){this.db.close()}};zg();re();re();var O6=Q(require("fs"),1),mk=Q(require("os"),1),fk=Q(require("path"),1);Or();er();re();var Lg=Q(require("fs"),1),ad=Q(require("path"),1);function Pfe(t){let e=process.platform==="win32",r=e?"Scripts":"bin",n=e?"chroma-mcp.exe":"chroma-mcp";return ad.default.join(t,r,n)}async function Ife(t){let e=ad.default.join(t,".pilot-installed");if(Lg.default.existsSync(e))return!0;let n=Ae.loadFromFile(Ht).CLAUDE_PILOT_PYTHON_VERSION;try{let{spawnSync:s}=await import("child_process");_.info("CHROMA_SYNC","Creating persistent venv for chroma-mcp",{venvDir:t,pythonVersion:n});let i=s("uv",["venv","--python",n,t],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:6e4});if(i.status!==0)return _.error("CHROMA_SYNC","Failed to create venv",{stderr:i.stderr?.slice(0,200)}),!1;let a=process.platform==="win32",o=ad.default.join(t,a?"Scripts/python.exe":"bin/python"),c=s("uv",["pip","install","--python",o,"chroma-mcp"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:12e4});return c.status!==0?(_.error("CHROMA_SYNC","Failed to install chroma-mcp in venv",{stderr:c.stderr?.slice(0,200)}),!1):(Lg.default.mkdirSync(ad.default.dirname(e),{recursive:!0}),Lg.default.writeFileSync(e,"chroma-mcp"),_.info("CHROMA_SYNC","Persistent venv ready",{venvDir:t}),!0)}catch(s){return _.error("CHROMA_SYNC","Venv setup failed, will fall back to uvx",{},s),!1}}async function C6(t,e){let n=Ae.loadFromFile(Ht).CLAUDE_PILOT_PYTHON_VERSION,s=process.platform==="win32",i=["--client-type","persistent","--data-dir",e],a=Pfe(t);try{let{spawnSync:u}=await import("child_process");if(u(a,["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0){let d={command:a,args:i,stderr:"ignore"};return s&&(d.windowsHide=!0),d}if(await Ife(t)){let d={command:a,args:i,stderr:"ignore"};return s&&(d.windowsHide=!0),d}}catch(u){_.debug("CHROMA_SYNC","Venv check failed, trying uvx",{},u)}let o={command:"uvx",args:["--python",n,"chroma-mcp",...i],stderr:"ignore"};s&&(o.windowsHide=!0);try{let{spawnSync:u}=await import("child_process");if(u("uvx",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0)return o}catch(u){_.debug("CHROMA_SYNC","uvx check failed, trying pip",{},u)}let c=s?"python":`python${n}`,l={command:c,args:["-m","chroma_mcp",...i],stderr:"ignore"};s&&(l.windowsHide=!0);try{let{spawnSync:u}=await import("child_process");if(u(c,["-c","import chroma_mcp"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0)return l}catch(u){_.debug("CHROMA_SYNC","pip check failed",{},u)}throw new Error("Chroma MCP not available. Install with: uvx chroma-mcp OR pip install chroma-mcp")}var Cfe="1.0.0",Ug=class{client=null;transport=null;childPid=void 0;connected=!1;project;collectionName;VECTOR_DB_DIR;VENV_DIR;connectionPromise=null;operationMutex=Promise.resolve();failureCount=0;circuitOpenUntil=0;isHalfOpenAttemptInProgress=!1;corruptionRecoveryAttempted=!1;maxFailures;cooldownMs;constructor(e,r){this.project=e,this.collectionName=`cm__${e}`,this.VECTOR_DB_DIR=fk.default.join(mk.default.homedir(),".pilot/memory","vector-db"),this.VENV_DIR=fk.default.join(mk.default.homedir(),".pilot/memory","chroma-venv"),this.maxFailures=r?.maxFailures??3,this.cooldownMs=r?.cooldownMs??6e4}getCollectionName(){return this.collectionName}async getClient(){if(this.connected&&this.client)return this.client;if(this.connectionPromise&&(await this.connectionPromise,this.connected&&this.client))return this.client;if(this.failureCount>=this.maxFailures){let e=Date.now();if(e=this.maxFailures&&(this.circuitOpenUntil=Date.now()+this.cooldownMs,_.error("CHROMA_SYNC",`Circuit breaker opened after ${this.failureCount} failures`,{project:this.project},e)),await this.safeCloseTransport(),this.client=null,this.connected=!1,new Error(`Chroma connection failed: ${e instanceof Error?e.message:String(e)}`)}}async getWorkingTransportOptions(){return C6(this.VENV_DIR,this.VECTOR_DB_DIR)}async withMutex(e){let r=await this.getClient(),n,s=this.operationMutex;this.operationMutex=new Promise(i=>{n=i}),await s;try{return await e(r)}finally{n()}}async isHealthy(){return this.connected&&this.client!==null}async recoverFromCorruptedDatabase(){if(this.corruptionRecoveryAttempted)return!1;this.corruptionRecoveryAttempted=!0,_.warn("CHROMA_SYNC","Attempting corruption recovery \u2014 deleting vector-db",{vectorDbDir:this.VECTOR_DB_DIR,project:this.project}),await this.close();try{O6.default.rmSync(this.VECTOR_DB_DIR,{recursive:!0,force:!0}),_.info("CHROMA_SYNC","Corrupted vector-db deleted, will rebuild on next connect")}catch(e){return _.error("CHROMA_SYNC","Failed to delete corrupted vector-db",{},e),!1}return this.failureCount=0,this.circuitOpenUntil=0,!0}async close(){await this.safeCloseTransport(),this.client=null,this.transport=null,this.connected=!1,this.connectionPromise=null}async safeCloseTransport(){let e=this.childPid;if(this.childPid=void 0,this.transport)try{await this.transport.close()}catch(r){_.debug("CHROMA_SYNC","Transport close error (non-fatal)",{},r)}if(e!==void 0)try{process.kill(e,0),_.warn("CHROMA_SYNC","Chroma subprocess survived transport.close(), force killing",{pid:e}),process.kill(e,"SIGKILL")}catch{}}};var kr=Q(require("node:fs"),1),qi=Q(require("node:path"),1);re();var Ofe=512,od=2048,cd=51200,Afe=1024,jfe=10240,qg=10080*60*1e3,Nfe=2,Za=class extends Error{logical;physical;capKind;constructor(e,r,n){super(`vector-db size limit exceeded (${e}: logical=${r}B physical=${n}B). Refusing write to prevent runaway growth.`),this.name="VectorDbSizeLimitError",this.capKind=e,this.logical=r,this.physical=n}};function Fg(t){let e={logical:0,physical:0,fileCount:0};if(!kr.default.existsSync(t))return e;let r=[t];for(;r.length>0;){let n=r.pop(),s;try{s=kr.default.readdirSync(n,{withFileTypes:!0})}catch{continue}for(let i of s){let a=qi.default.join(n,i.name);if(i.isDirectory()){r.push(a);continue}try{let o=kr.default.statSync(a),c=o.size,l=typeof o.blocks=="number"&&o.blocks>=0?o.blocks*Ofe:c;e.logical+=c,e.physical+=l,e.fileCount+=1,(!e.largestFile||c>e.largestFile.logical||c===e.largestFile.logical&&l>e.largestFile.physical)&&(e.largestFile={path:a,logical:c,physical:l})}catch{}}}return e}function Hg(t,e={}){let r=e.maxPhysicalBytes??od*1024*1024,n=e.maxLogicalBytes??cd*1024*1024,s=Fg(t);if(s.fileCount===0)return{evicted:!1,before:s};let i;if(s.physical>r?i="physical_cap_exceeded":s.logical>n&&(i="logical_cap_exceeded"),!i)return{evicted:!1,before:s};let a=`${t}.evicted.${Date.now()}`,o=!0;try{kr.default.renameSync(t,a)}catch(u){o=!1,_.error("VECTOR_DB_GUARD","Rename failed during eviction, falling back to recursive delete",{dir:t,backupPath:a},u);try{kr.default.rmSync(t,{recursive:!0,force:!0})}catch(p){return{evicted:!1,before:s,reason:i,error:p.message}}}let c=Dfe(qi.default.dirname(t),{before:s,reason:i,backupPath:o?a:void 0});zfe(qi.default.dirname(t),qi.default.basename(t));let l=!1;return e.settingsPathForAutoDisable&&c>=Nfe&&(l=Mfe(e.settingsPathForAutoDisable),l&&_.warn("VECTOR_DB_GUARD",`Auto-disabled Chroma after ${c} evictions in ${Math.round(qg/(1440*60*1e3))} days \u2014 search will fall back to SQLite. Re-enable by setting CLAUDE_PILOT_CHROMA_ENABLED=true in settings.json.`,{settingsPath:e.settingsPathForAutoDisable,recentEvictionCount:c})),{evicted:!0,before:s,reason:i,backupPath:o?a:void 0,recentEvictionCount:c,chromaAutoDisabled:l}}function Dfe(t,e){let r=qi.default.join(t,"vector-db.last-eviction.json"),n=Date.now(),s=[];try{if(kr.default.existsSync(r)){let a=JSON.parse(kr.default.readFileSync(r,"utf-8"));Array.isArray(a.history)&&(s=a.history.filter(o=>typeof o?.epochMs=="number"&&n-o.epochMsn-a.epochMs<=qg).length;try{kr.default.writeFileSync(r,JSON.stringify({timestamp:new Date(n).toISOString(),reason:e.reason,backupPath:e.backupPath??null,logicalBytes:e.before.logical,physicalBytes:e.before.physical,fileCount:e.before.fileCount,largestFile:e.before.largestFile??null,recentEvictionCount:i,autoDisableWindowMs:qg,history:s},null,2),"utf-8")}catch(a){_.warn("VECTOR_DB_GUARD","Failed to write eviction marker",{marker:r},a)}return i}function A6(t,e={}){let r=e.maxPhysicalBytes??Afe*1024*1024,n=e.maxLogicalBytes??jfe*1024*1024,s=Fg(t);if(s.fileCount!==0){if(s.physical>r)throw new Za("physical",s.logical,s.physical);if(s.logical>n)throw new Za("logical",s.logical,s.physical)}}function Mfe(t){try{if(!kr.default.existsSync(t))return kr.default.mkdirSync(qi.default.dirname(t),{recursive:!0}),kr.default.writeFileSync(t,JSON.stringify({CLAUDE_PILOT_CHROMA_ENABLED:!1},null,2),"utf-8"),!0;let e=kr.default.readFileSync(t,"utf-8"),r=JSON.parse(e),n=r&&typeof r.env=="object"&&r.env!==null?r.env:r;if(n.CLAUDE_PILOT_CHROMA_ENABLED===!1)return!1;n.CLAUDE_PILOT_CHROMA_ENABLED=!1;let s=`${t}.tmp-${process.pid}-${Date.now()}`;return kr.default.writeFileSync(s,JSON.stringify(r,null,2),"utf-8"),kr.default.renameSync(s,t),!0}catch(e){return _.error("VECTOR_DB_GUARD","Failed to auto-disable Chroma in settings",{settingsPath:t},e),!1}}function zfe(t,e){try{let n=kr.default.readdirSync(t,{withFileTypes:!0}).filter(s=>s.isDirectory()&&s.name.startsWith(`${e}.evicted.`)).map(s=>{let i=s.name.slice(`${e}.evicted.`.length),a=Number.parseInt(i,10);return{name:s.name,ts:Number.isNaN(a)?0:a}}).sort((s,i)=>i.ts-s.ts);for(let s of n.slice(2)){let i=qi.default.join(t,s.name);try{kr.default.rmSync(i,{recursive:!0,force:!0})}catch(a){_.debug("VECTOR_DB_GUARD","Failed to prune stale eviction backup",{full:i},a)}}}catch{}}var Bg=class{connectionManager;project;collectionName;BATCH_SIZE=100;writeGateTripped=!1;constructor(e){this.project=e,this.collectionName=`cm__${e}`,this.connectionManager=new Ug(e)}assertSafeToWrite(e){if(this.writeGateTripped)throw new Za("physical",0,0);try{A6(this.connectionManager.VECTOR_DB_DIR)}catch(r){throw r instanceof Za&&(this.writeGateTripped=!0,_.error("VECTOR_DB_GUARD",`Refusing ${e}: vector-db already at size limit`,{capKind:r.capKind,logical:r.logical,physical:r.physical}),this.connectionManager.close()),r}}async getClient(){return this.connectionManager.getClient()}async invalidateConnection(){await this.connectionManager.close()}async ensureCollection(){let e=await this.getClient();try{await e.callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}}),_.debug("CHROMA_SYNC","Collection exists",{collection:this.collectionName})}catch(r){let n=r instanceof Error?r.message:String(r);if(n.includes("Not connected")||n.includes("Connection closed")||n.includes("MCP error -32000")){if(await this.connectionManager.recoverFromCorruptedDatabase())return _.warn("CHROMA_SYNC","Corruption recovery triggered, retrying collection check"),this.ensureCollection();throw await this.invalidateConnection(),_.error("CHROMA_SYNC","Connection lost during collection check",{collection:this.collectionName},r),new Error(`Chroma connection lost: ${n}`)}_.error("CHROMA_SYNC","Collection check failed, attempting to create",{collection:this.collectionName},r),_.info("CHROMA_SYNC","Creating collection",{collection:this.collectionName});try{this.assertSafeToWrite("create_collection"),await e.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),_.info("CHROMA_SYNC","Collection created",{collection:this.collectionName})}catch(i){throw _.error("CHROMA_SYNC","Failed to create collection",{collection:this.collectionName},i),new Error(`Collection creation failed: ${i instanceof Error?i.message:String(i)}`)}}return e}formatObservationDocs(e){let r=[],n=e.facts?JSON.parse(e.facts):[],s=e.concepts?JSON.parse(e.concepts):[],i=e.files_read?JSON.parse(e.files_read):[],a=e.files_modified?JSON.parse(e.files_modified):[],o={sqlite_id:e.id,doc_type:"observation",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,type:e.type||"discovery",title:e.title||"Untitled"};return e.subtitle&&(o.subtitle=e.subtitle),s.length>0&&(o.concepts=s.join(",")),i.length>0&&(o.files_read=i.join(",")),a.length>0&&(o.files_modified=a.join(",")),e.narrative&&r.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...o,field_type:"narrative"}}),e.text&&r.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...o,field_type:"text"}}),n.forEach((c,l)=>{r.push({id:`obs_${e.id}_fact_${l}`,document:c,metadata:{...o,field_type:"fact",fact_index:l}})}),r}formatSummaryDocs(e){let r=[],n={sqlite_id:e.id,doc_type:"session_summary",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number||0};return e.request&&r.push({id:`summary_${e.id}_request`,document:e.request,metadata:{...n,field_type:"request"}}),e.investigated&&r.push({id:`summary_${e.id}_investigated`,document:e.investigated,metadata:{...n,field_type:"investigated"}}),e.learned&&r.push({id:`summary_${e.id}_learned`,document:e.learned,metadata:{...n,field_type:"learned"}}),e.completed&&r.push({id:`summary_${e.id}_completed`,document:e.completed,metadata:{...n,field_type:"completed"}}),e.next_steps&&r.push({id:`summary_${e.id}_next_steps`,document:e.next_steps,metadata:{...n,field_type:"next_steps"}}),e.notes&&r.push({id:`summary_${e.id}_notes`,document:e.notes,metadata:{...n,field_type:"notes"}}),r}async addDocuments(e){if(e.length===0)return;let r=await this.ensureCollection();try{this.assertSafeToWrite("add_documents"),await r.callTool({name:"chroma_add_documents",arguments:{collection_name:this.collectionName,documents:e.map(n=>n.document),ids:e.map(n=>n.id),metadatas:e.map(n=>n.metadata)}}),_.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}catch(n){throw _.error("CHROMA_SYNC","Failed to add documents",{collection:this.collectionName,count:e.length},n),new Error(`Document add failed: ${n instanceof Error?n.message:String(n)}`)}}async syncObservation(e,r,n,s,i,a,o=0){let c={id:e,memory_session_id:r,project:n,text:null,type:s.type,title:s.title,subtitle:s.subtitle,facts:JSON.stringify(s.facts),narrative:s.narrative,concepts:JSON.stringify(s.concepts),files_read:JSON.stringify(s.files_read),files_modified:JSON.stringify(s.files_modified),prompt_number:i,discovery_tokens:o,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a},l=this.formatObservationDocs(c);_.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:l.length,project:n}),await this.addDocuments(l)}async syncSummary(e,r,n,s,i,a,o=0){let c={id:e,memory_session_id:r,project:n,request:s.request,investigated:s.investigated,learned:s.learned,completed:s.completed,next_steps:s.next_steps,notes:s.notes,prompt_number:i,discovery_tokens:o,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a},l=this.formatSummaryDocs(c);_.info("CHROMA_SYNC","Syncing summary",{summaryId:e,documentCount:l.length,project:n}),await this.addDocuments(l)}formatUserPromptDoc(e){return{id:`prompt_${e.id}`,document:e.prompt_text,metadata:{sqlite_id:e.id,doc_type:"user_prompt",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number}}}async syncUserPrompt(e,r,n,s,i,a){let o={id:e,content_session_id:"",prompt_number:i,prompt_text:s,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a,memory_session_id:r,project:n},c=this.formatUserPromptDoc(o);_.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:n}),await this.addDocuments([c])}async getExistingChromaIds(){let e=await this.getClient(),r=new Set,n=new Set,s=new Set,i=0,a=1e3;for(_.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:this.project});;)try{let c=(await e.callTool({name:"chroma_get_documents",arguments:{collection_name:this.collectionName,limit:a,offset:i,where:{project:this.project},include:["metadatas"]}})).content[0];if(!c||c.type!=="text"||!c.text)throw new Error("Unexpected response type from chroma_get_documents");let u=JSON.parse(c.text).metadatas||[];if(u.length===0)break;for(let p of u)p.sqlite_id&&(p.doc_type==="observation"?r.add(p.sqlite_id):p.doc_type==="session_summary"?n.add(p.sqlite_id):p.doc_type==="user_prompt"&&s.add(p.sqlite_id));i+=a,_.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:this.project,offset:i,batchSize:u.length})}catch(o){throw _.error("CHROMA_SYNC","Failed to fetch existing IDs",{project:this.project},o),o}return _.info("CHROMA_SYNC","Existing IDs fetched",{project:this.project,observations:r.size,summaries:n.size,prompts:s.size}),{observations:r,summaries:n,prompts:s}}async ensureBackfilled(){_.info("CHROMA_SYNC","Starting smart backfill",{project:this.project}),await this.ensureCollection();let e=await this.getExistingChromaIds(),r=new Ui;try{let n=Array.from(e.observations),s=n.length>0?`AND id NOT IN (${n.join(",")})`:"",i=r.db.prepare(` SELECT * FROM observations WHERE project = ? ${s} ORDER BY id ASC @@ -1103,11 +1103,11 @@ ${X.dim}No previous sessions found for this project yet.${X.reset} FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id WHERE s.project = ? - `).get(this.project);_.info("CHROMA_SYNC","Backfilling user prompts",{project:this.project,missing:g.length,existing:e.prompts.size,total:v.count});let h=[];for(let y of g)h.push(this.formatUserPromptDoc(y));for(let y=0;y{let r=await this.getEmbeddingCount();_.info("CHROMA_SYNC","Starting vacuum \u2014 deleting collection",{collection:this.collectionName,project:this.project,existingDocuments:r}),await e.callTool({name:"chroma_delete_collection",arguments:{collection_name:this.collectionName}}),_.info("CHROMA_SYNC","Collection deleted, recreating",{collection:this.collectionName}),this.assertSafeToWrite("create_collection (vacuum)"),await e.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),_.info("CHROMA_SYNC","Collection recreated, starting backfill",{collection:this.collectionName});try{await this.ensureBackfilled();let n=await this.getEmbeddingCount();return _.info("CHROMA_SYNC","Vacuum complete",{collection:this.collectionName,project:this.project,deletedDocuments:r,reindexedDocuments:n}),{deletedDocuments:r,reindexedDocuments:n}}catch(n){let s=n instanceof Error?n.message:String(n);return _.error("CHROMA_SYNC","Vacuum incomplete \u2014 backfill failed",{collection:this.collectionName,project:this.project},n),{deletedDocuments:r,reindexedDocuments:0,error:`Vacuum incomplete \u2014 run again to complete backfill: ${s}`}}})}async getEmbeddingCount(){try{let n=(await(await this.getClient()).callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}})).content[0]?.text;if(!n)return 0;let s=JSON.parse(n);return s.count??s.num_documents??0}catch{return 0}}async close(){await this.connectionManager.close(),_.info("CHROMA_SYNC","Chroma client and subprocess closed",{project:this.project})}async query(e,r,n){return this.queryChroma(e,r,n)}async isHealthy(){return this.connectionManager.isHealthy()}};re();var zc=class{project;loggedOnce=!1;constructor(e){this.project=e}logDisabled(){this.loggedOnce||(_.info("VECTOR_SYNC","Vector database disabled - using SQLite-only mode",{project:this.project}),this.loggedOnce=!0)}async syncObservation(){this.logDisabled()}async syncSummary(){this.logDisabled()}async syncUserPrompt(){this.logDisabled()}async ensureBackfilled(){this.logDisabled()}async query(){return this.logDisabled(),{ids:[],distances:[],metadatas:[]}}async deleteDocuments(e,r){return 0}async getEmbeddingCount(){return 0}async vacuum(){return this.logDisabled(),{deletedDocuments:0,reindexedDocuments:0}}async close(){}async isHealthy(){return!0}};Or();er();re();function z6(t){let e=Ae.loadFromFile(Ht),r=process.platform==="win32";if(!e.CLAUDE_PILOT_CHROMA_ENABLED)return _.info("VECTOR_SYNC","Vector database disabled by setting",{project:t}),new zc(t);let s=e.CLAUDE_PILOT_VECTOR_DB||"chroma";return s==="none"||s==="disabled"?(_.info("VECTOR_SYNC","Vector database disabled via CLAUDE_PILOT_VECTOR_DB setting",{project:t,backend:s}),new zc(t)):r&&s==="chroma"?(_.warn("VECTOR_SYNC","Chroma disabled on Windows to prevent console popups. Disable vector DB in settings.",{project:t}),new zc(t)):(_.info("VECTOR_SYNC","Creating vector sync",{project:t,backend:s}),new Zg(t))}er();Or();re();function $6(t){if(!t)return;let e=Number.parseInt(t,10);return Number.isFinite(e)&&e>0?e:void 0}var Gg=class{sessionStore=null;sessionSearch=null;vectorSync=null;async initialize(){this.sessionStore=new Ui,this.sessionSearch=new Ug,this.runVectorDbSizeGuard(),this.vectorSync=z6("pilot-memory"),_.info("DB","Database initialized")}runVectorDbSizeGuard(){try{let e=Ae.loadFromFile(Ht),r=$6(e.CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB)??cd,n=$6(e.CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB)??ld,s=Wg(Zl,{maxPhysicalBytes:r*1024*1024,maxLogicalBytes:n*1024*1024,settingsPathForAutoDisable:Ht});s.evicted&&_.warn("VECTOR_DB_GUARD","Evicted oversized vector database \u2014 will rebuild from SQLite",{reason:s.reason,logicalBytes:s.before.logical,physicalBytes:s.before.physical,fileCount:s.before.fileCount,largestFile:s.before.largestFile?.path,backupPath:s.backupPath,recentEvictionCount:s.recentEvictionCount,chromaAutoDisabled:s.chromaAutoDisabled})}catch(e){_.warn("VECTOR_DB_GUARD","Size guard failed (non-fatal, continuing startup)",{},e)}}async close(){this.vectorSync&&(await this.vectorSync.close(),this.vectorSync=null),this.sessionStore&&(this.sessionStore.close(),this.sessionStore=null),this.sessionSearch&&(this.sessionSearch.close(),this.sessionSearch=null),_.info("DB","Database closed")}getSessionStore(){if(!this.sessionStore)throw new Error("Database not initialized");return this.sessionStore}getSessionSearch(){if(!this.sessionSearch)throw new Error("Database not initialized");return this.sessionSearch}getVectorSync(){if(!this.vectorSync)throw new Error("VectorSync not initialized");return this.vectorSync}getVectorSyncOrNull(){return this.vectorSync}getChromaSync(){return this.getVectorSync()}getSessionById(e){let r=this.getSessionStore().getSessionById(e);if(!r)throw new Error(`Session ${e} not found`);return r}};var U6=require("events");re();Fi();re();var L6=180*1e3,Bfe=10,pd=class{constructor(e,r){this.store=e;this.events=r}store;events;async*createIterator(e){let{sessionDbId:r,signal:n,onIdleTimeout:s,idleTimeoutMs:i=L6}=e,a=Date.now();for(;!n.aborted;)try{let o=this.store.claimAndDelete(r);if(o)a=Date.now(),yield this.toPendingMessageWithId(o);else if(!await this.waitForMessage(n,i)&&!n.aborted){let l=Date.now()-a;if(l>=i){_.info("SESSION","Iterator exiting due to idle timeout",{sessionDbId:r,idleMs:l,thresholdMs:i}),s?.();return}a=Date.now()}}catch(o){if(n.aborted)return;_.error("SESSION","Error in queue processor loop",{sessionDbId:r},o),await new Promise(c=>setTimeout(c,1e3))}}async*createBatchIterator(e){let{sessionDbId:r,signal:n,onIdleTimeout:s,idleTimeoutMs:i=L6,maxBatchSize:a=Bfe}=e,o=Date.now();for(;!n.aborted;)try{let c=this.store.claimAndDeleteBatch(r,a);if(c.length>0)o=Date.now(),yield c.map(l=>this.toPendingMessageWithId(l));else if(!await this.waitForMessage(n,i)&&!n.aborted){let u=Date.now()-o;if(u>=i){_.info("SESSION","Batch iterator exiting due to idle timeout",{sessionDbId:r,idleMs:u,thresholdMs:i}),s?.();return}o=Date.now()}}catch(c){if(n.aborted)return;_.error("SESSION","Error in batch queue processor loop",{sessionDbId:r},c),await new Promise(l=>setTimeout(l,1e3))}}toPendingMessageWithId(e){return{...this.store.toPendingMessage(e),_persistentId:e.id,_originalTimestamp:e.created_at_epoch}}waitForMessage(e,r){return new Promise(n=>{let s=()=>{c(),n(!0)},i=()=>{c(),n(!1)},a,o=()=>{c(),n(!1)},c=()=>{this.events.off("message",s),e.removeEventListener("abort",i),a!==void 0&&clearTimeout(a)};this.events.once("message",s),e.addEventListener("abort",i,{once:!0}),r!==void 0&&(a=setTimeout(o,r))})}};var Vg=class{dbManager;sessions=new Map;sessionQueues=new Map;onSessionDeletedCallback;pendingStore=null;constructor(e){this.dbManager=e}getPendingStore(){if(!this.pendingStore){let e=this.dbManager.getSessionStore();this.pendingStore=new ud(e.db,3)}return this.pendingStore}setOnSessionDeleted(e){this.onSessionDeletedCallback=e}initializeSession(e,r,n){_.debug("SESSION","initializeSession called",{sessionDbId:e,promptNumber:n,has_currentUserPrompt:!!r});let s=this.sessions.get(e);if(s){_.debug("SESSION","Returning cached session",{sessionDbId:e,contentSessionId:s.contentSessionId,lastPromptNumber:s.lastPromptNumber});let l=this.dbManager.getSessionById(e);return l.project&&l.project!==s.project&&(_.debug("SESSION","Updating project from database",{sessionDbId:e,oldProject:s.project,newProject:l.project}),s.project=l.project),r?(_.debug("SESSION","Updating userPrompt for continuation",{sessionDbId:e,promptNumber:n,oldPrompt:s.userPrompt.substring(0,80),newPrompt:r.substring(0,80)}),s.userPrompt=r,s.lastPromptNumber=n||s.lastPromptNumber):_.debug("SESSION","No currentUserPrompt provided for existing session",{sessionDbId:e,promptNumber:n,usingCachedPrompt:s.userPrompt.substring(0,80)}),s}let i=this.dbManager.getSessionById(e);_.debug("SESSION","Fetched session from database",{sessionDbId:e,content_session_id:i.content_session_id,memory_session_id:i.memory_session_id});let a=r||i.user_prompt;r?_.debug("SESSION","Initializing session with fresh userPrompt",{sessionDbId:e,promptNumber:n,userPrompt:r.substring(0,80)}):_.debug("SESSION","No currentUserPrompt provided for new session, using database",{sessionDbId:e,promptNumber:n,dbPrompt:i.user_prompt.substring(0,80)});let o=Date.now();s={sessionDbId:e,contentSessionId:i.content_session_id,memorySessionId:i.memory_session_id||null,project:i.project,userPrompt:a,pendingMessages:[],abortController:new AbortController,generatorPromise:null,lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(i.content_session_id),startTime:o,lastActivityTime:o,cumulativeInputTokens:0,cumulativeOutputTokens:0,earliestPendingTimestamp:null,conversationHistory:[],currentProvider:null,consecutiveRestarts:0,claudeSessionIds:[]},_.debug("SESSION","Creating new session object",{sessionDbId:e,contentSessionId:i.content_session_id,memorySessionId:i.memory_session_id||"(none - fresh session)",lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(i.content_session_id)}),this.sessions.set(e,s);let c=new U6.EventEmitter;return this.sessionQueues.set(e,c),_.info("SESSION","Session initialized",{sessionId:e,project:s.project,contentSessionId:s.contentSessionId,queueDepth:0,hasGenerator:!1}),s}getSession(e){return this.sessions.get(e)}queueObservation(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e)),n.lastActivityTime=Date.now();let s={type:"observation",tool_name:r.tool_name,tool_input:r.tool_input,tool_response:r.tool_response,prompt_number:r.prompt_number,cwd:r.cwd};try{let a=this.getPendingStore().enqueue(e,n.contentSessionId,s),o=this.getPendingStore().getPendingCount(e),c=_.formatTool(r.tool_name,r.tool_input);_.info("QUEUE",`ENQUEUED | sessionDbId=${e} | messageId=${a} | type=observation | tool=${c} | depth=${o}`,{sessionId:e})}catch(a){throw _.error("SESSION","Failed to persist observation to DB",{sessionId:e,tool:r.tool_name},a),a}this.sessionQueues.get(e)?.emit("message")}queueSummarize(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e)),n.lastActivityTime=Date.now();let s={type:"summarize",last_assistant_message:r};try{let a=this.getPendingStore().enqueue(e,n.contentSessionId,s),o=this.getPendingStore().getPendingCount(e);_.info("QUEUE",`ENQUEUED | sessionDbId=${e} | messageId=${a} | type=summarize | depth=${o}`,{sessionId:e})}catch(a){throw _.error("SESSION","Failed to persist summarize to DB",{sessionId:e},a),a}this.sessionQueues.get(e)?.emit("message")}async deleteSession(e){let r=this.sessions.get(e);if(!r)return;let n=Date.now()-r.startTime;r.abortController.abort(),r.generatorPromise&&await r.generatorPromise.catch(s=>{_.debug("SYSTEM","Generator already failed, cleaning up",{sessionId:r.sessionDbId})});try{let s=this.getPendingStore().deleteAllForSession(e);s>0&&_.info("SESSION","Cleaned up pending messages on session delete",{sessionId:e,deletedMessages:s})}catch(s){_.error("SESSION","Failed to clean up pending messages",{sessionId:e},s)}this.sessions.delete(e),this.sessionQueues.delete(e),_.info("SESSION","Session deleted",{sessionId:e,duration:`${(n/1e3).toFixed(1)}s`,project:r.project}),this.onSessionDeletedCallback&&this.onSessionDeletedCallback()}async shutdownAll(){let e=Array.from(this.sessions.keys());await Promise.all(e.map(r=>this.deleteSession(r)))}hasPendingMessages(){return this.getPendingStore().hasAnyPendingWork()}getActiveSessionCount(){return this.sessions.size}getTotalQueueDepth(){let e=0;for(let r of this.sessions.values())e+=this.getPendingStore().getPendingCount(r.sessionDbId);return e}getTotalActiveWork(){return this.getTotalQueueDepth()}isAnySessionProcessing(){return this.getPendingStore().hasAnyPendingWork()}async*getMessageIterator(e){let r=this.sessions.get(e);r||(r=this.initializeSession(e));let n=this.sessionQueues.get(e);if(!n)throw new Error(`No emitter for session ${e}`);let s=new pd(this.getPendingStore(),n);for await(let i of s.createIterator({sessionDbId:e,signal:r.abortController.signal,onIdleTimeout:()=>{_.info("SESSION","Idle timeout reached, aborting session",{sessionId:e}),r.abortController.abort()}}))r.earliestPendingTimestamp===null?r.earliestPendingTimestamp=i._originalTimestamp:r.earliestPendingTimestamp=Math.min(r.earliestPendingTimestamp,i._originalTimestamp),yield i}async*getMessageBatchIterator(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e));let s=this.sessionQueues.get(e);if(!s)throw new Error(`No emitter for session ${e}`);let i=new pd(this.getPendingStore(),s);for await(let a of i.createBatchIterator({sessionDbId:e,signal:n.abortController.signal,maxBatchSize:r,onIdleTimeout:()=>{_.info("SESSION","Idle timeout reached, aborting session",{sessionId:e}),n.abortController.abort()}})){for(let o of a)n.earliestPendingTimestamp===null?n.earliestPendingTimestamp=o._originalTimestamp:n.earliestPendingTimestamp=Math.min(n.earliestPendingTimestamp,o._originalTimestamp);yield a}}getPendingMessageStore(){return this.getPendingStore()}async cleanupStaleSessions(e=1800*1e3,r=!1){let n=Date.now(),s=n-e,i=0,a=[];for(let[o,c]of this.sessions)if(c.lastActivityTime0&&_.info("SESSION",`Cleaned up ${i} stale sessions`),i}getSessionStats(){let e=Date.now(),r=null,n=0;for(let s of this.sessions.values()){let i=e-s.startTime;(r===null||i>r)&&(r=i),s.generatorPromise&&n++}return{activeSessions:this.sessions.size,totalQueueDepth:this.getTotalQueueDepth(),oldestSessionAge:r,sessionsWithGenerators:n}}};re();var Kg=class{sseClients=new Set;addClient(e){this.sseClients.add(e),_.debug("WORKER","Client connected",{total:this.sseClients.size}),e.on("close",()=>{this.removeClient(e)}),this.sendToClient(e,{type:"connected",timestamp:Date.now()})}removeClient(e){this.sseClients.delete(e),_.debug("WORKER","Client disconnected",{total:this.sseClients.size})}broadcast(e){if(this.sseClients.size===0){_.debug("WORKER","SSE broadcast skipped (no clients)",{eventType:e.type});return}let r={...e,timestamp:Date.now()},n=`data: ${JSON.stringify(r)} + `).get(this.project);_.info("CHROMA_SYNC","Backfilling user prompts",{project:this.project,missing:g.length,existing:e.prompts.size,total:v.count});let h=[];for(let y of g)h.push(this.formatUserPromptDoc(y));for(let y=0;y{let r=await this.getEmbeddingCount();_.info("CHROMA_SYNC","Starting vacuum \u2014 deleting collection",{collection:this.collectionName,project:this.project,existingDocuments:r}),await e.callTool({name:"chroma_delete_collection",arguments:{collection_name:this.collectionName}}),_.info("CHROMA_SYNC","Collection deleted, recreating",{collection:this.collectionName}),this.assertSafeToWrite("create_collection (vacuum)"),await e.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),_.info("CHROMA_SYNC","Collection recreated, starting backfill",{collection:this.collectionName});try{await this.ensureBackfilled();let n=await this.getEmbeddingCount();return _.info("CHROMA_SYNC","Vacuum complete",{collection:this.collectionName,project:this.project,deletedDocuments:r,reindexedDocuments:n}),{deletedDocuments:r,reindexedDocuments:n}}catch(n){let s=n instanceof Error?n.message:String(n);return _.error("CHROMA_SYNC","Vacuum incomplete \u2014 backfill failed",{collection:this.collectionName,project:this.project},n),{deletedDocuments:r,reindexedDocuments:0,error:`Vacuum incomplete \u2014 run again to complete backfill: ${s}`}}})}async getEmbeddingCount(){try{let n=(await(await this.getClient()).callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}})).content[0]?.text;if(!n)return 0;let s=JSON.parse(n);return s.count??s.num_documents??0}catch{return 0}}async close(){await this.connectionManager.close(),_.info("CHROMA_SYNC","Chroma client and subprocess closed",{project:this.project})}async query(e,r,n){return this.queryChroma(e,r,n)}async isHealthy(){return this.connectionManager.isHealthy()}};re();var Mc=class{project;loggedOnce=!1;constructor(e){this.project=e}logDisabled(){this.loggedOnce||(_.info("VECTOR_SYNC","Vector database disabled - using SQLite-only mode",{project:this.project}),this.loggedOnce=!0)}async syncObservation(){this.logDisabled()}async syncSummary(){this.logDisabled()}async syncUserPrompt(){this.logDisabled()}async ensureBackfilled(){this.logDisabled()}async query(){return this.logDisabled(),{ids:[],distances:[],metadatas:[]}}async deleteDocuments(e,r){return 0}async getEmbeddingCount(){return 0}async vacuum(){return this.logDisabled(),{deletedDocuments:0,reindexedDocuments:0}}async close(){}async isHealthy(){return!0}};Or();er();re();function j6(t){let e=Ae.loadFromFile(Ht),r=process.platform==="win32";if(!e.CLAUDE_PILOT_CHROMA_ENABLED)return _.info("VECTOR_SYNC","Vector database disabled by setting",{project:t}),new Mc(t);let s=e.CLAUDE_PILOT_VECTOR_DB||"chroma";return s==="none"||s==="disabled"?(_.info("VECTOR_SYNC","Vector database disabled via CLAUDE_PILOT_VECTOR_DB setting",{project:t,backend:s}),new Mc(t)):r&&s==="chroma"?(_.warn("VECTOR_SYNC","Chroma disabled on Windows to prevent console popups. Disable vector DB in settings.",{project:t}),new Mc(t)):(_.info("VECTOR_SYNC","Creating vector sync",{project:t,backend:s}),new Bg(t))}er();Or();re();function N6(t){if(!t)return;let e=Number.parseInt(t,10);return Number.isFinite(e)&&e>0?e:void 0}var Wg=class{sessionStore=null;sessionSearch=null;vectorSync=null;async initialize(){this.sessionStore=new Ui,this.sessionSearch=new $g,this.runVectorDbSizeGuard(),this.vectorSync=j6("pilot-memory"),_.info("DB","Database initialized")}runVectorDbSizeGuard(){try{let e=Ae.loadFromFile(Ht),r=N6(e.CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB)??od,n=N6(e.CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB)??cd,s=Hg(Wl,{maxPhysicalBytes:r*1024*1024,maxLogicalBytes:n*1024*1024,settingsPathForAutoDisable:Ht});s.evicted&&_.warn("VECTOR_DB_GUARD","Evicted oversized vector database \u2014 will rebuild from SQLite",{reason:s.reason,logicalBytes:s.before.logical,physicalBytes:s.before.physical,fileCount:s.before.fileCount,largestFile:s.before.largestFile?.path,backupPath:s.backupPath,recentEvictionCount:s.recentEvictionCount,chromaAutoDisabled:s.chromaAutoDisabled})}catch(e){_.warn("VECTOR_DB_GUARD","Size guard failed (non-fatal, continuing startup)",{},e)}}async close(){this.vectorSync&&(await this.vectorSync.close(),this.vectorSync=null),this.sessionStore&&(this.sessionStore.close(),this.sessionStore=null),this.sessionSearch&&(this.sessionSearch.close(),this.sessionSearch=null),_.info("DB","Database closed")}getSessionStore(){if(!this.sessionStore)throw new Error("Database not initialized");return this.sessionStore}getSessionSearch(){if(!this.sessionSearch)throw new Error("Database not initialized");return this.sessionSearch}getVectorSync(){if(!this.vectorSync)throw new Error("VectorSync not initialized");return this.vectorSync}getVectorSyncOrNull(){return this.vectorSync}getChromaSync(){return this.getVectorSync()}getSessionById(e){let r=this.getSessionStore().getSessionById(e);if(!r)throw new Error(`Session ${e} not found`);return r}};var M6=require("events");re();Fi();re();var D6=180*1e3,$fe=10,ud=class{constructor(e,r){this.store=e;this.events=r}store;events;async*createIterator(e){let{sessionDbId:r,signal:n,onIdleTimeout:s,idleTimeoutMs:i=D6}=e,a=Date.now();for(;!n.aborted;)try{let o=this.store.claimAndDelete(r);if(o)a=Date.now(),yield this.toPendingMessageWithId(o);else if(!await this.waitForMessage(n,i)&&!n.aborted){let l=Date.now()-a;if(l>=i){_.info("SESSION","Iterator exiting due to idle timeout",{sessionDbId:r,idleMs:l,thresholdMs:i}),s?.();return}a=Date.now()}}catch(o){if(n.aborted)return;_.error("SESSION","Error in queue processor loop",{sessionDbId:r},o),await new Promise(c=>setTimeout(c,1e3))}}async*createBatchIterator(e){let{sessionDbId:r,signal:n,onIdleTimeout:s,idleTimeoutMs:i=D6,maxBatchSize:a=$fe}=e,o=Date.now();for(;!n.aborted;)try{let c=this.store.claimAndDeleteBatch(r,a);if(c.length>0)o=Date.now(),yield c.map(l=>this.toPendingMessageWithId(l));else if(!await this.waitForMessage(n,i)&&!n.aborted){let u=Date.now()-o;if(u>=i){_.info("SESSION","Batch iterator exiting due to idle timeout",{sessionDbId:r,idleMs:u,thresholdMs:i}),s?.();return}o=Date.now()}}catch(c){if(n.aborted)return;_.error("SESSION","Error in batch queue processor loop",{sessionDbId:r},c),await new Promise(l=>setTimeout(l,1e3))}}toPendingMessageWithId(e){return{...this.store.toPendingMessage(e),_persistentId:e.id,_originalTimestamp:e.created_at_epoch}}waitForMessage(e,r){return new Promise(n=>{let s=()=>{c(),n(!0)},i=()=>{c(),n(!1)},a,o=()=>{c(),n(!1)},c=()=>{this.events.off("message",s),e.removeEventListener("abort",i),a!==void 0&&clearTimeout(a)};this.events.once("message",s),e.addEventListener("abort",i,{once:!0}),r!==void 0&&(a=setTimeout(o,r))})}};var Zg=class{dbManager;sessions=new Map;sessionQueues=new Map;onSessionDeletedCallback;pendingStore=null;constructor(e){this.dbManager=e}getPendingStore(){if(!this.pendingStore){let e=this.dbManager.getSessionStore();this.pendingStore=new ld(e.db,3)}return this.pendingStore}setOnSessionDeleted(e){this.onSessionDeletedCallback=e}initializeSession(e,r,n){_.debug("SESSION","initializeSession called",{sessionDbId:e,promptNumber:n,has_currentUserPrompt:!!r});let s=this.sessions.get(e);if(s){_.debug("SESSION","Returning cached session",{sessionDbId:e,contentSessionId:s.contentSessionId,lastPromptNumber:s.lastPromptNumber});let l=this.dbManager.getSessionById(e);return l.project&&l.project!==s.project&&(_.debug("SESSION","Updating project from database",{sessionDbId:e,oldProject:s.project,newProject:l.project}),s.project=l.project),r?(_.debug("SESSION","Updating userPrompt for continuation",{sessionDbId:e,promptNumber:n,oldPrompt:s.userPrompt.substring(0,80),newPrompt:r.substring(0,80)}),s.userPrompt=r,s.lastPromptNumber=n||s.lastPromptNumber):_.debug("SESSION","No currentUserPrompt provided for existing session",{sessionDbId:e,promptNumber:n,usingCachedPrompt:s.userPrompt.substring(0,80)}),s}let i=this.dbManager.getSessionById(e);_.debug("SESSION","Fetched session from database",{sessionDbId:e,content_session_id:i.content_session_id,memory_session_id:i.memory_session_id});let a=r||i.user_prompt;r?_.debug("SESSION","Initializing session with fresh userPrompt",{sessionDbId:e,promptNumber:n,userPrompt:r.substring(0,80)}):_.debug("SESSION","No currentUserPrompt provided for new session, using database",{sessionDbId:e,promptNumber:n,dbPrompt:i.user_prompt.substring(0,80)});let o=Date.now();s={sessionDbId:e,contentSessionId:i.content_session_id,memorySessionId:i.memory_session_id||null,project:i.project,userPrompt:a,pendingMessages:[],abortController:new AbortController,generatorPromise:null,lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(i.content_session_id),startTime:o,lastActivityTime:o,cumulativeInputTokens:0,cumulativeOutputTokens:0,earliestPendingTimestamp:null,conversationHistory:[],currentProvider:null,consecutiveRestarts:0,claudeSessionIds:[]},_.debug("SESSION","Creating new session object",{sessionDbId:e,contentSessionId:i.content_session_id,memorySessionId:i.memory_session_id||"(none - fresh session)",lastPromptNumber:n||this.dbManager.getSessionStore().getPromptNumberFromUserPrompts(i.content_session_id)}),this.sessions.set(e,s);let c=new M6.EventEmitter;return this.sessionQueues.set(e,c),_.info("SESSION","Session initialized",{sessionId:e,project:s.project,contentSessionId:s.contentSessionId,queueDepth:0,hasGenerator:!1}),s}getSession(e){return this.sessions.get(e)}queueObservation(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e)),n.lastActivityTime=Date.now();let s={type:"observation",tool_name:r.tool_name,tool_input:r.tool_input,tool_response:r.tool_response,prompt_number:r.prompt_number,cwd:r.cwd};try{let a=this.getPendingStore().enqueue(e,n.contentSessionId,s),o=this.getPendingStore().getPendingCount(e),c=_.formatTool(r.tool_name,r.tool_input);_.info("QUEUE",`ENQUEUED | sessionDbId=${e} | messageId=${a} | type=observation | tool=${c} | depth=${o}`,{sessionId:e})}catch(a){throw _.error("SESSION","Failed to persist observation to DB",{sessionId:e,tool:r.tool_name},a),a}this.sessionQueues.get(e)?.emit("message")}queueSummarize(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e)),n.lastActivityTime=Date.now();let s={type:"summarize",last_assistant_message:r};try{let a=this.getPendingStore().enqueue(e,n.contentSessionId,s),o=this.getPendingStore().getPendingCount(e);_.info("QUEUE",`ENQUEUED | sessionDbId=${e} | messageId=${a} | type=summarize | depth=${o}`,{sessionId:e})}catch(a){throw _.error("SESSION","Failed to persist summarize to DB",{sessionId:e},a),a}this.sessionQueues.get(e)?.emit("message")}async deleteSession(e){let r=this.sessions.get(e);if(!r)return;let n=Date.now()-r.startTime;r.abortController.abort(),r.generatorPromise&&await r.generatorPromise.catch(s=>{_.debug("SYSTEM","Generator already failed, cleaning up",{sessionId:r.sessionDbId})});try{let s=this.getPendingStore().deleteAllForSession(e);s>0&&_.info("SESSION","Cleaned up pending messages on session delete",{sessionId:e,deletedMessages:s})}catch(s){_.error("SESSION","Failed to clean up pending messages",{sessionId:e},s)}this.sessions.delete(e),this.sessionQueues.delete(e),_.info("SESSION","Session deleted",{sessionId:e,duration:`${(n/1e3).toFixed(1)}s`,project:r.project}),this.onSessionDeletedCallback&&this.onSessionDeletedCallback()}async shutdownAll(){let e=Array.from(this.sessions.keys());await Promise.all(e.map(r=>this.deleteSession(r)))}hasPendingMessages(){return this.getPendingStore().hasAnyPendingWork()}getActiveSessionCount(){return this.sessions.size}getTotalQueueDepth(){let e=0;for(let r of this.sessions.values())e+=this.getPendingStore().getPendingCount(r.sessionDbId);return e}getTotalActiveWork(){return this.getTotalQueueDepth()}isAnySessionProcessing(){return this.getPendingStore().hasAnyPendingWork()}async*getMessageIterator(e){let r=this.sessions.get(e);r||(r=this.initializeSession(e));let n=this.sessionQueues.get(e);if(!n)throw new Error(`No emitter for session ${e}`);let s=new ud(this.getPendingStore(),n);for await(let i of s.createIterator({sessionDbId:e,signal:r.abortController.signal,onIdleTimeout:()=>{_.info("SESSION","Idle timeout reached, aborting session",{sessionId:e}),r.abortController.abort()}}))r.earliestPendingTimestamp===null?r.earliestPendingTimestamp=i._originalTimestamp:r.earliestPendingTimestamp=Math.min(r.earliestPendingTimestamp,i._originalTimestamp),yield i}async*getMessageBatchIterator(e,r){let n=this.sessions.get(e);n||(n=this.initializeSession(e));let s=this.sessionQueues.get(e);if(!s)throw new Error(`No emitter for session ${e}`);let i=new ud(this.getPendingStore(),s);for await(let a of i.createBatchIterator({sessionDbId:e,signal:n.abortController.signal,maxBatchSize:r,onIdleTimeout:()=>{_.info("SESSION","Idle timeout reached, aborting session",{sessionId:e}),n.abortController.abort()}})){for(let o of a)n.earliestPendingTimestamp===null?n.earliestPendingTimestamp=o._originalTimestamp:n.earliestPendingTimestamp=Math.min(n.earliestPendingTimestamp,o._originalTimestamp);yield a}}getPendingMessageStore(){return this.getPendingStore()}async cleanupStaleSessions(e=1800*1e3,r=!1){let n=Date.now(),s=n-e,i=0,a=[];for(let[o,c]of this.sessions)if(c.lastActivityTime0&&_.info("SESSION",`Cleaned up ${i} stale sessions`),i}getSessionStats(){let e=Date.now(),r=null,n=0;for(let s of this.sessions.values()){let i=e-s.startTime;(r===null||i>r)&&(r=i),s.generatorPromise&&n++}return{activeSessions:this.sessions.size,totalQueueDepth:this.getTotalQueueDepth(),oldestSessionAge:r,sessionsWithGenerators:n}}};re();var Gg=class{sseClients=new Set;addClient(e){this.sseClients.add(e),_.debug("WORKER","Client connected",{total:this.sseClients.size}),e.on("close",()=>{this.removeClient(e)}),this.sendToClient(e,{type:"connected",timestamp:Date.now()})}removeClient(e){this.sseClients.delete(e),_.debug("WORKER","Client disconnected",{total:this.sseClients.size})}broadcast(e){if(this.sseClients.size===0){_.debug("WORKER","SSE broadcast skipped (no clients)",{eventType:e.type});return}let r={...e,timestamp:Date.now()},n=`data: ${JSON.stringify(r)} `;_.debug("WORKER","SSE broadcast sent",{eventType:e.type,clients:this.sseClients.size});for(let s of this.sseClients)s.write(n)}getClientCount(){return this.sseClients.size}sendToClient(e,r){let n=`data: ${JSON.stringify(r)} -`;e.write(n)}};var N3=require("child_process"),D3=require("os"),M3=Q(require("path"),1);re();re();function q6(t,e,r,n){return`${n.prompts.system_identity} +`;e.write(n)}};var C3=require("child_process"),O3=require("os"),A3=Q(require("path"),1);re();re();function z6(t,e,r,n){return`${n.prompts.system_identity} ${r} @@ -1162,7 +1162,7 @@ ${n.prompts.format_examples} ${n.prompts.footer} -${n.prompts.header_memory_start}`}function yE(t){let e,r;try{e=typeof t.tool_input=="string"?JSON.parse(t.tool_input):t.tool_input}catch(n){_.debug("SDK","Tool input is plain string, using as-is",{toolName:t.tool_name},n),e=t.tool_input}try{r=typeof t.tool_output=="string"?JSON.parse(t.tool_output):t.tool_output}catch(n){_.debug("SDK","Tool output is plain string, using as-is",{toolName:t.tool_name},n),r=t.tool_output}return` +${n.prompts.header_memory_start}`}function hk(t){let e,r;try{e=typeof t.tool_input=="string"?JSON.parse(t.tool_input):t.tool_input}catch(n){_.debug("SDK","Tool input is plain string, using as-is",{toolName:t.tool_name},n),e=t.tool_input}try{r=typeof t.tool_output=="string"?JSON.parse(t.tool_output):t.tool_output}catch(n){_.debug("SDK","Tool output is plain string, using as-is",{toolName:t.tool_name},n),r=t.tool_output}return` ${t.tool_name} ${new Date(t.created_at_epoch).toISOString()}${t.cwd?` ${t.cwd}`:""} @@ -1170,7 +1170,7 @@ ${n.prompts.header_memory_start}`}function yE(t){let e,r;try{e=typeof t.tool_inp ${JSON.stringify(r,null,2)} -IMPORTANT: Generate EXACTLY ONE block for this tool call. Do not repeat or duplicate observations from earlier in the conversation.`}function F6(t){if(t.length===0)throw new Error("buildBatchObservationPrompt requires at least one observation");if(t.length===1)return yE(t[0]);let e=t.map((r,n)=>{let s,i;try{s=typeof r.tool_input=="string"?JSON.parse(r.tool_input):r.tool_input}catch{s=r.tool_input}try{i=typeof r.tool_output=="string"?JSON.parse(r.tool_output):r.tool_output}catch{i=r.tool_output}return` +IMPORTANT: Generate EXACTLY ONE block for this tool call. Do not repeat or duplicate observations from earlier in the conversation.`}function $6(t){if(t.length===0)throw new Error("buildBatchObservationPrompt requires at least one observation");if(t.length===1)return hk(t[0]);let e=t.map((r,n)=>{let s,i;try{s=typeof r.tool_input=="string"?JSON.parse(r.tool_input):r.tool_input}catch{s=r.tool_input}try{i=typeof r.tool_output=="string"?JSON.parse(r.tool_output):r.tool_output}catch{i=r.tool_output}return` ${r.tool_name} ${new Date(r.created_at_epoch).toISOString()}${r.cwd?` ${r.cwd}`:""} @@ -1188,7 +1188,7 @@ IMPORTANT: Generate EXACTLY ${t.length} blocks - one for each tool - Output observations in the same order as the tool_events (index 1, 2, 3, ...) - Each observation should be complete and self-contained - Do not combine or merge observations -- Do not skip any tool_event`}function H6(t,e){let r=t.last_assistant_message||"";return`${e.prompts.header_summary_checkpoint} +- Do not skip any tool_event`}function L6(t,e){let r=t.last_assistant_message||"";return`${e.prompts.header_summary_checkpoint} ${e.prompts.summary_instruction} ${e.prompts.summary_context_label} @@ -1204,7 +1204,7 @@ ${e.prompts.summary_format_instruction} ${e.prompts.xml_summary_notes_placeholder} -${e.prompts.summary_footer}`}function bE(t,e,r,n){return`${n.prompts.continuation_greeting} +${e.prompts.summary_footer}`}function gk(t,e,r,n){return`${n.prompts.continuation_greeting} ${t} @@ -1263,7 +1263,7 @@ ${n.prompts.format_examples} ${n.prompts.footer} -${n.prompts.header_memory_continued}`}Or();er();Hn();re();re();Hn();function Z6(t,e){let r=[],n=/([\s\S]*?)<\/observation>/g,s;for(;(s=n.exec(t))!==null;){let o=s[1],c=qs(o,"type"),l=qs(o,"title"),u=qs(o,"subtitle"),p=qs(o,"narrative"),d=Jg(o,"facts","fact"),m=Jg(o,"concepts","concept"),f=Jg(o,"files_read","file"),g=Jg(o,"files_modified","file"),h=et.getInstance().getActiveMode().observation_types.map(w=>w.id),y=h[0],b=y;c?h.includes(c.trim())?b=c.trim():_.error("PARSER",`Invalid observation type: ${c}, using "${y}"`,{correlationId:e}):_.error("PARSER",`Observation missing type field, using "${y}"`,{correlationId:e});let x=m.filter(w=>w!==b);x.length!==m.length&&_.debug("PARSER","Cleaned observation type from concepts",{correlationId:e,type:b,removed:m.filter(w=>w===b)}),r.push({type:b,title:l,subtitle:u,facts:d,narrative:p,concepts:x,files_read:f,files_modified:g})}let i=new Set,a=r.filter(o=>{let c=`${o.type}|${o.title||""}`;return i.has(c)?!1:(i.add(c),!0)});return a.length/.exec(t);if(n)return _.info("PARSER","Summary skipped",{sessionId:e,reason:n[1]}),null;let i=/([\s\S]*?)<\/summary>/.exec(t);if(!i)return null;let a=i[1],o=qs(a,"request"),c=qs(a,"investigated"),l=qs(a,"learned"),u=qs(a,"completed"),p=qs(a,"next_steps"),d=qs(a,"notes");return{request:o,investigated:c,learned:l,completed:u,next_steps:p,notes:d}}function qs(t,e){let n=new RegExp(`<${e}>([^<]*)`).exec(t);if(!n)return null;let s=n[1].trim();return s===""?null:s}function Jg(t,e,r){let n=[],i=new RegExp(`<${e}>(.*?)`,"s").exec(t);if(!i)return n;let a=i[1],o=new RegExp(`<${r}>([^<]+)`,"g"),c;for(;(c=o.exec(a))!==null;)n.push(c[1].trim());return n}var Wn=require("fs"),Gr=Q(require("path"),1),K6=Q(require("os"),1);re();Lc();Or();Ln();var Wfe=Gr.default.join(K6.default.homedir(),".pilot/memory","settings.json"),Zfe=[".git","node_modules","__pycache__",".pycache","venv",".venv",".env","vendor","dist","build",".next",".nuxt",".output",".cache",".turbo","coverage",".nyc_output",".pytest_cache",".mypy_cache",".tox","eggs","*.egg-info",".eggs","target","out",".gradle",".maven"];function Gfe(t){for(let e of Zfe)if(e.includes("*")){if(new RegExp("^"+e.replace(/\*/g,".*")+"$").test(t))return!0}else if(t===e)return!0;return!1}function J6(t){let r=t.replace(/\\/g,"/").split("/");for(let n of r)if(Gfe(n))return!0;return!1}function Vfe(t,e){if(!t||!t.trim()||t.startsWith("~")||t.startsWith("http://")||t.startsWith("https://")||t.includes(" ")||t.includes("#")||J6(t))return!1;if(e){let r=Gr.default.isAbsolute(t)?t:Gr.default.resolve(e,t),n=Gr.default.resolve(e);if(!r.startsWith(n+Gr.default.sep)&&r!==n)return!1}return!0}function Kfe(t,e){let r="",n="";if(!t)return`${r} +${n.prompts.header_memory_continued}`}Or();er();Hn();re();re();Hn();function F6(t,e){let r=[],n=/([\s\S]*?)<\/observation>/g,s;for(;(s=n.exec(t))!==null;){let o=s[1],c=qs(o,"type"),l=qs(o,"title"),u=qs(o,"subtitle"),p=qs(o,"narrative"),d=Vg(o,"facts","fact"),m=Vg(o,"concepts","concept"),f=Vg(o,"files_read","file"),g=Vg(o,"files_modified","file"),h=et.getInstance().getActiveMode().observation_types.map(w=>w.id),y=h[0],b=y;c?h.includes(c.trim())?b=c.trim():_.error("PARSER",`Invalid observation type: ${c}, using "${y}"`,{correlationId:e}):_.error("PARSER",`Observation missing type field, using "${y}"`,{correlationId:e});let x=m.filter(w=>w!==b);x.length!==m.length&&_.debug("PARSER","Cleaned observation type from concepts",{correlationId:e,type:b,removed:m.filter(w=>w===b)}),r.push({type:b,title:l,subtitle:u,facts:d,narrative:p,concepts:x,files_read:f,files_modified:g})}let i=new Set,a=r.filter(o=>{let c=`${o.type}|${o.title||""}`;return i.has(c)?!1:(i.add(c),!0)});return a.length/.exec(t);if(n)return _.info("PARSER","Summary skipped",{sessionId:e,reason:n[1]}),null;let i=/([\s\S]*?)<\/summary>/.exec(t);if(!i)return null;let a=i[1],o=qs(a,"request"),c=qs(a,"investigated"),l=qs(a,"learned"),u=qs(a,"completed"),p=qs(a,"next_steps"),d=qs(a,"notes");return{request:o,investigated:c,learned:l,completed:u,next_steps:p,notes:d}}function qs(t,e){let n=new RegExp(`<${e}>([^<]*)`).exec(t);if(!n)return null;let s=n[1].trim();return s===""?null:s}function Vg(t,e,r){let n=[],i=new RegExp(`<${e}>(.*?)`,"s").exec(t);if(!i)return n;let a=i[1],o=new RegExp(`<${r}>([^<]+)`,"g"),c;for(;(c=o.exec(a))!==null;)n.push(c[1].trim());return n}var Wn=require("fs"),Gr=Q(require("path"),1),W6=Q(require("os"),1);re();$c();Or();Ln();var Lfe=Gr.default.join(W6.default.homedir(),".pilot/memory","settings.json"),Ufe=[".git","node_modules","__pycache__",".pycache","venv",".venv",".env","vendor","dist","build",".next",".nuxt",".output",".cache",".turbo","coverage",".nyc_output",".pytest_cache",".mypy_cache",".tox","eggs","*.egg-info",".eggs","target","out",".gradle",".maven"];function qfe(t){for(let e of Ufe)if(e.includes("*")){if(new RegExp("^"+e.replace(/\*/g,".*")+"$").test(t))return!0}else if(t===e)return!0;return!1}function Z6(t){let r=t.replace(/\\/g,"/").split("/");for(let n of r)if(qfe(n))return!0;return!1}function Ffe(t,e){if(!t||!t.trim()||t.startsWith("~")||t.startsWith("http://")||t.startsWith("https://")||t.includes(" ")||t.includes("#")||Z6(t))return!1;if(e){let r=Gr.default.isAbsolute(t)?t:Gr.default.resolve(e,t),n=Gr.default.resolve(e);if(!r.startsWith(n+Gr.default.sep)&&r!==n)return!1}return!0}function Hfe(t,e){let r="",n="";if(!t)return`${r} ${e} ${n}`;let s=t.indexOf(r),i=t.indexOf(n);return s!==-1&&i!==-1?t.substring(0,s)+`${r} ${e} @@ -1271,25 +1271,25 @@ ${n}`+t.substring(i+n.length):t+` ${r} ${e} -${n}`}function Jfe(t,e){if(!(0,Wn.existsSync)(t)){_.debug("FOLDER_INDEX","Skipping non-existent folder",{folderPath:t});return}let r=Gr.default.join(t,"CLAUDE.md"),n=`${r}.tmp`,s="";if((0,Wn.existsSync)(r)&&(s=(0,Wn.readFileSync)(r,"utf-8")),!s&&e.includes("*No recent activity*")){_.debug("FOLDER_INDEX","Skipping empty activity file creation",{folderPath:t});return}let i=Kfe(s,e);(0,Wn.writeFileSync)(n,i),(0,Wn.renameSync)(n,r)}function Qfe(t){let e=[];e.push("# Recent Activity"),e.push(""),e.push(""),e.push("");let r=t.split(` +${n}`}function Bfe(t,e){if(!(0,Wn.existsSync)(t)){_.debug("FOLDER_INDEX","Skipping non-existent folder",{folderPath:t});return}let r=Gr.default.join(t,"CLAUDE.md"),n=`${r}.tmp`,s="";if((0,Wn.existsSync)(r)&&(s=(0,Wn.readFileSync)(r,"utf-8")),!s&&e.includes("*No recent activity*")){_.debug("FOLDER_INDEX","Skipping empty activity file creation",{folderPath:t});return}let i=Hfe(s,e);(0,Wn.writeFileSync)(n,i),(0,Wn.renameSync)(n,r)}function Wfe(t){let e=[];e.push("# Recent Activity"),e.push(""),e.push(""),e.push("");let r=t.split(` `),n=[],s="",i=null;for(let o of r){let c=o.match(/^###\s+(.+)$/);if(c){let u=c[1].trim(),p=new Date(u);isNaN(p.getTime())||(i=p);continue}let l=o.match(/^\|\s*(#[S]?\d+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|/);if(l){let[,u,p,d,m,f]=l,g;p.trim()==="\u2033"||p.trim()==='"'?g=s:(g=p.trim(),s=g);let v=i?new Date(i):new Date,h=g.match(/(\d+):(\d+)\s*(AM|PM)/i),y=v.getTime();if(h){let b=parseInt(h[1],10),x=parseInt(h[2],10),w=h[3].toUpperCase()==="PM";w&&b!==12&&(b+=12),!w&&b===12&&(b=0),v.setHours(b,x,0,0),y=v.getTime()}n.push({id:u.trim(),time:g,typeEmoji:d.trim(),title:m.trim(),tokens:f.trim(),epoch:y})}}if(n.length===0)return e.push("*No recent activity*"),e.join(` -`);let a=Ka(n,o=>new Date(o.epoch).toISOString());for(let[o,c]of a){e.push(`### ${o}`),e.push(""),e.push("| ID | Time | T | Title | Read |"),e.push("|----|------|---|-------|------|");let l="";for(let u of c){let p=u.time===l?'"':u.time;l=u.time,e.push(`| ${u.id} | ${p} | ${u.typeEmoji} | ${u.title} | ${u.tokens} |`)}e.push("")}return e.join(` -`).trim()}var Yfe=[".git","package.json","composer.json","Cargo.toml","go.mod","pyproject.toml","setup.py","Gemfile","pom.xml","build.gradle","CMakeLists.txt","Makefile.am","meson.build"];function Xfe(t){for(let r of Yfe){let n=Gr.default.join(t,r);if((0,Wn.existsSync)(n))return!0}let e=Gr.default.join(t,"CLAUDE.md");if((0,Wn.existsSync)(e))try{if(!(0,Wn.readFileSync)(e,"utf-8").includes(""))return!0}catch{return!0}return!1}function ehe(t,e){if(J6(t))return!0;let r=Gr.default.resolve(t);for(let n of e){let s=Gr.default.resolve(n);if(r===s||r.startsWith(s+Gr.default.sep))return!0}return!1}async function Q6(t,e,r,n){let s=Ae.loadFromFile(Wfe);if(!s.CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED){_.debug("FOLDER_INDEX","Folder CLAUDE.md generation disabled by setting");return}let i=parseInt(s.CLAUDE_PILOT_CONTEXT_OBSERVATIONS,10)||50,a=[];try{let c=JSON.parse(s.CLAUDE_PILOT_FOLDER_MD_EXCLUDE||"[]");Array.isArray(c)&&(a=c.filter(l=>typeof l=="string"))}catch{_.warn("FOLDER_INDEX","Failed to parse CLAUDE_PILOT_FOLDER_MD_EXCLUDE setting")}let o=new Set;for(let c of t){if(!c||c==="")continue;if(!Vfe(c,n)){_.debug("FOLDER_INDEX","Skipping invalid file path",{filePath:c,reason:"Failed path validation"});continue}let l=c;n&&!Gr.default.isAbsolute(c)&&(l=Gr.default.join(n,c));let u=Gr.default.dirname(l);if(u&&u!=="."&&u!=="/"){if(u.includes("/.git")||u.includes("\\.git")){_.debug("FOLDER_INDEX","Skipping .git directory",{folderPath:u});continue}if(Xfe(u)){_.debug("FOLDER_INDEX","Skipping project root CLAUDE.md",{folderPath:u});continue}if(a.length>0&&ehe(u,a)){_.debug("FOLDER_INDEX","Skipping excluded folder",{folderPath:u});continue}o.add(u)}}if(o.size!==0){_.debug("FOLDER_INDEX","Updating CLAUDE.md files",{project:e,folderCount:o.size});for(let c of o)try{let l=us(),u=await fetch(`http://${l}:${r}/api/search/by-file?filePath=${encodeURIComponent(c)}&limit=${i}&project=${encodeURIComponent(e)}&isFolder=true`);if(!u.ok){_.error("FOLDER_INDEX","Failed to fetch timeline",{folderPath:c,status:u.status});continue}let p=await u.json();if(!p.content?.[0]?.text){_.debug("FOLDER_INDEX","No content for folder",{folderPath:c});continue}let d=Qfe(p.content[0].text);Jfe(c,d),_.debug("FOLDER_INDEX","Updated CLAUDE.md",{folderPath:c})}catch(l){let u=l;_.error("FOLDER_INDEX","Failed to update CLAUDE.md",{folderPath:c,errorMessage:u.message,errorStack:u.stack})}}}Ln();Ja();var wE=require("child_process");function nF(t){try{let e=(0,wE.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:t||process.cwd(),encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3,windowsHide:!0}).trim();return e==="HEAD"?`detached@${(0,wE.execSync)("git rev-parse --short HEAD",{cwd:t||process.cwd(),encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3,windowsHide:!0}).trim()}`:e||null}catch{return null}}function SE(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_observation",observation:e})}function kE(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_summary",summary:e})}function EE(t,e){t.earliestPendingTimestamp=null,e&&typeof e.broadcastProcessingStatus=="function"&&e.broadcastProcessingStatus()}async function TE(t,e,r,n,s,i,a,o,c){t&&e.conversationHistory.push({role:"assistant",content:t});let l=Z6(t,e.contentSessionId),u=G6(t,e.sessionDbId),p=ahe(u),d=r.getSessionStore();if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");let m=sF(l),f=rF(m,e.project,c);f!==e.project&&_.info("PROJECT",`Detected project from files: ${f} (session: ${e.project})`,{detectedProject:f,sessionProject:e.project,fileCount:m.length});let g=nF(c);_.info("DB",`STORING | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | project=${f} | obsCount=${l.length} | hasSummary=${!!p}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId,project:f,gitBranch:g});let v=d.storeObservations(e.memorySessionId,f,l,p,e.lastPromptNumber,i,a??void 0);_.info("DB",`STORED | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | obsCount=${v.observationIds.length} | obsIds=[${v.observationIds.join(",")}] | summaryId=${v.summaryId||"none"}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId}),await ohe(l,v,e,f,r,s,i,o,c),await che(u,p,v,e,f,r,s,i,o),EE(e,s)}function ahe(t){return t?{request:t.request||"",investigated:t.investigated||"",learned:t.learned||"",completed:t.completed||"",next_steps:t.next_steps||"",notes:t.notes}:null}function sF(t){let e=[];for(let r of t)e.push(...r.files_read||[]),e.push(...r.files_modified||[]);return e}async function ohe(t,e,r,n,s,i,a,o,c){for(let u=0;u{let f=Date.now()-m;_.debug("VECTOR","Observation synced",{obsId:p,duration:`${f}ms`,type:d.type,title:d.title||"(untitled)"})}).catch(f=>{_.error("VECTOR",`${o} vector sync failed, continuing without vector search`,{obsId:p,type:d.type,title:d.title||"(untitled)"},f)}),SE(i,{id:p,memory_session_id:r.memorySessionId,session_id:r.contentSessionId,type:d.type,title:d.title,subtitle:d.subtitle,text:null,narrative:d.narrative||null,facts:JSON.stringify(d.facts||[]),concepts:JSON.stringify(d.concepts||[]),files_read:JSON.stringify(d.files_read||[]),files_modified:JSON.stringify(d.files_modified||[]),project:n,prompt_number:r.lastPromptNumber,created_at_epoch:e.createdAtEpoch})}let l=sF(t);l.length>0&&Q6(l,n,un(),c).catch(u=>{_.warn("FOLDER_INDEX","CLAUDE.md update failed (non-critical)",{project:n},u)})}async function che(t,e,r,n,s,i,a,o,c){if(!e||!r.summaryId)return;let l=Date.now();i.getVectorSync().syncSummary(r.summaryId,n.contentSessionId,s,e,n.lastPromptNumber,r.createdAtEpoch,o).then(()=>{let u=Date.now()-l;_.debug("VECTOR","Summary synced",{summaryId:r.summaryId,duration:`${u}ms`,request:e.request||"(no request)"})}).catch(u=>{_.error("VECTOR",`${c} vector sync failed, continuing without vector search`,{summaryId:r.summaryId,request:e.request||"(no request)"},u)}),kE(a,{id:r.summaryId,session_id:n.contentSessionId,request:t.request,investigated:t.investigated,learned:t.learned,completed:t.completed,next_steps:t.next_steps,notes:t.notes,project:s,prompt_number:n.lastPromptNumber,created_at_epoch:r.createdAtEpoch})}var tv=require("fs");re();er();var iF=ox;function uhe(){try{if(!(0,tv.existsSync)(iF))return _.debug("SUBSCRIPTION","No credentials file found, assuming no subscription"),!1;let t=(0,tv.readFileSync)(iF,"utf-8"),e=JSON.parse(t),r=e.planType||e.tier||e.subscription?.type||e.subscription?.tier||"",s=["pro","max","team","enterprise"].some(i=>r.toLowerCase().includes(i));return s&&_.debug("SUBSCRIPTION","Paid subscription detected",{tier:r}),s}catch(t){return _.debug("SUBSCRIPTION","Could not read credentials",{},t),!1}}function aF(){if(!uhe())return null;let t=process.env.ANTHROPIC_API_KEY;return t?(_.info("SUBSCRIPTION","Claude subscription detected - routing through CLI billing"),delete process.env.ANTHROPIC_API_KEY,()=>{process.env.ANTHROPIC_API_KEY=t}):null}var m8=require("events"),h8=require("child_process"),g8=require("readline"),w8=require("os"),S8=require("path"),W8=require("crypto"),xy=require("fs/promises"),YE=require("path"),XE=require("fs"),Z8=require("process"),ET=require("crypto"),ta=require("fs/promises"),bl=require("path"),Re=Q(require("fs"),1),or=require("fs/promises"),iT=require("path"),X8=require("url");var e9=require("child_process"),t9=require("util");var vke={},phe=Object.create,{getPrototypeOf:dhe,defineProperty:LE,getOwnPropertyNames:mhe}=Object,fhe=Object.prototype.hasOwnProperty;function hhe(t){return this[t]}var ghe,vhe,i8=(t,e,r)=>{var n=t!=null&&typeof t=="object";if(n){var s=e?ghe??=new WeakMap:vhe??=new WeakMap,i=s.get(t);if(i)return i}r=t!=null?phe(dhe(t)):{};let a=e||!t||!t.__esModule?LE(r,"default",{value:t,enumerable:!0}):r;for(let o of mhe(t))fhe.call(a,o)||LE(a,o,{get:hhe.bind(t,o),enumerable:!0});return n&&s.set(t,a),a},ne=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),yhe=t=>t;function bhe(t,e){this[t]=yhe.bind(null,e)}var uo=(t,e)=>{for(var r in e)LE(t,r,{get:e[r],enumerable:!0,configurable:!0,set:bhe.bind(e,r)})},xhe=Symbol.dispose||Symbol.for("Symbol.dispose"),_he=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),Zt=(t,e,r)=>{if(e!=null){if(typeof e!="object"&&typeof e!="function")throw TypeError('Object expected to be assigned to "using" declaration');var n;if(r&&(n=e[_he]),n===void 0&&(n=e[xhe]),typeof n!="function")throw TypeError("Object not disposable");t.push([r,n,e])}else r&&t.push([r]);return e},Gt=(t,e,r)=>{var n=typeof SuppressedError=="function"?SuppressedError:function(a,o,c,l){return l=Error(c),l.name="SuppressedError",l.error=a,l.suppressed=o,l},s=a=>e=r?new n(a,e,"An error was suppressed during disposal"):(r=!0,a),i=a=>{for(;a=t.pop();)try{var o=a[1]&&a[1].call(a[2]);if(a[0])return Promise.resolve(o).then(i,c=>(s(c),i()))}catch(c){s(c)}if(r)throw e};return i()},Ev=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class e{}t._CodeOrName=e,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends e{constructor(y){if(super(),!t.IDENTIFIER.test(y))throw Error("CodeGen: name must be a valid identifier");this.str=y}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(y){super(),this._items=typeof y=="string"?[y]:y}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let y=this._items[0];return y===""||y==='""'}get str(){var y;return(y=this._str)!==null&&y!==void 0?y:this._str=this._items.reduce((b,x)=>`${b}${x}`,"")}get names(){var y;return(y=this._names)!==null&&y!==void 0?y:this._names=this._items.reduce((b,x)=>(x instanceof r&&(b[x.str]=(b[x.str]||0)+1),b),{})}}t._Code=n,t.nil=new n("");function s(h,...y){let b=[h[0]],x=0;for(;x{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=Ev();class r extends Error{constructor(l){super(`CodeGen: "code" for ${l} not defined`),this.value=l.value}}var n;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(n||(t.UsedValueState=n={})),t.varKinds={const:new e.Name("const"),let:new e.Name("let"),var:new e.Name("var")};class s{constructor({prefixes:l,parent:u}={}){this._names={},this._prefixes=l,this._parent=u}toName(l){return l instanceof e.Name?l:this.name(l)}name(l){return new e.Name(this._newName(l))}_newName(l){let u=this._names[l]||this._nameGroup(l);return`${l}${u.index++}`}_nameGroup(l){var u,p;if(!((p=(u=this._parent)===null||u===void 0?void 0:u._prefixes)===null||p===void 0)&&p.has(l)||this._prefixes&&!this._prefixes.has(l))throw Error(`CodeGen: prefix "${l}" is not allowed in this scope`);return this._names[l]={prefix:l,index:0}}}t.Scope=s;class i extends e.Name{constructor(l,u){super(u),this.prefix=l}setValue(l,{property:u,itemIndex:p}){this.value=l,this.scopePath=e._`.${new e.Name(u)}[${p}]`}}t.ValueScopeName=i;var a=e._`\n`;class o extends s{constructor(l){super(l),this._values={},this._scope=l.scope,this.opts={...l,_n:l.lines?a:e.nil}}get(){return this._scope}name(l){return new i(l,this._newName(l))}value(l,u){var p;if(u.ref===void 0)throw Error("CodeGen: ref must be passed in value");let d=this.toName(l),{prefix:m}=d,f=(p=u.key)!==null&&p!==void 0?p:u.ref,g=this._values[m];if(g){let y=g.get(f);if(y)return y}else g=this._values[m]=new Map;g.set(f,d);let v=this._scope[m]||(this._scope[m]=[]),h=v.length;return v[h]=u.ref,d.setValue(u,{property:m,itemIndex:h}),d}getValue(l,u){let p=this._values[l];if(p)return p.get(u)}scopeRefs(l,u=this._values){return this._reduceValues(u,p=>{if(p.scopePath===void 0)throw Error(`CodeGen: name "${p}" has no value`);return e._`${l}${p.scopePath}`})}scopeCode(l=this._values,u,p){return this._reduceValues(l,d=>{if(d.value===void 0)throw Error(`CodeGen: name "${d}" has no value`);return d.value.code},u,p)}_reduceValues(l,u,p={},d){let m=e.nil;for(let f in l){let g=l[f];if(!g)continue;let v=p[f]=p[f]||new Map;g.forEach(h=>{if(v.has(h))return;v.set(h,n.Started);let y=u(h);if(y){let b=this.opts.es5?t.varKinds.var:t.varKinds.const;m=e._`${m}${b} ${h} = ${y};${this.opts._n}`}else if(y=d?.(h))m=e._`${m}${y}${this.opts._n}`;else throw new r(h);v.set(h,n.Completed)})}return m}}t.ValueScope=o}),De=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;var e=Ev(),r=oF(),n=Ev();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(t,"strConcat",{enumerable:!0,get:function(){return n.strConcat}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(t,"getProperty",{enumerable:!0,get:function(){return n.getProperty}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(t,"regexpCode",{enumerable:!0,get:function(){return n.regexpCode}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return n.Name}});var s=oF();Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return s.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return s.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return s.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return s.varKinds}}),t.operators={GT:new e._Code(">"),GTE:new e._Code(">="),LT:new e._Code("<"),LTE:new e._Code("<="),EQ:new e._Code("==="),NEQ:new e._Code("!=="),NOT:new e._Code("!"),OR:new e._Code("||"),AND:new e._Code("&&"),ADD:new e._Code("+")};class i{optimizeNodes(){return this}optimizeNames(T,I){return this}}class a extends i{constructor(T,I,H){super(),this.varKind=T,this.name=I,this.rhs=H}render({es5:T,_n:I}){let H=T?r.varKinds.var:this.varKind,pe=this.rhs===void 0?"":` = ${this.rhs}`;return`${H} ${this.name}${pe};`+I}optimizeNames(T,I){if(T[this.name.str])return this.rhs&&(this.rhs=Z(this.rhs,T,I)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class o extends i{constructor(T,I,H){super(),this.lhs=T,this.rhs=I,this.sideEffects=H}render({_n:T}){return`${this.lhs} = ${this.rhs};`+T}optimizeNames(T,I){if(!(this.lhs instanceof e.Name&&!T[this.lhs.str]&&!this.sideEffects))return this.rhs=Z(this.rhs,T,I),this}get names(){let T=this.lhs instanceof e.Name?{}:{...this.lhs.names};return q(T,this.rhs)}}class c extends o{constructor(T,I,H,pe){super(T,H,pe),this.op=I}render({_n:T}){return`${this.lhs} ${this.op}= ${this.rhs};`+T}}class l extends i{constructor(T){super(),this.label=T,this.names={}}render({_n:T}){return`${this.label}:`+T}}class u extends i{constructor(T){super(),this.label=T,this.names={}}render({_n:T}){return`break${this.label?` ${this.label}`:""};`+T}}class p extends i{constructor(T){super(),this.error=T}render({_n:T}){return`throw ${this.error};`+T}get names(){return this.error.names}}class d extends i{constructor(T){super(),this.code=T}render({_n:T}){return`${this.code};`+T}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(T,I){return this.code=Z(this.code,T,I),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class m extends i{constructor(T=[]){super(),this.nodes=T}render(T){return this.nodes.reduce((I,H)=>I+H.render(T),"")}optimizeNodes(){let{nodes:T}=this,I=T.length;for(;I--;){let H=T[I].optimizeNodes();Array.isArray(H)?T.splice(I,1,...H):H?T[I]=H:T.splice(I,1)}return T.length>0?this:void 0}optimizeNames(T,I){let{nodes:H}=this,pe=H.length;for(;pe--;){let he=H[pe];he.optimizeNames(T,I)||(se(T,he.names),H.splice(pe,1))}return H.length>0?this:void 0}get names(){return this.nodes.reduce((T,I)=>U(T,I.names),{})}}class f extends m{render(T){return"{"+T._n+super.render(T)+"}"+T._n}}class g extends m{}class v extends f{}v.kind="else";class h extends f{constructor(T,I){super(I),this.condition=T}render(T){let I=`if(${this.condition})`+super.render(T);return this.else&&(I+="else "+this.else.render(T)),I}optimizeNodes(){super.optimizeNodes();let T=this.condition;if(T===!0)return this.nodes;let I=this.else;if(I){let H=I.optimizeNodes();I=this.else=Array.isArray(H)?new v(H):H}if(I)return T===!1?I instanceof h?I:I.nodes:this.nodes.length?this:new h(K(T),I instanceof h?[I]:I.nodes);if(!(T===!1||!this.nodes.length))return this}optimizeNames(T,I){var H;if(this.else=(H=this.else)===null||H===void 0?void 0:H.optimizeNames(T,I),!!(super.optimizeNames(T,I)||this.else))return this.condition=Z(this.condition,T,I),this}get names(){let T=super.names;return q(T,this.condition),this.else&&U(T,this.else.names),T}}h.kind="if";class y extends f{}y.kind="for";class b extends y{constructor(T){super(),this.iteration=T}render(T){return`for(${this.iteration})`+super.render(T)}optimizeNames(T,I){if(super.optimizeNames(T,I))return this.iteration=Z(this.iteration,T,I),this}get names(){return U(super.names,this.iteration.names)}}class x extends y{constructor(T,I,H,pe){super(),this.varKind=T,this.name=I,this.from=H,this.to=pe}render(T){let I=T.es5?r.varKinds.var:this.varKind,{name:H,from:pe,to:he}=this;return`for(${I} ${H}=${pe}; ${H}<${he}; ${H}++)`+super.render(T)}get names(){let T=q(super.names,this.from);return q(T,this.to)}}class w extends y{constructor(T,I,H,pe){super(),this.loop=T,this.varKind=I,this.name=H,this.iterable=pe}render(T){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(T)}optimizeNames(T,I){if(super.optimizeNames(T,I))return this.iterable=Z(this.iterable,T,I),this}get names(){return U(super.names,this.iterable.names)}}class S extends f{constructor(T,I,H){super(),this.name=T,this.args=I,this.async=H}render(T){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(T)}}S.kind="func";class k extends m{render(T){return"return "+super.render(T)}}k.kind="return";class E extends f{render(T){let I="try"+super.render(T);return this.catch&&(I+=this.catch.render(T)),this.finally&&(I+=this.finally.render(T)),I}optimizeNodes(){var T,I;return super.optimizeNodes(),(T=this.catch)===null||T===void 0||T.optimizeNodes(),(I=this.finally)===null||I===void 0||I.optimizeNodes(),this}optimizeNames(T,I){var H,pe;return super.optimizeNames(T,I),(H=this.catch)===null||H===void 0||H.optimizeNames(T,I),(pe=this.finally)===null||pe===void 0||pe.optimizeNames(T,I),this}get names(){let T=super.names;return this.catch&&U(T,this.catch.names),this.finally&&U(T,this.finally.names),T}}class R extends f{constructor(T){super(),this.error=T}render(T){return`catch(${this.error})`+super.render(T)}}R.kind="catch";class O extends f{render(T){return"finally"+super.render(T)}}O.kind="finally";class C{constructor(T,I={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...I,_n:I.lines?` -`:""},this._extScope=T,this._scope=new r.Scope({parent:T}),this._nodes=[new g]}toString(){return this._root.render(this.opts)}name(T){return this._scope.name(T)}scopeName(T){return this._extScope.name(T)}scopeValue(T,I){let H=this._extScope.value(T,I);return(this._values[H.prefix]||(this._values[H.prefix]=new Set)).add(H),H}getScopeValue(T,I){return this._extScope.getValue(T,I)}scopeRefs(T){return this._extScope.scopeRefs(T,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(T,I,H,pe){let he=this._scope.toName(I);return H!==void 0&&pe&&(this._constants[he.str]=H),this._leafNode(new a(T,he,H)),he}const(T,I,H){return this._def(r.varKinds.const,T,I,H)}let(T,I,H){return this._def(r.varKinds.let,T,I,H)}var(T,I,H){return this._def(r.varKinds.var,T,I,H)}assign(T,I,H){return this._leafNode(new o(T,I,H))}add(T,I){return this._leafNode(new c(T,t.operators.ADD,I))}code(T){return typeof T=="function"?T():T!==e.nil&&this._leafNode(new d(T)),this}object(...T){let I=["{"];for(let[H,pe]of T)I.length>1&&I.push(","),I.push(H),(H!==pe||this.opts.es5)&&(I.push(":"),(0,e.addCodeArg)(I,pe));return I.push("}"),new e._Code(I)}if(T,I,H){if(this._blockNode(new h(T)),I&&H)this.code(I).else().code(H).endIf();else if(I)this.code(I).endIf();else if(H)throw Error('CodeGen: "else" body without "then" body');return this}elseIf(T){return this._elseNode(new h(T))}else(){return this._elseNode(new v)}endIf(){return this._endBlockNode(h,v)}_for(T,I){return this._blockNode(T),I&&this.code(I).endFor(),this}for(T,I){return this._for(new b(T),I)}forRange(T,I,H,pe,he=this.opts.es5?r.varKinds.var:r.varKinds.let){let st=this._scope.toName(T);return this._for(new x(he,st,I,H),()=>pe(st))}forOf(T,I,H,pe=r.varKinds.const){let he=this._scope.toName(T);if(this.opts.es5){let st=I instanceof e.Name?I:this.var("_arr",I);return this.forRange("_i",0,e._`${st}.length`,Ye=>{this.var(he,e._`${st}[${Ye}]`),H(he)})}return this._for(new w("of",pe,he,I),()=>H(he))}forIn(T,I,H,pe=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(T,e._`Object.keys(${I})`,H);let he=this._scope.toName(T);return this._for(new w("in",pe,he,I),()=>H(he))}endFor(){return this._endBlockNode(y)}label(T){return this._leafNode(new l(T))}break(T){return this._leafNode(new u(T))}return(T){let I=new k;if(this._blockNode(I),this.code(T),I.nodes.length!==1)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(k)}try(T,I,H){if(!I&&!H)throw Error('CodeGen: "try" without "catch" and "finally"');let pe=new E;if(this._blockNode(pe),this.code(T),I){let he=this.name("e");this._currNode=pe.catch=new R(he),I(he)}return H&&(this._currNode=pe.finally=new O,this.code(H)),this._endBlockNode(R,O)}throw(T){return this._leafNode(new p(T))}block(T,I){return this._blockStarts.push(this._nodes.length),T&&this.code(T).endBlock(I),this}endBlock(T){let I=this._blockStarts.pop();if(I===void 0)throw Error("CodeGen: not in self-balancing block");let H=this._nodes.length-I;if(H<0||T!==void 0&&H!==T)throw Error(`CodeGen: wrong number of nodes: ${H} vs ${T} expected`);return this._nodes.length=I,this}func(T,I=e.nil,H,pe){return this._blockNode(new S(T,I,H)),pe&&this.code(pe).endFunc(),this}endFunc(){return this._endBlockNode(S)}optimize(T=1){for(;T-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(T){return this._currNode.nodes.push(T),this}_blockNode(T){this._currNode.nodes.push(T),this._nodes.push(T)}_endBlockNode(T,I){let H=this._currNode;if(H instanceof T||I&&H instanceof I)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${I?`${T.kind}/${I.kind}`:T.kind}"`)}_elseNode(T){let I=this._currNode;if(!(I instanceof h))throw Error('CodeGen: "else" without "if"');return this._currNode=I.else=T,this}get _root(){return this._nodes[0]}get _currNode(){let T=this._nodes;return T[T.length-1]}set _currNode(T){let I=this._nodes;I[I.length-1]=T}}t.CodeGen=C;function U(z,T){for(let I in T)z[I]=(z[I]||0)+(T[I]||0);return z}function q(z,T){return T instanceof e._CodeOrName?U(z,T.names):z}function Z(z,T,I){if(z instanceof e.Name)return H(z);if(!pe(z))return z;return new e._Code(z._items.reduce((he,st)=>(st instanceof e.Name&&(st=H(st)),st instanceof e._Code?he.push(...st._items):he.push(st),he),[]));function H(he){let st=I[he.str];return st===void 0||T[he.str]!==1?he:(delete T[he.str],st)}function pe(he){return he instanceof e._Code&&he._items.some(st=>st instanceof e.Name&&T[st.str]===1&&I[st.str]!==void 0)}}function se(z,T){for(let I in T)z[I]=(z[I]||0)-(T[I]||0)}function K(z){return typeof z=="boolean"||typeof z=="number"||z===null?!z:e._`!${B(z)}`}t.not=K;var yt=A(t.operators.AND);function Cr(...z){return z.reduce(yt)}t.and=Cr;var Fe=A(t.operators.OR);function V(...z){return z.reduce(Fe)}t.or=V;function A(z){return(T,I)=>T===e.nil?I:I===e.nil?T:e._`${B(T)} ${z} ${B(I)}`}function B(z){return z instanceof e.Name?z:e._`(${z})`}}),rt=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;var e=De(),r=Ev();function n(S){let k={};for(let E of S)k[E]=!0;return k}t.toHash=n;function s(S,k){return typeof k=="boolean"?k:Object.keys(k).length===0?!0:(i(S,k),!a(k,S.self.RULES.all))}t.alwaysValidSchema=s;function i(S,k=S.schema){let{opts:E,self:R}=S;if(!E.strictSchema||typeof k=="boolean")return;let O=R.RULES.keywords;for(let C in k)O[C]||w(S,`unknown keyword: "${C}"`)}t.checkUnknownRules=i;function a(S,k){if(typeof S=="boolean")return!S;for(let E in S)if(k[E])return!0;return!1}t.schemaHasRules=a;function o(S,k){if(typeof S=="boolean")return!S;for(let E in S)if(E!=="$ref"&&k.all[E])return!0;return!1}t.schemaHasRulesButRef=o;function c({topSchemaRef:S,schemaPath:k},E,R,O){if(!O){if(typeof E=="number"||typeof E=="boolean")return E;if(typeof E=="string")return e._`${E}`}return e._`${S}${k}${(0,e.getProperty)(R)}`}t.schemaRefOrVal=c;function l(S){return d(decodeURIComponent(S))}t.unescapeFragment=l;function u(S){return encodeURIComponent(p(S))}t.escapeFragment=u;function p(S){return typeof S=="number"?`${S}`:S.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=p;function d(S){return S.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=d;function m(S,k){if(Array.isArray(S))for(let E of S)k(E);else k(S)}t.eachItem=m;function f({mergeNames:S,mergeToName:k,mergeValues:E,resultToName:R}){return(O,C,U,q)=>{let Z=U===void 0?C:U instanceof e.Name?(C instanceof e.Name?S(O,C,U):k(O,C,U),U):C instanceof e.Name?(k(O,U,C),C):E(C,U);return q===e.Name&&!(Z instanceof e.Name)?R(O,Z):Z}}t.mergeEvaluated={props:f({mergeNames:(S,k,E)=>S.if(e._`${E} !== true && ${k} !== undefined`,()=>{S.if(e._`${k} === true`,()=>S.assign(E,!0),()=>S.assign(E,e._`${E} || {}`).code(e._`Object.assign(${E}, ${k})`))}),mergeToName:(S,k,E)=>S.if(e._`${E} !== true`,()=>{k===!0?S.assign(E,!0):(S.assign(E,e._`${E} || {}`),v(S,E,k))}),mergeValues:(S,k)=>S===!0?!0:{...S,...k},resultToName:g}),items:f({mergeNames:(S,k,E)=>S.if(e._`${E} !== true && ${k} !== undefined`,()=>S.assign(E,e._`${k} === true ? true : ${E} > ${k} ? ${E} : ${k}`)),mergeToName:(S,k,E)=>S.if(e._`${E} !== true`,()=>S.assign(E,k===!0?!0:e._`${E} > ${k} ? ${E} : ${k}`)),mergeValues:(S,k)=>S===!0?!0:Math.max(S,k),resultToName:(S,k)=>S.var("items",k)})};function g(S,k){if(k===!0)return S.var("props",!0);let E=S.var("props",e._`{}`);return k!==void 0&&v(S,E,k),E}t.evaluatedPropsToName=g;function v(S,k,E){Object.keys(E).forEach(R=>S.assign(e._`${k}${(0,e.getProperty)(R)}`,!0))}t.setEvaluated=v;var h={};function y(S,k){return S.scopeValue("func",{ref:k,code:h[k.code]||(h[k.code]=new r._Code(k.code))})}t.useFunc=y;var b;(function(S){S[S.Num=0]="Num",S[S.Str=1]="Str"})(b||(t.Type=b={}));function x(S,k,E){if(S instanceof e.Name){let R=k===b.Num;return E?R?e._`"[" + ${S} + "]"`:e._`"['" + ${S} + "']"`:R?e._`"/" + ${S}`:e._`"/" + ${S}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return E?(0,e.getProperty)(S).toString():"/"+p(S)}t.getErrorPath=x;function w(S,k,E=S.opts.strictSchema){if(E){if(k=`strict mode: ${k}`,E===!0)throw Error(k);S.self.logger.warn(k)}}t.checkStrictMode=w}),Xi=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};t.default=r}),fy=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=De(),r=rt(),n=Xi();t.keywordError={message:({keyword:v})=>e.str`must pass "${v}" keyword validation`},t.keyword$DataError={message:({keyword:v,schemaType:h})=>h?e.str`"${v}" keyword must be ${h} ($data)`:e.str`"${v}" keyword is invalid ($data)`};function s(v,h=t.keywordError,y,b){let{it:x}=v,{gen:w,compositeRule:S,allErrors:k}=x,E=p(v,h,y);b??(S||k)?c(w,E):l(x,e._`[${E}]`)}t.reportError=s;function i(v,h=t.keywordError,y){let{it:b}=v,{gen:x,compositeRule:w,allErrors:S}=b,k=p(v,h,y);c(x,k),!(w||S)&&l(b,n.default.vErrors)}t.reportExtraError=i;function a(v,h){v.assign(n.default.errors,h),v.if(e._`${n.default.vErrors} !== null`,()=>v.if(h,()=>v.assign(e._`${n.default.vErrors}.length`,h),()=>v.assign(n.default.vErrors,null)))}t.resetErrorsCount=a;function o({gen:v,keyword:h,schemaValue:y,data:b,errsCount:x,it:w}){if(x===void 0)throw Error("ajv implementation error");let S=v.name("err");v.forRange("i",x,n.default.errors,k=>{v.const(S,e._`${n.default.vErrors}[${k}]`),v.if(e._`${S}.instancePath === undefined`,()=>v.assign(e._`${S}.instancePath`,(0,e.strConcat)(n.default.instancePath,w.errorPath))),v.assign(e._`${S}.schemaPath`,e.str`${w.errSchemaPath}/${h}`),w.opts.verbose&&(v.assign(e._`${S}.schema`,y),v.assign(e._`${S}.data`,b))})}t.extendErrors=o;function c(v,h){let y=v.const("err",h);v.if(e._`${n.default.vErrors} === null`,()=>v.assign(n.default.vErrors,e._`[${y}]`),e._`${n.default.vErrors}.push(${y})`),v.code(e._`${n.default.errors}++`)}function l(v,h){let{gen:y,validateName:b,schemaEnv:x}=v;x.$async?y.throw(e._`new ${v.ValidationError}(${h})`):(y.assign(e._`${b}.errors`,h),y.return(!1))}var u={keyword:new e.Name("keyword"),schemaPath:new e.Name("schemaPath"),params:new e.Name("params"),propertyName:new e.Name("propertyName"),message:new e.Name("message"),schema:new e.Name("schema"),parentSchema:new e.Name("parentSchema")};function p(v,h,y){let{createErrors:b}=v.it;return b===!1?e._`{}`:d(v,h,y)}function d(v,h,y={}){let{gen:b,it:x}=v,w=[m(x,y),f(v,y)];return g(v,h,w),b.object(...w)}function m({errorPath:v},{instancePath:h}){let y=h?e.str`${v}${(0,r.getErrorPath)(h,r.Type.Str)}`:v;return[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,y)]}function f({keyword:v,it:{errSchemaPath:h}},{schemaPath:y,parentSchema:b}){let x=b?h:e.str`${h}/${v}`;return y&&(x=e.str`${x}${(0,r.getErrorPath)(y,r.Type.Str)}`),[u.schemaPath,x]}function g(v,{params:h,message:y},b){let{keyword:x,data:w,schemaValue:S,it:k}=v,{opts:E,propertyName:R,topSchemaRef:O,schemaPath:C}=k;b.push([u.keyword,x],[u.params,typeof h=="function"?h(v):h||e._`{}`]),E.messages&&b.push([u.message,typeof y=="function"?y(v):y]),E.verbose&&b.push([u.schema,S],[u.parentSchema,e._`${O}${C}`],[n.default.data,w]),R&&b.push([u.propertyName,R])}}),whe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=fy(),r=De(),n=Xi(),s={message:"boolean schema is false"};function i(c){let{gen:l,schema:u,validateName:p}=c;u===!1?o(c,!1):typeof u=="object"&&u.$async===!0?l.return(n.default.data):(l.assign(r._`${p}.errors`,null),l.return(!0))}t.topBoolOrEmptySchema=i;function a(c,l){let{gen:u,schema:p}=c;p===!1?(u.var(l,!1),o(c)):u.var(l,!0)}t.boolOrEmptySchema=a;function o(c,l){let{gen:u,data:p}=c,d={gen:u,keyword:"false schema",data:p,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,e.reportError)(d,s,void 0,l)}}),a8=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRules=t.isJSONType=void 0;var e=["string","number","integer","boolean","null","object","array"],r=new Set(e);function n(i){return typeof i=="string"&&r.has(i)}t.isJSONType=n;function s(){let i={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...i,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},i.number,i.string,i.array,i.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=s}),o8=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:s,self:i},a){let o=i.RULES.types[a];return o&&o!==!0&&r(s,o)}t.schemaHasRulesForType=e;function r(s,i){return i.rules.some(a=>n(s,a))}t.shouldUseGroup=r;function n(s,i){var a;return s[i.keyword]!==void 0||((a=i.definition.implements)===null||a===void 0?void 0:a.some(o=>s[o]!==void 0))}t.shouldUseRule=n}),Tv=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;var e=a8(),r=o8(),n=fy(),s=De(),i=rt(),a;(function(b){b[b.Correct=0]="Correct",b[b.Wrong=1]="Wrong"})(a||(t.DataType=a={}));function o(b){let x=c(b.type);if(x.includes("null")){if(b.nullable===!1)throw Error("type: null contradicts nullable: false")}else{if(!x.length&&b.nullable!==void 0)throw Error('"nullable" cannot be used without "type"');b.nullable===!0&&x.push("null")}return x}t.getSchemaTypes=o;function c(b){let x=Array.isArray(b)?b:b?[b]:[];if(x.every(e.isJSONType))return x;throw Error("type must be JSONType or JSONType[]: "+x.join(","))}t.getJSONTypes=c;function l(b,x){let{gen:w,data:S,opts:k}=b,E=p(x,k.coerceTypes),R=x.length>0&&!(E.length===0&&x.length===1&&(0,r.schemaHasRulesForType)(b,x[0]));if(R){let O=g(x,S,k.strictNumbers,a.Wrong);w.if(O,()=>{E.length?d(b,x,E):h(b)})}return R}t.coerceAndCheckDataType=l;var u=new Set(["string","number","integer","boolean","null"]);function p(b,x){return x?b.filter(w=>u.has(w)||x==="array"&&w==="array"):[]}function d(b,x,w){let{gen:S,data:k,opts:E}=b,R=S.let("dataType",s._`typeof ${k}`),O=S.let("coerced",s._`undefined`);E.coerceTypes==="array"&&S.if(s._`${R} == 'object' && Array.isArray(${k}) && ${k}.length == 1`,()=>S.assign(k,s._`${k}[0]`).assign(R,s._`typeof ${k}`).if(g(x,k,E.strictNumbers),()=>S.assign(O,k))),S.if(s._`${O} !== undefined`);for(let U of w)(u.has(U)||U==="array"&&E.coerceTypes==="array")&&C(U);S.else(),h(b),S.endIf(),S.if(s._`${O} !== undefined`,()=>{S.assign(k,O),m(b,O)});function C(U){switch(U){case"string":S.elseIf(s._`${R} == "number" || ${R} == "boolean"`).assign(O,s._`"" + ${k}`).elseIf(s._`${k} === null`).assign(O,s._`""`);return;case"number":S.elseIf(s._`${R} == "boolean" || ${k} === null - || (${R} == "string" && ${k} && ${k} == +${k})`).assign(O,s._`+${k}`);return;case"integer":S.elseIf(s._`${R} === "boolean" || ${k} === null - || (${R} === "string" && ${k} && ${k} == +${k} && !(${k} % 1))`).assign(O,s._`+${k}`);return;case"boolean":S.elseIf(s._`${k} === "false" || ${k} === 0 || ${k} === null`).assign(O,!1).elseIf(s._`${k} === "true" || ${k} === 1`).assign(O,!0);return;case"null":S.elseIf(s._`${k} === "" || ${k} === 0 || ${k} === false`),S.assign(O,null);return;case"array":S.elseIf(s._`${R} === "string" || ${R} === "number" - || ${R} === "boolean" || ${k} === null`).assign(O,s._`[${k}]`)}}}function m({gen:b,parentData:x,parentDataProperty:w},S){b.if(s._`${x} !== undefined`,()=>b.assign(s._`${x}[${w}]`,S))}function f(b,x,w,S=a.Correct){let k=S===a.Correct?s.operators.EQ:s.operators.NEQ,E;switch(b){case"null":return s._`${x} ${k} null`;case"array":E=s._`Array.isArray(${x})`;break;case"object":E=s._`${x} && typeof ${x} == "object" && !Array.isArray(${x})`;break;case"integer":E=R(s._`!(${x} % 1) && !isNaN(${x})`);break;case"number":E=R();break;default:return s._`typeof ${x} ${k} ${b}`}return S===a.Correct?E:(0,s.not)(E);function R(O=s.nil){return(0,s.and)(s._`typeof ${x} == "number"`,O,w?s._`isFinite(${x})`:s.nil)}}t.checkDataType=f;function g(b,x,w,S){if(b.length===1)return f(b[0],x,w,S);let k,E=(0,i.toHash)(b);if(E.array&&E.object){let R=s._`typeof ${x} != "object"`;k=E.null?R:s._`!${x} || ${R}`,delete E.null,delete E.array,delete E.object}else k=s.nil;E.number&&delete E.integer;for(let R in E)k=(0,s.and)(k,f(R,x,w,S));return k}t.checkDataTypes=g;var v={message:({schema:b})=>`must be ${b}`,params:({schema:b,schemaValue:x})=>typeof b=="string"?s._`{type: ${b}}`:s._`{type: ${x}}`};function h(b){let x=y(b);(0,n.reportError)(x,v)}t.reportTypeError=h;function y(b){let{gen:x,data:w,schema:S}=b,k=(0,i.schemaRefOrVal)(b,S,"type");return{gen:x,keyword:"type",data:w,schema:S.type,schemaCode:k,schemaValue:k,parentSchema:S,params:{},it:b}}}),She=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=De(),r=rt();function n(i,a){let{properties:o,items:c}=i.schema;if(a==="object"&&o)for(let l in o)s(i,l,o[l].default);else a==="array"&&Array.isArray(c)&&c.forEach((l,u)=>s(i,u,l.default))}t.assignDefaults=n;function s(i,a,o){let{gen:c,compositeRule:l,data:u,opts:p}=i;if(o===void 0)return;let d=e._`${u}${(0,e.getProperty)(a)}`;if(l){(0,r.checkStrictMode)(i,`default is ignored for: ${d}`);return}let m=e._`${d} === undefined`;p.useDefaults==="empty"&&(m=e._`${m} || ${d} === null || ${d} === ""`),c.if(m,e._`${d} = ${(0,e.stringify)(o)}`)}}),_s=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;var e=De(),r=rt(),n=Xi(),s=rt();function i(b,x){let{gen:w,data:S,it:k}=b;w.if(p(w,S,x,k.opts.ownProperties),()=>{b.setParams({missingProperty:e._`${x}`},!0),b.error()})}t.checkReportMissingProp=i;function a({gen:b,data:x,it:{opts:w}},S,k){return(0,e.or)(...S.map(E=>(0,e.and)(p(b,x,E,w.ownProperties),e._`${k} = ${E}`)))}t.checkMissingProp=a;function o(b,x){b.setParams({missingProperty:x},!0),b.error()}t.reportMissingProp=o;function c(b){return b.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:e._`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function l(b,x,w){return e._`${c(b)}.call(${x}, ${w})`}t.isOwnProperty=l;function u(b,x,w,S){let k=e._`${x}${(0,e.getProperty)(w)} !== undefined`;return S?e._`${k} && ${l(b,x,w)}`:k}t.propertyInData=u;function p(b,x,w,S){let k=e._`${x}${(0,e.getProperty)(w)} === undefined`;return S?(0,e.or)(k,(0,e.not)(l(b,x,w))):k}t.noPropertyInData=p;function d(b){return b?Object.keys(b).filter(x=>x!=="__proto__"):[]}t.allSchemaProperties=d;function m(b,x){return d(x).filter(w=>!(0,r.alwaysValidSchema)(b,x[w]))}t.schemaProperties=m;function f({schemaCode:b,data:x,it:{gen:w,topSchemaRef:S,schemaPath:k,errorPath:E},it:R},O,C,U){let q=U?e._`${b}, ${x}, ${S}${k}`:x,Z=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,E)],[n.default.parentData,R.parentData],[n.default.parentDataProperty,R.parentDataProperty],[n.default.rootData,n.default.rootData]];R.opts.dynamicRef&&Z.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);let se=e._`${q}, ${w.object(...Z)}`;return C!==e.nil?e._`${O}.call(${C}, ${se})`:e._`${O}(${se})`}t.callValidateCode=f;var g=e._`new RegExp`;function v({gen:b,it:{opts:x}},w){let S=x.unicodeRegExp?"u":"",{regExp:k}=x.code,E=k(w,S);return b.scopeValue("pattern",{key:E.toString(),ref:E,code:e._`${k.code==="new RegExp"?g:(0,s.useFunc)(b,k)}(${w}, ${S})`})}t.usePattern=v;function h(b){let{gen:x,data:w,keyword:S,it:k}=b,E=x.name("valid");if(k.allErrors){let O=x.let("valid",!0);return R(()=>x.assign(O,!1)),O}return x.var(E,!0),R(()=>x.break()),E;function R(O){let C=x.const("len",e._`${w}.length`);x.forRange("i",0,C,U=>{b.subschema({keyword:S,dataProp:U,dataPropType:r.Type.Num},E),x.if((0,e.not)(E),O)})}}t.validateArray=h;function y(b){let{gen:x,schema:w,keyword:S,it:k}=b;if(!Array.isArray(w))throw Error("ajv implementation error");if(w.some(O=>(0,r.alwaysValidSchema)(k,O))&&!k.opts.unevaluated)return;let E=x.let("valid",!1),R=x.name("_valid");x.block(()=>w.forEach((O,C)=>{let U=b.subschema({keyword:S,schemaProp:C,compositeRule:!0},R);x.assign(E,e._`${E} || ${R}`),!b.mergeValidEvaluated(U,R)&&x.if((0,e.not)(E))})),b.result(E,()=>b.reset(),()=>b.error(!0))}t.validateUnion=y}),khe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=De(),r=Xi(),n=_s(),s=fy();function i(m,f){let{gen:g,keyword:v,schema:h,parentSchema:y,it:b}=m,x=f.macro.call(b.self,h,y,b),w=u(g,v,x);b.opts.validateSchema!==!1&&b.self.validateSchema(x,!0);let S=g.name("valid");m.subschema({schema:x,schemaPath:e.nil,errSchemaPath:`${b.errSchemaPath}/${v}`,topSchemaRef:w,compositeRule:!0},S),m.pass(S,()=>m.error(!0))}t.macroKeywordCode=i;function a(m,f){var g;let{gen:v,keyword:h,schema:y,parentSchema:b,$data:x,it:w}=m;l(w,f);let S=!x&&f.compile?f.compile.call(w.self,y,b,w):f.validate,k=u(v,h,S),E=v.let("valid");m.block$data(E,R),m.ok((g=f.valid)!==null&&g!==void 0?g:E);function R(){if(f.errors===!1)U(),f.modifying&&o(m),q(()=>m.error());else{let Z=f.async?O():C();f.modifying&&o(m),q(()=>c(m,Z))}}function O(){let Z=v.let("ruleErrs",null);return v.try(()=>U(e._`await `),se=>v.assign(E,!1).if(e._`${se} instanceof ${w.ValidationError}`,()=>v.assign(Z,e._`${se}.errors`),()=>v.throw(se))),Z}function C(){let Z=e._`${k}.errors`;return v.assign(Z,null),U(e.nil),Z}function U(Z=f.async?e._`await `:e.nil){let se=w.opts.passContext?r.default.this:r.default.self,K=!("compile"in f&&!x||f.schema===!1);v.assign(E,e._`${Z}${(0,n.callValidateCode)(m,k,se,K)}`,f.modifying)}function q(Z){var se;v.if((0,e.not)((se=f.valid)!==null&&se!==void 0?se:E),Z)}}t.funcKeywordCode=a;function o(m){let{gen:f,data:g,it:v}=m;f.if(v.parentData,()=>f.assign(g,e._`${v.parentData}[${v.parentDataProperty}]`))}function c(m,f){let{gen:g}=m;g.if(e._`Array.isArray(${f})`,()=>{g.assign(r.default.vErrors,e._`${r.default.vErrors} === null ? ${f} : ${r.default.vErrors}.concat(${f})`).assign(r.default.errors,e._`${r.default.vErrors}.length`),(0,s.extendErrors)(m)},()=>m.error())}function l({schemaEnv:m},f){if(f.async&&!m.$async)throw Error("async keyword in sync schema")}function u(m,f,g){if(g===void 0)throw Error(`keyword "${f}" failed to compile`);return m.scopeValue("keyword",typeof g=="function"?{ref:g}:{ref:g,code:(0,e.stringify)(g)})}function p(m,f,g=!1){return!f.length||f.some(v=>v==="array"?Array.isArray(m):v==="object"?m&&typeof m=="object"&&!Array.isArray(m):typeof m==v||g&&typeof m>"u")}t.validSchemaType=p;function d({schema:m,opts:f,self:g,errSchemaPath:v},h,y){if(Array.isArray(h.keyword)?!h.keyword.includes(y):h.keyword!==y)throw Error("ajv implementation error");let b=h.dependencies;if(b?.some(x=>!Object.prototype.hasOwnProperty.call(m,x)))throw Error(`parent schema must have dependencies of ${y}: ${b.join(",")}`);if(h.validateSchema&&!h.validateSchema(m[y])){let x=`keyword "${y}" value is invalid at path "${v}": `+g.errorsText(h.validateSchema.errors);if(f.validateSchema==="log")g.logger.error(x);else throw Error(x)}}t.validateKeywordUsage=d}),Ehe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=De(),r=rt();function n(a,{keyword:o,schemaProp:c,schema:l,schemaPath:u,errSchemaPath:p,topSchemaRef:d}){if(o!==void 0&&l!==void 0)throw Error('both "keyword" and "schema" passed, only one allowed');if(o!==void 0){let m=a.schema[o];return c===void 0?{schema:m,schemaPath:e._`${a.schemaPath}${(0,e.getProperty)(o)}`,errSchemaPath:`${a.errSchemaPath}/${o}`}:{schema:m[c],schemaPath:e._`${a.schemaPath}${(0,e.getProperty)(o)}${(0,e.getProperty)(c)}`,errSchemaPath:`${a.errSchemaPath}/${o}/${(0,r.escapeFragment)(c)}`}}if(l!==void 0){if(u===void 0||p===void 0||d===void 0)throw Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:l,schemaPath:u,topSchemaRef:d,errSchemaPath:p}}throw Error('either "keyword" or "schema" must be passed')}t.getSubschema=n;function s(a,o,{dataProp:c,dataPropType:l,data:u,dataTypes:p,propertyName:d}){if(u!==void 0&&c!==void 0)throw Error('both "data" and "dataProp" passed, only one allowed');let{gen:m}=o;if(c!==void 0){let{errorPath:g,dataPathArr:v,opts:h}=o,y=m.let("data",e._`${o.data}${(0,e.getProperty)(c)}`,!0);f(y),a.errorPath=e.str`${g}${(0,r.getErrorPath)(c,l,h.jsPropertySyntax)}`,a.parentDataProperty=e._`${c}`,a.dataPathArr=[...v,a.parentDataProperty]}if(u!==void 0){let g=u instanceof e.Name?u:m.let("data",u,!0);f(g),d!==void 0&&(a.propertyName=d)}p&&(a.dataTypes=p);function f(g){a.data=g,a.dataLevel=o.dataLevel+1,a.dataTypes=[],o.definedProperties=new Set,a.parentData=o.data,a.dataNames=[...o.dataNames,g]}}t.extendSubschemaData=s;function i(a,{jtdDiscriminator:o,jtdMetadata:c,compositeRule:l,createErrors:u,allErrors:p}){l!==void 0&&(a.compositeRule=l),u!==void 0&&(a.createErrors=u),p!==void 0&&(a.allErrors=p),a.jtdDiscriminator=o,a.jtdMetadata=c}t.extendSubschemaMode=i}),c8=ne((t,e)=>{e.exports=function r(n,s){if(n===s)return!0;if(n&&s&&typeof n=="object"&&typeof s=="object"){if(n.constructor!==s.constructor)return!1;var i,a,o;if(Array.isArray(n)){if(i=n.length,i!=s.length)return!1;for(a=i;a--!==0;)if(!r(n[a],s[a]))return!1;return!0}if(n.constructor===RegExp)return n.source===s.source&&n.flags===s.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===s.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===s.toString();if(o=Object.keys(n),i=o.length,i!==Object.keys(s).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(s,o[a]))return!1;for(a=i;a--!==0;){var c=o[a];if(!r(n[c],s[c]))return!1}return!0}return n!==n&&s!==s}}),The=ne((t,e)=>{var r=e.exports=function(i,a,o){typeof a=="function"&&(o=a,a={}),o=a.cb||o;var c=typeof o=="function"?o:o.pre||function(){},l=o.post||function(){};n(a,c,l,i,"",i)};r.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},r.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},r.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},r.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function n(i,a,o,c,l,u,p,d,m,f){if(c&&typeof c=="object"&&!Array.isArray(c)){a(c,l,u,p,d,m,f);for(var g in c){var v=c[g];if(Array.isArray(v)){if(g in r.arrayKeywords)for(var h=0;h{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=rt(),r=c8(),n=The(),s=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function i(v,h=!0){return typeof v=="boolean"?!0:h===!0?!o(v):h?c(v)<=h:!1}t.inlineRef=i;var a=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function o(v){for(let h in v){if(a.has(h))return!0;let y=v[h];if(Array.isArray(y)&&y.some(o)||typeof y=="object"&&o(y))return!0}return!1}function c(v){let h=0;for(let y in v){if(y==="$ref")return 1/0;if(h++,!s.has(y)&&(typeof v[y]=="object"&&(0,e.eachItem)(v[y],b=>h+=c(b)),h===1/0))return 1/0}return h}function l(v,h="",y){y!==!1&&(h=d(h));let b=v.parse(h);return u(v,b)}t.getFullPath=l;function u(v,h){return v.serialize(h).split("#")[0]+"#"}t._getFullPath=u;var p=/#\/?$/;function d(v){return v?v.replace(p,""):""}t.normalizeId=d;function m(v,h,y){return y=d(y),v.resolve(h,y)}t.resolveUrl=m;var f=/^[a-z_][-a-z0-9._]*$/i;function g(v,h){if(typeof v=="boolean")return{};let{schemaId:y,uriResolver:b}=this.opts,x=d(v[y]||h),w={"":x},S=l(b,x,!1),k={},E=new Set;return n(v,{allKeys:!0},(C,U,q,Z)=>{if(Z===void 0)return;let se=S+U,K=w[Z];typeof C[y]=="string"&&(K=yt.call(this,C[y])),Cr.call(this,C.$anchor),Cr.call(this,C.$dynamicAnchor),w[U]=K;function yt(Fe){let V=this.opts.uriResolver.resolve;if(Fe=d(K?V(K,Fe):Fe),E.has(Fe))throw O(Fe);E.add(Fe);let A=this.refs[Fe];return typeof A=="string"&&(A=this.refs[A]),typeof A=="object"?R(C,A.schema,Fe):Fe!==d(se)&&(Fe[0]==="#"?(R(C,k[Fe],Fe),k[Fe]=C):this.refs[Fe]=se),Fe}function Cr(Fe){if(typeof Fe=="string"){if(!f.test(Fe))throw Error(`invalid anchor "${Fe}"`);yt.call(this,`#${Fe}`)}}}),k;function R(C,U,q){if(U!==void 0&&!r(C,U))throw O(q)}function O(C){return Error(`reference "${C}" resolves to more than one schema`)}}t.getSchemaRefs=g}),gy=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=whe(),r=Tv(),n=o8(),s=Tv(),i=She(),a=khe(),o=Ehe(),c=De(),l=Xi(),u=hy(),p=rt(),d=fy();function m(N){if(S(N)&&(E(N),w(N))){h(N);return}f(N,()=>(0,e.topBoolOrEmptySchema)(N))}t.validateFunctionCode=m;function f({gen:N,validateName:M,schema:W,schemaEnv:Y,opts:ge},Le){ge.code.es5?N.func(M,c._`${l.default.data}, ${l.default.valCxt}`,Y.$async,()=>{N.code(c._`"use strict"; ${b(W,ge)}`),v(N,ge),N.code(Le)}):N.func(M,c._`${l.default.data}, ${g(ge)}`,Y.$async,()=>N.code(b(W,ge)).code(Le))}function g(N){return c._`{${l.default.instancePath}="", ${l.default.parentData}, ${l.default.parentDataProperty}, ${l.default.rootData}=${l.default.data}${N.dynamicRef?c._`, ${l.default.dynamicAnchors}={}`:c.nil}}={}`}function v(N,M){N.if(l.default.valCxt,()=>{N.var(l.default.instancePath,c._`${l.default.valCxt}.${l.default.instancePath}`),N.var(l.default.parentData,c._`${l.default.valCxt}.${l.default.parentData}`),N.var(l.default.parentDataProperty,c._`${l.default.valCxt}.${l.default.parentDataProperty}`),N.var(l.default.rootData,c._`${l.default.valCxt}.${l.default.rootData}`),M.dynamicRef&&N.var(l.default.dynamicAnchors,c._`${l.default.valCxt}.${l.default.dynamicAnchors}`)},()=>{N.var(l.default.instancePath,c._`""`),N.var(l.default.parentData,c._`undefined`),N.var(l.default.parentDataProperty,c._`undefined`),N.var(l.default.rootData,l.default.data),M.dynamicRef&&N.var(l.default.dynamicAnchors,c._`{}`)})}function h(N){let{schema:M,opts:W,gen:Y}=N;f(N,()=>{W.$comment&&M.$comment&&Z(N),C(N),Y.let(l.default.vErrors,null),Y.let(l.default.errors,0),W.unevaluated&&y(N),R(N),se(N)})}function y(N){let{gen:M,validateName:W}=N;N.evaluated=M.const("evaluated",c._`${W}.evaluated`),M.if(c._`${N.evaluated}.dynamicProps`,()=>M.assign(c._`${N.evaluated}.props`,c._`undefined`)),M.if(c._`${N.evaluated}.dynamicItems`,()=>M.assign(c._`${N.evaluated}.items`,c._`undefined`))}function b(N,M){let W=typeof N=="object"&&N[M.schemaId];return W&&(M.code.source||M.code.process)?c._`/*# sourceURL=${W} */`:c.nil}function x(N,M){if(S(N)&&(E(N),w(N))){k(N,M);return}(0,e.boolOrEmptySchema)(N,M)}function w({schema:N,self:M}){if(typeof N=="boolean")return!N;for(let W in N)if(M.RULES.all[W])return!0;return!1}function S(N){return typeof N.schema!="boolean"}function k(N,M){let{schema:W,gen:Y,opts:ge}=N;ge.$comment&&W.$comment&&Z(N),U(N),q(N);let Le=Y.const("_errs",l.default.errors);R(N,Le),Y.var(M,c._`${Le} === ${l.default.errors}`)}function E(N){(0,p.checkUnknownRules)(N),O(N)}function R(N,M){if(N.opts.jtd)return yt(N,[],!1,M);let W=(0,r.getSchemaTypes)(N.schema),Y=(0,r.coerceAndCheckDataType)(N,W);yt(N,W,!Y,M)}function O(N){let{schema:M,errSchemaPath:W,opts:Y,self:ge}=N;M.$ref&&Y.ignoreKeywordsWithRef&&(0,p.schemaHasRulesButRef)(M,ge.RULES)&&ge.logger.warn(`$ref: keywords ignored in schema at path "${W}"`)}function C(N){let{schema:M,opts:W}=N;M.default!==void 0&&W.useDefaults&&W.strictSchema&&(0,p.checkStrictMode)(N,"default is ignored in the schema root")}function U(N){let M=N.schema[N.opts.schemaId];M&&(N.baseId=(0,u.resolveUrl)(N.opts.uriResolver,N.baseId,M))}function q(N){if(N.schema.$async&&!N.schemaEnv.$async)throw Error("async schema in sync schema")}function Z({gen:N,schemaEnv:M,schema:W,errSchemaPath:Y,opts:ge}){let Le=W.$comment;if(ge.$comment===!0)N.code(c._`${l.default.self}.logger.log(${Le})`);else if(typeof ge.$comment=="function"){let yr=c.str`${Y}/$comment`,Xn=N.scopeValue("root",{ref:M.root});N.code(c._`${l.default.self}.opts.$comment(${Le}, ${yr}, ${Xn}.schema)`)}}function se(N){let{gen:M,schemaEnv:W,validateName:Y,ValidationError:ge,opts:Le}=N;W.$async?M.if(c._`${l.default.errors} === 0`,()=>M.return(l.default.data),()=>M.throw(c._`new ${ge}(${l.default.vErrors})`)):(M.assign(c._`${Y}.errors`,l.default.vErrors),Le.unevaluated&&K(N),M.return(c._`${l.default.errors} === 0`))}function K({gen:N,evaluated:M,props:W,items:Y}){W instanceof c.Name&&N.assign(c._`${M}.props`,W),Y instanceof c.Name&&N.assign(c._`${M}.items`,Y)}function yt(N,M,W,Y){let{gen:ge,schema:Le,data:yr,allErrors:Xn,opts:tn,self:rn}=N,{RULES:br}=rn;if(Le.$ref&&(tn.ignoreKeywordsWithRef||!(0,p.schemaHasRulesButRef)(Le,br))){ge.block(()=>he(N,"$ref",br.all.$ref.definition));return}tn.jtd||Fe(N,M),ge.block(()=>{for(let On of br.rules)ko(On);ko(br.post)});function ko(On){(0,n.shouldUseGroup)(Le,On)&&(On.type?(ge.if((0,s.checkDataType)(On.type,yr,tn.strictNumbers)),Cr(N,On),M.length===1&&M[0]===On.type&&W&&(ge.else(),(0,s.reportTypeError)(N)),ge.endIf()):Cr(N,On),Xn||ge.if(c._`${l.default.errors} === ${Y||0}`))}}function Cr(N,M){let{gen:W,schema:Y,opts:{useDefaults:ge}}=N;ge&&(0,i.assignDefaults)(N,M.type),W.block(()=>{for(let Le of M.rules)(0,n.shouldUseRule)(Y,Le)&&he(N,Le.keyword,Le.definition,M.type)})}function Fe(N,M){N.schemaEnv.meta||!N.opts.strictTypes||(V(N,M),!N.opts.allowUnionTypes&&A(N,M),B(N,N.dataTypes))}function V(N,M){if(M.length){if(!N.dataTypes.length){N.dataTypes=M;return}M.forEach(W=>{T(N.dataTypes,W)||H(N,`type "${W}" not allowed by context "${N.dataTypes.join(",")}"`)}),I(N,M)}}function A(N,M){M.length>1&&!(M.length===2&&M.includes("null"))&&H(N,"use allowUnionTypes to allow union type keyword")}function B(N,M){let W=N.self.RULES.all;for(let Y in W){let ge=W[Y];if(typeof ge=="object"&&(0,n.shouldUseRule)(N.schema,ge)){let{type:Le}=ge.definition;Le.length&&!Le.some(yr=>z(M,yr))&&H(N,`missing type "${Le.join(",")}" for keyword "${Y}"`)}}}function z(N,M){return N.includes(M)||M==="number"&&N.includes("integer")}function T(N,M){return N.includes(M)||M==="integer"&&N.includes("number")}function I(N,M){let W=[];for(let Y of N.dataTypes)T(M,Y)?W.push(Y):M.includes("integer")&&Y==="number"&&W.push("integer");N.dataTypes=W}function H(N,M){let W=N.schemaEnv.baseId+N.errSchemaPath;M+=` at "${W}" (strictTypes)`,(0,p.checkStrictMode)(N,M,N.opts.strictTypes)}class pe{constructor(M,W,Y){if((0,a.validateKeywordUsage)(M,W,Y),this.gen=M.gen,this.allErrors=M.allErrors,this.keyword=Y,this.data=M.data,this.schema=M.schema[Y],this.$data=W.$data&&M.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,p.schemaRefOrVal)(M,this.schema,Y,this.$data),this.schemaType=W.schemaType,this.parentSchema=M.schema,this.params={},this.it=M,this.def=W,this.$data)this.schemaCode=M.gen.const("vSchema",Jt(this.$data,M));else if(this.schemaCode=this.schemaValue,!(0,a.validSchemaType)(this.schema,W.schemaType,W.allowUndefined))throw Error(`${Y} value must be ${JSON.stringify(W.schemaType)}`);("code"in W?W.trackErrors:W.errors!==!1)&&(this.errsCount=M.gen.const("_errs",l.default.errors))}result(M,W,Y){this.failResult((0,c.not)(M),W,Y)}failResult(M,W,Y){this.gen.if(M),Y?Y():this.error(),W?(this.gen.else(),W(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(M,W){this.failResult((0,c.not)(M),void 0,W)}fail(M){if(M===void 0){this.error(),!this.allErrors&&this.gen.if(!1);return}this.gen.if(M),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(M){if(!this.$data)return this.fail(M);let{schemaCode:W}=this;this.fail(c._`${W} !== undefined && (${(0,c.or)(this.invalid$data(),M)})`)}error(M,W,Y){if(W){this.setParams(W),this._error(M,Y),this.setParams({});return}this._error(M,Y)}_error(M,W){(M?d.reportExtraError:d.reportError)(this,this.def.error,W)}$dataError(){(0,d.reportError)(this,this.def.$dataError||d.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add "trackErrors" to keyword definition');(0,d.resetErrorsCount)(this.gen,this.errsCount)}ok(M){this.allErrors||this.gen.if(M)}setParams(M,W){W?Object.assign(this.params,M):this.params=M}block$data(M,W,Y=c.nil){this.gen.block(()=>{this.check$data(M,Y),W()})}check$data(M=c.nil,W=c.nil){if(!this.$data)return;let{gen:Y,schemaCode:ge,schemaType:Le,def:yr}=this;Y.if((0,c.or)(c._`${ge} === undefined`,W)),M!==c.nil&&Y.assign(M,!0),(Le.length||yr.validateSchema)&&(Y.elseIf(this.invalid$data()),this.$dataError(),M!==c.nil&&Y.assign(M,!1)),Y.else()}invalid$data(){let{gen:M,schemaCode:W,schemaType:Y,def:ge,it:Le}=this;return(0,c.or)(yr(),Xn());function yr(){if(Y.length){if(!(W instanceof c.Name))throw Error("ajv implementation error");let tn=Array.isArray(Y)?Y:[Y];return c._`${(0,s.checkDataTypes)(tn,W,Le.opts.strictNumbers,s.DataType.Wrong)}`}return c.nil}function Xn(){if(ge.validateSchema){let tn=M.scopeValue("validate$data",{ref:ge.validateSchema});return c._`!${tn}(${W})`}return c.nil}}subschema(M,W){let Y=(0,o.getSubschema)(this.it,M);(0,o.extendSubschemaData)(Y,this.it,M),(0,o.extendSubschemaMode)(Y,M);let ge={...this.it,...Y,items:void 0,props:void 0};return x(ge,W),ge}mergeEvaluated(M,W){let{it:Y,gen:ge}=this;Y.opts.unevaluated&&(Y.props!==!0&&M.props!==void 0&&(Y.props=p.mergeEvaluated.props(ge,M.props,Y.props,W)),Y.items!==!0&&M.items!==void 0&&(Y.items=p.mergeEvaluated.items(ge,M.items,Y.items,W)))}mergeValidEvaluated(M,W){let{it:Y,gen:ge}=this;if(Y.opts.unevaluated&&(Y.props!==!0||Y.items!==!0))return ge.if(W,()=>this.mergeEvaluated(M,c.Name)),!0}}t.KeywordCxt=pe;function he(N,M,W,Y){let ge=new pe(N,W,M);"code"in W?W.code(ge,Y):ge.$data&&W.validate?(0,a.funcKeywordCode)(ge,W):"macro"in W?(0,a.macroKeywordCode)(ge,W):(W.compile||W.validate)&&(0,a.funcKeywordCode)(ge,W)}var st=/^\/(?:[^~]|~0|~1)*$/,Ye=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Jt(N,{dataLevel:M,dataNames:W,dataPathArr:Y}){let ge,Le;if(N==="")return l.default.rootData;if(N[0]==="/"){if(!st.test(N))throw Error(`Invalid JSON-pointer: ${N}`);ge=N,Le=l.default.rootData}else{let rn=Ye.exec(N);if(!rn)throw Error(`Invalid JSON-pointer: ${N}`);let br=+rn[1];if(ge=rn[2],ge==="#"){if(br>=M)throw Error(tn("property/index",br));return Y[M-br]}if(br>M)throw Error(tn("data",br));if(Le=W[M-br],!ge)return Le}let yr=Le,Xn=ge.split("/");for(let rn of Xn)rn&&(Le=c._`${Le}${(0,c.getProperty)((0,p.unescapeJsonPointer)(rn))}`,yr=c._`${yr} && ${Le}`);return yr;function tn(rn,br){return`Cannot access ${rn} ${br} levels up, current level is ${M}`}}t.getData=Jt}),gT=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});class e extends Error{constructor(n){super("validation failed"),this.errors=n,this.ajv=this.validation=!0}}t.default=e}),vy=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=hy();class r extends Error{constructor(s,i,a,o){super(o||`can't resolve reference ${a} from id ${i}`),this.missingRef=(0,e.resolveUrl)(s,i,a),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(s,this.missingRef))}}t.default=r}),vT=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=De(),r=gT(),n=Xi(),s=hy(),i=rt(),a=gy();class o{constructor(y){var b;this.refs={},this.dynamicAnchors={};let x;typeof y.schema=="object"&&(x=y.schema),this.schema=y.schema,this.schemaId=y.schemaId,this.root=y.root||this,this.baseId=(b=y.baseId)!==null&&b!==void 0?b:(0,s.normalizeId)(x?.[y.schemaId||"$id"]),this.schemaPath=y.schemaPath,this.localRefs=y.localRefs,this.meta=y.meta,this.$async=x?.$async,this.refs={}}}t.SchemaEnv=o;function c(h){let y=p.call(this,h);if(y)return y;let b=(0,s.getFullPath)(this.opts.uriResolver,h.root.baseId),{es5:x,lines:w}=this.opts.code,{ownProperties:S}=this.opts,k=new e.CodeGen(this.scope,{es5:x,lines:w,ownProperties:S}),E;h.$async&&(E=k.scopeValue("Error",{ref:r.default,code:e._`require("ajv/dist/runtime/validation_error").default`}));let R=k.scopeName("validate");h.validateName=R;let O={gen:k,allErrors:this.opts.allErrors,data:n.default.data,parentData:n.default.parentData,parentDataProperty:n.default.parentDataProperty,dataNames:[n.default.data],dataPathArr:[e.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:k.scopeValue("schema",this.opts.code.source===!0?{ref:h.schema,code:(0,e.stringify)(h.schema)}:{ref:h.schema}),validateName:R,ValidationError:E,schema:h.schema,schemaEnv:h,rootId:b,baseId:h.baseId||b,schemaPath:e.nil,errSchemaPath:h.schemaPath||(this.opts.jtd?"":"#"),errorPath:e._`""`,opts:this.opts,self:this},C;try{this._compilations.add(h),(0,a.validateFunctionCode)(O),k.optimize(this.opts.code.optimize);let U=k.toString();C=`${k.scopeRefs(n.default.scope)}return ${U}`,this.opts.code.process&&(C=this.opts.code.process(C,h));let q=Function(`${n.default.self}`,`${n.default.scope}`,C)(this,this.scope.get());if(this.scope.value(R,{ref:q}),q.errors=null,q.schema=h.schema,q.schemaEnv=h,h.$async&&(q.$async=!0),this.opts.code.source===!0&&(q.source={validateName:R,validateCode:U,scopeValues:k._values}),this.opts.unevaluated){let{props:Z,items:se}=O;q.evaluated={props:Z instanceof e.Name?void 0:Z,items:se instanceof e.Name?void 0:se,dynamicProps:Z instanceof e.Name,dynamicItems:se instanceof e.Name},q.source&&(q.source.evaluated=(0,e.stringify)(q.evaluated))}return h.validate=q,h}catch(U){throw delete h.validate,delete h.validateName,C&&this.logger.error("Error compiling schema, function code:",C),U}finally{this._compilations.delete(h)}}t.compileSchema=c;function l(h,y,b){var x;b=(0,s.resolveUrl)(this.opts.uriResolver,y,b);let w=h.refs[b];if(w)return w;let S=m.call(this,h,b);if(S===void 0){let k=(x=h.localRefs)===null||x===void 0?void 0:x[b],{schemaId:E}=this.opts;k&&(S=new o({schema:k,schemaId:E,root:h,baseId:y}))}if(S!==void 0)return h.refs[b]=u.call(this,S)}t.resolveRef=l;function u(h){return(0,s.inlineRef)(h.schema,this.opts.inlineRefs)?h.schema:h.validate?h:c.call(this,h)}function p(h){for(let y of this._compilations)if(d(y,h))return y}t.getCompilingSchema=p;function d(h,y){return h.schema===y.schema&&h.root===y.root&&h.baseId===y.baseId}function m(h,y){let b;for(;typeof(b=this.refs[y])=="string";)y=b;return b||this.schemas[y]||f.call(this,h,y)}function f(h,y){let b=this.opts.uriResolver.parse(y),x=(0,s._getFullPath)(this.opts.uriResolver,b),w=(0,s.getFullPath)(this.opts.uriResolver,h.baseId,void 0);if(Object.keys(h.schema).length>0&&x===w)return v.call(this,b,h);let S=(0,s.normalizeId)(x),k=this.refs[S]||this.schemas[S];if(typeof k=="string"){let E=f.call(this,h,k);return typeof E?.schema!="object"?void 0:v.call(this,b,E)}if(typeof k?.schema=="object"){if(k.validate||c.call(this,k),S===(0,s.normalizeId)(y)){let{schema:E}=k,{schemaId:R}=this.opts,O=E[R];return O&&(w=(0,s.resolveUrl)(this.opts.uriResolver,w,O)),new o({schema:E,schemaId:R,root:h,baseId:w})}return v.call(this,b,k)}}t.resolveSchema=f;var g=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function v(h,{baseId:y,schema:b,root:x}){var w;if(((w=h.fragment)===null||w===void 0?void 0:w[0])!=="/")return;for(let E of h.fragment.slice(1).split("/")){if(typeof b=="boolean")return;let R=b[(0,i.unescapeFragment)(E)];if(R===void 0)return;b=R;let O=typeof b=="object"&&b[this.opts.schemaId];!g.has(E)&&O&&(y=(0,s.resolveUrl)(this.opts.uriResolver,y,O))}let S;if(typeof b!="boolean"&&b.$ref&&!(0,i.schemaHasRulesButRef)(b,this.RULES)){let E=(0,s.resolveUrl)(this.opts.uriResolver,y,b.$ref);S=f.call(this,x,E)}let{schemaId:k}=this.opts;if(S=S||new o({schema:b,schemaId:k,root:x,baseId:y}),S.schema!==S.root.schema)return S}}),Rhe=ne((t,e)=>{e.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),Phe=ne((t,e)=>{var r={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};e.exports={HEX:r}}),Ihe=ne((t,e)=>{var{HEX:r}=Phe(),n=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function s(h){if(l(h,".")<3)return{host:h,isIPV4:!1};let y=h.match(n)||[],[b]=y;return b?{host:c(b,"."),isIPV4:!0}:{host:h,isIPV4:!1}}function i(h,y=!1){let b="",x=!0;for(let w of h){if(r[w]===void 0)return;w!=="0"&&x===!0&&(x=!1),x||(b+=w)}return y&&b.length===0&&(b="0"),b}function a(h){let y=0,b={error:!1,address:"",zone:""},x=[],w=[],S=!1,k=!1,E=!1;function R(){if(w.length){if(S===!1){let O=i(w);if(O!==void 0)x.push(O);else return b.error=!0,!1}w.length=0}return!0}for(let O=0;O7){b.error=!0;break}O-1>=0&&h[O-1]===":"&&(k=!0);continue}else if(C==="%"){if(!R())break;S=!0}else{w.push(C);continue}}return w.length&&(S?b.zone=w.join(""):E?x.push(w.join("")):x.push(i(w))),b.address=x.join(""),b}function o(h){if(l(h,":")<2)return{host:h,isIPV6:!1};let y=a(h);if(y.error)return{host:h,isIPV6:!1};{let{address:b,address:x}=y;return y.zone&&(b+="%"+y.zone,x+="%25"+y.zone),{host:b,escapedHost:x,isIPV6:!0}}}function c(h,y){let b="",x=!0,w=h.length;for(let S=0;S{var r=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,n=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function s(x){return typeof x.secure=="boolean"?x.secure:String(x.scheme).toLowerCase()==="wss"}function i(x){return x.host||(x.error=x.error||"HTTP URIs must have a host."),x}function a(x){let w=String(x.scheme).toLowerCase()==="https";return(x.port===(w?443:80)||x.port==="")&&(x.port=void 0),x.path||(x.path="/"),x}function o(x){return x.secure=s(x),x.resourceName=(x.path||"/")+(x.query?"?"+x.query:""),x.path=void 0,x.query=void 0,x}function c(x){if((x.port===(s(x)?443:80)||x.port==="")&&(x.port=void 0),typeof x.secure=="boolean"&&(x.scheme=x.secure?"wss":"ws",x.secure=void 0),x.resourceName){let[w,S]=x.resourceName.split("?");x.path=w&&w!=="/"?w:void 0,x.query=S,x.resourceName=void 0}return x.fragment=void 0,x}function l(x,w){if(!x.path)return x.error="URN can not be parsed",x;let S=x.path.match(n);if(S){let k=w.scheme||x.scheme||"urn";x.nid=S[1].toLowerCase(),x.nss=S[2];let E=`${k}:${w.nid||x.nid}`,R=b[E];x.path=void 0,R&&(x=R.parse(x,w))}else x.error=x.error||"URN can not be parsed.";return x}function u(x,w){let S=w.scheme||x.scheme||"urn",k=x.nid.toLowerCase(),E=`${S}:${w.nid||k}`,R=b[E];R&&(x=R.serialize(x,w));let O=x,C=x.nss;return O.path=`${k||w.nid}:${C}`,w.skipEscape=!0,O}function p(x,w){let S=x;return S.uuid=S.nss,S.nss=void 0,!w.tolerant&&(!S.uuid||!r.test(S.uuid))&&(S.error=S.error||"UUID is not valid."),S}function d(x){let w=x;return w.nss=(x.uuid||"").toLowerCase(),w}var m={scheme:"http",domainHost:!0,parse:i,serialize:a},f={scheme:"https",domainHost:m.domainHost,parse:i,serialize:a},g={scheme:"ws",domainHost:!0,parse:o,serialize:c},v={scheme:"wss",domainHost:g.domainHost,parse:g.parse,serialize:g.serialize},h={scheme:"urn",parse:l,serialize:u,skipNormalize:!0},y={scheme:"urn:uuid",parse:p,serialize:d,skipNormalize:!0},b={http:m,https:f,ws:g,wss:v,urn:h,"urn:uuid":y};e.exports=b}),Ohe=ne((t,e)=>{var{normalizeIPv6:r,normalizeIPv4:n,removeDotSegments:s,recomposeAuthority:i,normalizeComponentEncoding:a}=Ihe(),o=Che();function c(y,b){return typeof y=="string"?y=d(v(y,b),b):typeof y=="object"&&(y=v(d(y,b),b)),y}function l(y,b,x){let w=Object.assign({scheme:"null"},x),S=u(v(y,w),v(b,w),w,!0);return d(S,{...w,skipEscape:!0})}function u(y,b,x,w){let S={};return w||(y=v(d(y,x),x),b=v(d(b,x),x)),x=x||{},!x.tolerant&&b.scheme?(S.scheme=b.scheme,S.userinfo=b.userinfo,S.host=b.host,S.port=b.port,S.path=s(b.path||""),S.query=b.query):(b.userinfo!==void 0||b.host!==void 0||b.port!==void 0?(S.userinfo=b.userinfo,S.host=b.host,S.port=b.port,S.path=s(b.path||""),S.query=b.query):(b.path?(b.path.charAt(0)==="/"?S.path=s(b.path):((y.userinfo!==void 0||y.host!==void 0||y.port!==void 0)&&!y.path?S.path="/"+b.path:y.path?S.path=y.path.slice(0,y.path.lastIndexOf("/")+1)+b.path:S.path=b.path,S.path=s(S.path)),S.query=b.query):(S.path=y.path,b.query!==void 0?S.query=b.query:S.query=y.query),S.userinfo=y.userinfo,S.host=y.host,S.port=y.port),S.scheme=y.scheme),S.fragment=b.fragment,S}function p(y,b,x){return typeof y=="string"?(y=unescape(y),y=d(a(v(y,x),!0),{...x,skipEscape:!0})):typeof y=="object"&&(y=d(a(y,!0),{...x,skipEscape:!0})),typeof b=="string"?(b=unescape(b),b=d(a(v(b,x),!0),{...x,skipEscape:!0})):typeof b=="object"&&(b=d(a(b,!0),{...x,skipEscape:!0})),y.toLowerCase()===b.toLowerCase()}function d(y,b){let x={host:y.host,scheme:y.scheme,userinfo:y.userinfo,port:y.port,path:y.path,query:y.query,nid:y.nid,nss:y.nss,uuid:y.uuid,fragment:y.fragment,reference:y.reference,resourceName:y.resourceName,secure:y.secure,error:""},w=Object.assign({},b),S=[],k=o[(w.scheme||x.scheme||"").toLowerCase()];k&&k.serialize&&k.serialize(x,w),x.path!==void 0&&(w.skipEscape?x.path=unescape(x.path):(x.path=escape(x.path),x.scheme!==void 0&&(x.path=x.path.split("%3A").join(":")))),w.reference!=="suffix"&&x.scheme&&S.push(x.scheme,":");let E=i(x);if(E!==void 0&&(w.reference!=="suffix"&&S.push("//"),S.push(E),x.path&&x.path.charAt(0)!=="/"&&S.push("/")),x.path!==void 0){let R=x.path;!w.absolutePath&&(!k||!k.absolutePath)&&(R=s(R)),E===void 0&&(R=R.replace(/^\/\//u,"/%2F")),S.push(R)}return x.query!==void 0&&S.push("?",x.query),x.fragment!==void 0&&S.push("#",x.fragment),S.join("")}var m=Array.from({length:127},(y,b)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(b)));function f(y){let b=0;for(let x=0,w=y.length;x126||m[b])return!0;return!1}var g=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function v(y,b){let x=Object.assign({},b),w={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},S=y.indexOf("%")!==-1,k=!1;x.reference==="suffix"&&(y=(x.scheme?x.scheme+":":"")+"//"+y);let E=y.match(g);if(E){if(w.scheme=E[1],w.userinfo=E[3],w.host=E[4],w.port=parseInt(E[5],10),w.path=E[6]||"",w.query=E[7],w.fragment=E[8],isNaN(w.port)&&(w.port=E[5]),w.host){let O=n(w.host);if(O.isIPV4===!1){let C=r(O.host);w.host=C.host.toLowerCase(),k=C.isIPV6}else w.host=O.host,k=!0}w.scheme===void 0&&w.userinfo===void 0&&w.host===void 0&&w.port===void 0&&w.query===void 0&&!w.path?w.reference="same-document":w.scheme===void 0?w.reference="relative":w.fragment===void 0?w.reference="absolute":w.reference="uri",x.reference&&x.reference!=="suffix"&&x.reference!==w.reference&&(w.error=w.error||"URI is not a "+x.reference+" reference.");let R=o[(x.scheme||w.scheme||"").toLowerCase()];if(!x.unicodeSupport&&(!R||!R.unicodeSupport)&&w.host&&(x.domainHost||R&&R.domainHost)&&k===!1&&f(w.host))try{w.host=URL.domainToASCII(w.host.toLowerCase())}catch(O){w.error=w.error||"Host's domain name can not be converted to ASCII: "+O}(!R||R&&!R.skipNormalize)&&(S&&w.scheme!==void 0&&(w.scheme=unescape(w.scheme)),S&&w.host!==void 0&&(w.host=unescape(w.host)),w.path&&(w.path=escape(unescape(w.path))),w.fragment&&(w.fragment=encodeURI(decodeURIComponent(w.fragment)))),R&&R.parse&&R.parse(w,x)}else w.error=w.error||"URI can not be parsed.";return w}var h={SCHEMES:o,normalize:c,resolve:l,resolveComponents:u,equal:p,serialize:d,parse:v};e.exports=h,e.exports.default=h,e.exports.fastUri=h}),Ahe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ohe();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),jhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=gy();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=De();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});var n=gT(),s=vy(),i=a8(),a=vT(),o=De(),c=hy(),l=Tv(),u=rt(),p=Rhe(),d=Ahe(),m=(V,A)=>new RegExp(V,A);m.code="new RegExp";var f=["removeAdditional","useDefaults","coerceTypes"],g=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),v={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},h={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},y=200;function b(V){var A,B,z,T,I,H,pe,he,st,Ye,Jt,N,M,W,Y,ge,Le,yr,Xn,tn,rn,br,ko,On,sx;let ql=V.strict,ix=(A=V.code)===null||A===void 0?void 0:A.optimize,RP=ix===!0||ix===void 0?1:ix||0,PP=(z=(B=V.code)===null||B===void 0?void 0:B.regExp)!==null&&z!==void 0?z:m,QG=(T=V.uriResolver)!==null&&T!==void 0?T:d.default;return{strictSchema:(H=(I=V.strictSchema)!==null&&I!==void 0?I:ql)!==null&&H!==void 0?H:!0,strictNumbers:(he=(pe=V.strictNumbers)!==null&&pe!==void 0?pe:ql)!==null&&he!==void 0?he:!0,strictTypes:(Ye=(st=V.strictTypes)!==null&&st!==void 0?st:ql)!==null&&Ye!==void 0?Ye:"log",strictTuples:(N=(Jt=V.strictTuples)!==null&&Jt!==void 0?Jt:ql)!==null&&N!==void 0?N:"log",strictRequired:(W=(M=V.strictRequired)!==null&&M!==void 0?M:ql)!==null&&W!==void 0?W:!1,code:V.code?{...V.code,optimize:RP,regExp:PP}:{optimize:RP,regExp:PP},loopRequired:(Y=V.loopRequired)!==null&&Y!==void 0?Y:y,loopEnum:(ge=V.loopEnum)!==null&&ge!==void 0?ge:y,meta:(Le=V.meta)!==null&&Le!==void 0?Le:!0,messages:(yr=V.messages)!==null&&yr!==void 0?yr:!0,inlineRefs:(Xn=V.inlineRefs)!==null&&Xn!==void 0?Xn:!0,schemaId:(tn=V.schemaId)!==null&&tn!==void 0?tn:"$id",addUsedSchema:(rn=V.addUsedSchema)!==null&&rn!==void 0?rn:!0,validateSchema:(br=V.validateSchema)!==null&&br!==void 0?br:!0,validateFormats:(ko=V.validateFormats)!==null&&ko!==void 0?ko:!0,unicodeRegExp:(On=V.unicodeRegExp)!==null&&On!==void 0?On:!0,int32range:(sx=V.int32range)!==null&&sx!==void 0?sx:!0,uriResolver:QG}}class x{constructor(A={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,A=this.opts={...A,...b(A)};let{es5:B,lines:z}=this.opts.code;this.scope=new o.ValueScope({scope:{},prefixes:g,es5:B,lines:z}),this.logger=U(A.logger);let T=A.validateFormats;A.validateFormats=!1,this.RULES=(0,i.getRules)(),w.call(this,v,A,"NOT SUPPORTED"),w.call(this,h,A,"DEPRECATED","warn"),this._metaOpts=O.call(this),A.formats&&E.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),A.keywords&&R.call(this,A.keywords),typeof A.meta=="object"&&this.addMetaSchema(A.meta),k.call(this),A.validateFormats=T}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:A,meta:B,schemaId:z}=this.opts,T=p;z==="id"&&(T={...p},T.id=T.$id,delete T.$id),B&&A&&this.addMetaSchema(T,T[z],!1)}defaultMeta(){let{meta:A,schemaId:B}=this.opts;return this.opts.defaultMeta=typeof A=="object"?A[B]||A:void 0}validate(A,B){let z;if(typeof A=="string"){if(z=this.getSchema(A),!z)throw Error(`no schema with key or ref "${A}"`)}else z=this.compile(A);let T=z(B);return"$async"in z||(this.errors=z.errors),T}compile(A,B){let z=this._addSchema(A,B);return z.validate||this._compileSchemaEnv(z)}compileAsync(A,B){if(typeof this.opts.loadSchema!="function")throw Error("options.loadSchema should be a function");let{loadSchema:z}=this.opts;return T.call(this,A,B);async function T(Ye,Jt){await I.call(this,Ye.$schema);let N=this._addSchema(Ye,Jt);return N.validate||H.call(this,N)}async function I(Ye){Ye&&!this.getSchema(Ye)&&await T.call(this,{$ref:Ye},!0)}async function H(Ye){try{return this._compileSchemaEnv(Ye)}catch(Jt){if(!(Jt instanceof s.default))throw Jt;return pe.call(this,Jt),await he.call(this,Jt.missingSchema),H.call(this,Ye)}}function pe({missingSchema:Ye,missingRef:Jt}){if(this.refs[Ye])throw Error(`AnySchema ${Ye} is loaded but ${Jt} cannot be resolved`)}async function he(Ye){let Jt=await st.call(this,Ye);this.refs[Ye]||await I.call(this,Jt.$schema),this.refs[Ye]||this.addSchema(Jt,Ye,B)}async function st(Ye){let Jt=this._loading[Ye];if(Jt)return Jt;try{return await(this._loading[Ye]=z(Ye))}finally{delete this._loading[Ye]}}}addSchema(A,B,z,T=this.opts.validateSchema){if(Array.isArray(A)){for(let H of A)this.addSchema(H,void 0,z,T);return this}let I;if(typeof A=="object"){let{schemaId:H}=this.opts;if(I=A[H],I!==void 0&&typeof I!="string")throw Error(`schema ${H} must be string`)}return B=(0,c.normalizeId)(B||I),this._checkUnique(B),this.schemas[B]=this._addSchema(A,z,B,T,!0),this}addMetaSchema(A,B,z=this.opts.validateSchema){return this.addSchema(A,B,!0,z),this}validateSchema(A,B){if(typeof A=="boolean")return!0;let z;if(z=A.$schema,z!==void 0&&typeof z!="string")throw Error("$schema must be a string");if(z=z||this.opts.defaultMeta||this.defaultMeta(),!z)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let T=this.validate(z,A);if(!T&&B){let I="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(I);else throw Error(I)}return T}getSchema(A){let B;for(;typeof(B=S.call(this,A))=="string";)A=B;if(B===void 0){let{schemaId:z}=this.opts,T=new a.SchemaEnv({schema:{},schemaId:z});if(B=a.resolveSchema.call(this,T,A),!B)return;this.refs[A]=B}return B.validate||this._compileSchemaEnv(B)}removeSchema(A){if(A instanceof RegExp)return this._removeAllSchemas(this.schemas,A),this._removeAllSchemas(this.refs,A),this;switch(typeof A){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let B=S.call(this,A);return typeof B=="object"&&this._cache.delete(B.schema),delete this.schemas[A],delete this.refs[A],this}case"object":{let B=A;this._cache.delete(B);let z=A[this.opts.schemaId];return z&&(z=(0,c.normalizeId)(z),delete this.schemas[z],delete this.refs[z]),this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary(A){for(let B of A)this.addKeyword(B);return this}addKeyword(A,B){let z;if(typeof A=="string")z=A,typeof B=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),B.keyword=z);else if(typeof A=="object"&&B===void 0){if(B=A,z=B.keyword,Array.isArray(z)&&!z.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(Z.call(this,z,B),!B)return(0,u.eachItem)(z,I=>se.call(this,I)),this;yt.call(this,B);let T={...B,type:(0,l.getJSONTypes)(B.type),schemaType:(0,l.getJSONTypes)(B.schemaType)};return(0,u.eachItem)(z,T.type.length===0?I=>se.call(this,I,T):I=>T.type.forEach(H=>se.call(this,I,T,H))),this}getKeyword(A){let B=this.RULES.all[A];return typeof B=="object"?B.definition:!!B}removeKeyword(A){let{RULES:B}=this;delete B.keywords[A],delete B.all[A];for(let z of B.rules){let T=z.rules.findIndex(I=>I.keyword===A);T>=0&&z.rules.splice(T,1)}return this}addFormat(A,B){return typeof B=="string"&&(B=new RegExp(B)),this.formats[A]=B,this}errorsText(A=this.errors,{separator:B=", ",dataVar:z="data"}={}){return!A||A.length===0?"No errors":A.map(T=>`${z}${T.instancePath} ${T.message}`).reduce((T,I)=>T+B+I)}$dataMetaSchema(A,B){let z=this.RULES.all;A=JSON.parse(JSON.stringify(A));for(let T of B){let I=T.split("/").slice(1),H=A;for(let pe of I)H=H[pe];for(let pe in z){let he=z[pe];if(typeof he!="object")continue;let{$data:st}=he.definition,Ye=H[pe];st&&Ye&&(H[pe]=Fe(Ye))}}return A}_removeAllSchemas(A,B){for(let z in A){let T=A[z];(!B||B.test(z))&&(typeof T=="string"?delete A[z]:T&&!T.meta&&(this._cache.delete(T.schema),delete A[z]))}}_addSchema(A,B,z,T=this.opts.validateSchema,I=this.opts.addUsedSchema){let H,{schemaId:pe}=this.opts;if(typeof A=="object")H=A[pe];else{if(this.opts.jtd)throw Error("schema must be object");if(typeof A!="boolean")throw Error("schema must be object or boolean")}let he=this._cache.get(A);if(he!==void 0)return he;z=(0,c.normalizeId)(H||z);let st=c.getSchemaRefs.call(this,A,z);return he=new a.SchemaEnv({schema:A,schemaId:pe,meta:B,baseId:z,localRefs:st}),this._cache.set(he.schema,he),I&&!z.startsWith("#")&&(z&&this._checkUnique(z),this.refs[z]=he),T&&this.validateSchema(A,!0),he}_checkUnique(A){if(this.schemas[A]||this.refs[A])throw Error(`schema with key or id "${A}" already exists`)}_compileSchemaEnv(A){if(A.meta?this._compileMetaSchema(A):a.compileSchema.call(this,A),!A.validate)throw Error("ajv implementation error");return A.validate}_compileMetaSchema(A){let B=this.opts;this.opts=this._metaOpts;try{a.compileSchema.call(this,A)}finally{this.opts=B}}}x.ValidationError=n.default,x.MissingRefError=s.default,t.default=x;function w(V,A,B,z="error"){for(let T in V){let I=T;I in A&&this.logger[z](`${B}: option ${T}. ${V[I]}`)}}function S(V){return V=(0,c.normalizeId)(V),this.schemas[V]||this.refs[V]}function k(){let V=this.opts.schemas;if(V)if(Array.isArray(V))this.addSchema(V);else for(let A in V)this.addSchema(V[A],A)}function E(){for(let V in this.opts.formats){let A=this.opts.formats[V];A&&this.addFormat(V,A)}}function R(V){if(Array.isArray(V)){this.addVocabulary(V);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let A in V){let B=V[A];B.keyword||(B.keyword=A),this.addKeyword(B)}}function O(){let V={...this.opts};for(let A of f)delete V[A];return V}var C={log(){},warn(){},error(){}};function U(V){if(V===!1)return C;if(V===void 0)return console;if(V.log&&V.warn&&V.error)return V;throw Error("logger must implement log, warn and error methods")}var q=/^[a-z_$][a-z0-9_$:-]*$/i;function Z(V,A){let{RULES:B}=this;if((0,u.eachItem)(V,z=>{if(B.keywords[z])throw Error(`Keyword ${z} is already defined`);if(!q.test(z))throw Error(`Keyword ${z} has invalid name`)}),!!A&&A.$data&&!("code"in A||"validate"in A))throw Error('$data keyword must have "code" or "validate" function')}function se(V,A,B){var z;let T=A?.post;if(B&&T)throw Error('keyword with "post" flag cannot have "type"');let{RULES:I}=this,H=T?I.post:I.rules.find(({type:he})=>he===B);if(H||(H={type:B,rules:[]},I.rules.push(H)),I.keywords[V]=!0,!A)return;let pe={keyword:V,definition:{...A,type:(0,l.getJSONTypes)(A.type),schemaType:(0,l.getJSONTypes)(A.schemaType)}};A.before?K.call(this,H,pe,A.before):H.rules.push(pe),I.all[V]=pe,(z=A.implements)===null||z===void 0||z.forEach(he=>this.addKeyword(he))}function K(V,A,B){let z=V.rules.findIndex(T=>T.keyword===B);z>=0?V.rules.splice(z,0,A):(V.rules.push(A),this.logger.warn(`rule ${B} is not defined`))}function yt(V){let{metaSchema:A}=V;A!==void 0&&(V.$data&&this.opts.$data&&(A=Fe(A)),V.validateSchema=this.compile(A,!0))}var Cr={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Fe(V){return{anyOf:[V,Cr]}}}),Nhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e={keyword:"id",code(){throw Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=e}),Dhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=vy(),r=_s(),n=De(),s=Xi(),i=vT(),a=rt(),o={keyword:"$ref",schemaType:"string",code(u){let{gen:p,schema:d,it:m}=u,{baseId:f,schemaEnv:g,validateName:v,opts:h,self:y}=m,{root:b}=g;if((d==="#"||d==="#/")&&f===b.baseId)return w();let x=i.resolveRef.call(y,b,f,d);if(x===void 0)throw new e.default(m.opts.uriResolver,f,d);if(x instanceof i.SchemaEnv)return S(x);return k(x);function w(){if(g===b)return l(u,v,g,g.$async);let E=p.scopeValue("root",{ref:b});return l(u,n._`${E}.validate`,b,b.$async)}function S(E){let R=c(u,E);l(u,R,E,E.$async)}function k(E){let R=p.scopeValue("schema",h.code.source===!0?{ref:E,code:(0,n.stringify)(E)}:{ref:E}),O=p.name("valid"),C=u.subschema({schema:E,dataTypes:[],schemaPath:n.nil,topSchemaRef:R,errSchemaPath:d},O);u.mergeEvaluated(C),u.ok(O)}}};function c(u,p){let{gen:d}=u;return p.validate?d.scopeValue("validate",{ref:p.validate}):n._`${d.scopeValue("wrapper",{ref:p})}.validate`}t.getValidate=c;function l(u,p,d,m){let{gen:f,it:g}=u,{allErrors:v,schemaEnv:h,opts:y}=g,b=y.passContext?s.default.this:n.nil;m?x():w();function x(){if(!h.$async)throw Error("async schema referenced by sync schema");let E=f.let("valid");f.try(()=>{f.code(n._`await ${(0,r.callValidateCode)(u,p,b)}`),k(p),!v&&f.assign(E,!0)},R=>{f.if(n._`!(${R} instanceof ${g.ValidationError})`,()=>f.throw(R)),S(R),!v&&f.assign(E,!1)}),u.ok(E)}function w(){u.result((0,r.callValidateCode)(u,p,b),()=>k(p),()=>S(p))}function S(E){let R=n._`${E}.errors`;f.assign(s.default.vErrors,n._`${s.default.vErrors} === null ? ${R} : ${s.default.vErrors}.concat(${R})`),f.assign(s.default.errors,n._`${s.default.vErrors}.length`)}function k(E){var R;if(!g.opts.unevaluated)return;let O=(R=d?.validate)===null||R===void 0?void 0:R.evaluated;if(g.props!==!0)if(O&&!O.dynamicProps)O.props!==void 0&&(g.props=a.mergeEvaluated.props(f,O.props,g.props));else{let C=f.var("props",n._`${E}.evaluated.props`);g.props=a.mergeEvaluated.props(f,C,g.props,n.Name)}if(g.items!==!0)if(O&&!O.dynamicItems)O.items!==void 0&&(g.items=a.mergeEvaluated.items(f,O.items,g.items));else{let C=f.var("items",n._`${E}.evaluated.items`);g.items=a.mergeEvaluated.items(f,C,g.items,n.Name)}}}t.callRef=l,t.default=o}),Mhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Nhe(),r=Dhe(),n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=n}),zhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=e.operators,n={maximum:{okStr:"<=",ok:r.LTE,fail:r.GT},minimum:{okStr:">=",ok:r.GTE,fail:r.LT},exclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},exclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},s={message:({keyword:a,schemaCode:o})=>e.str`must be ${n[a].okStr} ${o}`,params:({keyword:a,schemaCode:o})=>e._`{comparison: ${n[a].okStr}, limit: ${o}}`},i={keyword:Object.keys(n),type:"number",schemaType:"number",$data:!0,error:s,code(a){let{keyword:o,data:c,schemaCode:l}=a;a.fail$data(e._`${c} ${n[o].fail} ${l} || isNaN(${c})`)}};t.default=i}),$he=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message:({schemaCode:s})=>e.str`must be multiple of ${s}`,params:({schemaCode:s})=>e._`{multipleOf: ${s}}`},n={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:r,code(s){let{gen:i,data:a,schemaCode:o,it:c}=s,l=c.opts.multipleOfPrecision,u=i.let("res"),p=l?e._`Math.abs(Math.round(${u}) - ${u}) > 1e-${l}`:e._`${u} !== parseInt(${u})`;s.fail$data(e._`(${o} === 0 || (${u} = ${a}/${o}, ${p}))`)}};t.default=n}),Lhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let n=r.length,s=0,i=0,a;for(;i=55296&&a<=56319&&i{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=Lhe(),s={message({keyword:a,schemaCode:o}){let c=a==="maxLength"?"more":"fewer";return e.str`must NOT have ${c} than ${o} characters`},params:({schemaCode:a})=>e._`{limit: ${a}}`},i={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:s,code(a){let{keyword:o,data:c,schemaCode:l,it:u}=a,p=o==="maxLength"?e.operators.GT:e.operators.LT,d=u.opts.unicode===!1?e._`${c}.length`:e._`${(0,r.useFunc)(a.gen,n.default)}(${c})`;a.fail$data(e._`${d} ${p} ${l}`)}};t.default=i}),qhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=_s(),r=rt(),n=De(),s={message:({schemaCode:a})=>n.str`must match pattern "${a}"`,params:({schemaCode:a})=>n._`{pattern: ${a}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:s,code(a){let{gen:o,data:c,$data:l,schema:u,schemaCode:p,it:d}=a,m=d.opts.unicodeRegExp?"u":"";if(l){let{regExp:f}=d.opts.code,g=f.code==="new RegExp"?n._`new RegExp`:(0,r.useFunc)(o,f),v=o.let("valid");o.try(()=>o.assign(v,n._`${g}(${p}, ${m}).test(${c})`),()=>o.assign(v,!1)),a.fail$data(n._`!${v}`)}else{let f=(0,e.usePattern)(a,u);a.fail$data(n._`!${f}.test(${c})`)}}};t.default=i}),Fhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message({keyword:s,schemaCode:i}){let a=s==="maxProperties"?"more":"fewer";return e.str`must NOT have ${a} than ${i} properties`},params:({schemaCode:s})=>e._`{limit: ${s}}`},n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(s){let{keyword:i,data:a,schemaCode:o}=s,c=i==="maxProperties"?e.operators.GT:e.operators.LT;s.fail$data(e._`Object.keys(${a}).length ${c} ${o}`)}};t.default=n}),Hhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=_s(),r=De(),n=rt(),s={message:({params:{missingProperty:a}})=>r.str`must have required property '${a}'`,params:({params:{missingProperty:a}})=>r._`{missingProperty: ${a}}`},i={keyword:"required",type:"object",schemaType:"array",$data:!0,error:s,code(a){let{gen:o,schema:c,schemaCode:l,data:u,$data:p,it:d}=a,{opts:m}=d;if(!p&&c.length===0)return;let f=c.length>=m.loopRequired;if(d.allErrors?g():v(),m.strictRequired){let b=a.parentSchema.properties,{definedProperties:x}=a.it;for(let w of c)if(b?.[w]===void 0&&!x.has(w)){let S=d.schemaEnv.baseId+d.errSchemaPath,k=`required property "${w}" is not defined at "${S}" (strictRequired)`;(0,n.checkStrictMode)(d,k,d.opts.strictRequired)}}function g(){if(f||p)a.block$data(r.nil,h);else for(let b of c)(0,e.checkReportMissingProp)(a,b)}function v(){let b=o.let("missing");if(f||p){let x=o.let("valid",!0);a.block$data(x,()=>y(b,x)),a.ok(x)}else o.if((0,e.checkMissingProp)(a,c,b)),(0,e.reportMissingProp)(a,b),o.else()}function h(){o.forOf("prop",l,b=>{a.setParams({missingProperty:b}),o.if((0,e.noPropertyInData)(o,u,b,m.ownProperties),()=>a.error())})}function y(b,x){a.setParams({missingProperty:b}),o.forOf(b,l,()=>{o.assign(x,(0,e.propertyInData)(o,u,b,m.ownProperties)),o.if((0,r.not)(x),()=>{a.error(),o.break()})},r.nil)}}};t.default=i}),Bhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message({keyword:s,schemaCode:i}){let a=s==="maxItems"?"more":"fewer";return e.str`must NOT have ${a} than ${i} items`},params:({schemaCode:s})=>e._`{limit: ${s}}`},n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(s){let{keyword:i,data:a,schemaCode:o}=s,c=i==="maxItems"?e.operators.GT:e.operators.LT;s.fail$data(e._`${a}.length ${c} ${o}`)}};t.default=n}),yT=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=c8();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),Whe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Tv(),r=De(),n=rt(),s=yT(),i={message:({params:{i:o,j:c}})=>r.str`must NOT have duplicate items (items ## ${c} and ${o} are identical)`,params:({params:{i:o,j:c}})=>r._`{i: ${o}, j: ${c}}`},a={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:i,code(o){let{gen:c,data:l,$data:u,schema:p,parentSchema:d,schemaCode:m,it:f}=o;if(!u&&!p)return;let g=c.let("valid"),v=d.items?(0,e.getSchemaTypes)(d.items):[];o.block$data(g,h,r._`${m} === false`),o.ok(g);function h(){let w=c.let("i",r._`${l}.length`),S=c.let("j");o.setParams({i:w,j:S}),c.assign(g,!0),c.if(r._`${w} > 1`,()=>(y()?b:x)(w,S))}function y(){return v.length>0&&!v.some(w=>w==="object"||w==="array")}function b(w,S){let k=c.name("item"),E=(0,e.checkDataTypes)(v,k,f.opts.strictNumbers,e.DataType.Wrong),R=c.const("indices",r._`{}`);c.for(r._`;${w}--;`,()=>{c.let(k,r._`${l}[${w}]`),c.if(E,r._`continue`),v.length>1&&c.if(r._`typeof ${k} == "string"`,r._`${k} += "_"`),c.if(r._`typeof ${R}[${k}] == "number"`,()=>{c.assign(S,r._`${R}[${k}]`),o.error(),c.assign(g,!1).break()}).code(r._`${R}[${k}] = ${w}`)})}function x(w,S){let k=(0,n.useFunc)(c,s.default),E=c.name("outer");c.label(E).for(r._`;${w}--;`,()=>c.for(r._`${S} = ${w}; ${S}--;`,()=>c.if(r._`${k}(${l}[${w}], ${l}[${S}])`,()=>{o.error(),c.assign(g,!1).break(E)})))}}};t.default=a}),Zhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=yT(),s={message:"must be equal to constant",params:({schemaCode:a})=>e._`{allowedValue: ${a}}`},i={keyword:"const",$data:!0,error:s,code(a){let{gen:o,data:c,$data:l,schemaCode:u,schema:p}=a;l||p&&typeof p=="object"?a.fail$data(e._`!${(0,r.useFunc)(o,n.default)}(${c}, ${u})`):a.fail(e._`${p} !== ${c}`)}};t.default=i}),Ghe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=yT(),s={message:"must be equal to one of the allowed values",params:({schemaCode:a})=>e._`{allowedValues: ${a}}`},i={keyword:"enum",schemaType:"array",$data:!0,error:s,code(a){let{gen:o,data:c,$data:l,schema:u,schemaCode:p,it:d}=a;if(!l&&u.length===0)throw Error("enum must have non-empty array");let m=u.length>=d.opts.loopEnum,f,g=()=>f??(f=(0,r.useFunc)(o,n.default)),v;if(m||l)v=o.let("valid"),a.block$data(v,h);else{if(!Array.isArray(u))throw Error("ajv implementation error");let b=o.const("vSchema",p);v=(0,e.or)(...u.map((x,w)=>y(b,w)))}a.pass(v);function h(){o.assign(v,!1),o.forOf("v",p,b=>o.if(e._`${g()}(${c}, ${b})`,()=>o.assign(v,!0).break()))}function y(b,x){let w=u[x];return typeof w=="object"&&w!==null?e._`${g()}(${c}, ${b}[${x}])`:e._`${c} === ${w}`}}};t.default=i}),Vhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=zhe(),r=$he(),n=Uhe(),s=qhe(),i=Fhe(),a=Hhe(),o=Bhe(),c=Whe(),l=Zhe(),u=Ghe(),p=[e.default,r.default,n.default,s.default,i.default,a.default,o.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},l.default,u.default];t.default=p}),l8=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=De(),r=rt(),n={message:({params:{len:a}})=>e.str`must NOT have more than ${a} items`,params:({params:{len:a}})=>e._`{limit: ${a}}`},s={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:n,code(a){let{parentSchema:o,it:c}=a,{items:l}=o;if(!Array.isArray(l)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}i(a,l)}};function i(a,o){let{gen:c,schema:l,data:u,keyword:p,it:d}=a;d.items=!0;let m=c.const("len",e._`${u}.length`);if(l===!1)a.setParams({len:o.length}),a.pass(e._`${m} <= ${o.length}`);else if(typeof l=="object"&&!(0,r.alwaysValidSchema)(d,l)){let g=c.var("valid",e._`${m} <= ${o.length}`);c.if((0,e.not)(g),()=>f(g)),a.ok(g)}function f(g){c.forRange("i",o.length,m,v=>{a.subschema({keyword:p,dataProp:v,dataPropType:r.Type.Num},g),!d.allErrors&&c.if((0,e.not)(g),()=>c.break())})}}t.validateAdditionalItems=i,t.default=s}),u8=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=De(),r=rt(),n=_s(),s={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(a){let{schema:o,it:c}=a;if(Array.isArray(o))return i(a,"additionalItems",o);c.items=!0,!(0,r.alwaysValidSchema)(c,o)&&a.ok((0,n.validateArray)(a))}};function i(a,o,c=a.schema){let{gen:l,parentSchema:u,data:p,keyword:d,it:m}=a;v(u),m.opts.unevaluated&&c.length&&m.items!==!0&&(m.items=r.mergeEvaluated.items(l,c.length,m.items));let f=l.name("valid"),g=l.const("len",e._`${p}.length`);c.forEach((h,y)=>{(0,r.alwaysValidSchema)(m,h)||(l.if(e._`${g} > ${y}`,()=>a.subschema({keyword:d,schemaProp:y,dataProp:y},f)),a.ok(f))});function v(h){let{opts:y,errSchemaPath:b}=m,x=c.length,w=x===h.minItems&&(x===h.maxItems||h[o]===!1);if(y.strictTuples&&!w){let S=`"${d}" is ${x}-tuple, but minItems or maxItems/${o} are not specified or different at path "${b}"`;(0,r.checkStrictMode)(m,S,y.strictTuples)}}}t.validateTuple=i,t.default=s}),Khe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=u8(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0,e.validateTuple)(n,"items")};t.default=r}),Jhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=_s(),s=l8(),i={message:({params:{len:o}})=>e.str`must NOT have more than ${o} items`,params:({params:{len:o}})=>e._`{limit: ${o}}`},a={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:i,code(o){let{schema:c,parentSchema:l,it:u}=o,{prefixItems:p}=l;u.items=!0,!(0,r.alwaysValidSchema)(u,c)&&(p?(0,s.validateAdditionalItems)(o,p):o.ok((0,n.validateArray)(o)))}};t.default=a}),Qhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:({params:{min:i,max:a}})=>a===void 0?e.str`must contain at least ${i} valid item(s)`:e.str`must contain at least ${i} and no more than ${a} valid item(s)`,params:({params:{min:i,max:a}})=>a===void 0?e._`{minContains: ${i}}`:e._`{minContains: ${i}, maxContains: ${a}}`},s={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n,code(i){let{gen:a,schema:o,parentSchema:c,data:l,it:u}=i,p,d,{minContains:m,maxContains:f}=c;u.opts.next?(p=m===void 0?1:m,d=f):p=1;let g=a.const("len",e._`${l}.length`);if(i.setParams({min:p,max:d}),d===void 0&&p===0){(0,r.checkStrictMode)(u,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(d!==void 0&&p>d){(0,r.checkStrictMode)(u,'"minContains" > "maxContains" is always invalid'),i.fail();return}if((0,r.alwaysValidSchema)(u,o)){let x=e._`${g} >= ${p}`;d!==void 0&&(x=e._`${x} && ${g} <= ${d}`),i.pass(x);return}u.items=!0;let v=a.name("valid");d===void 0&&p===1?y(v,()=>a.if(v,()=>a.break())):p===0?(a.let(v,!0),d!==void 0&&a.if(e._`${l}.length > 0`,h)):(a.let(v,!1),h()),i.result(v,()=>i.reset());function h(){let x=a.name("_valid"),w=a.let("count",0);y(x,()=>a.if(x,()=>b(w)))}function y(x,w){a.forRange("i",0,g,S=>{i.subschema({keyword:"contains",dataProp:S,dataPropType:r.Type.Num,compositeRule:!0},x),w()})}function b(x){a.code(e._`${x}++`),d===void 0?a.if(e._`${x} >= ${p}`,()=>a.assign(v,!0).break()):(a.if(e._`${x} > ${d}`,()=>a.assign(v,!1).break()),p===1?a.assign(v,!0):a.if(e._`${x} >= ${p}`,()=>a.assign(v,!0)))}}};t.default=s}),Yhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=De(),r=rt(),n=_s();t.error={message:({params:{property:c,depsCount:l,deps:u}})=>{let p=l===1?"property":"properties";return e.str`must have ${p} ${u} when property ${c} is present`},params:({params:{property:c,depsCount:l,deps:u,missingProperty:p}})=>e._`{property: ${c}, +`);let a=Va(n,o=>new Date(o.epoch).toISOString());for(let[o,c]of a){e.push(`### ${o}`),e.push(""),e.push("| ID | Time | T | Title | Read |"),e.push("|----|------|---|-------|------|");let l="";for(let u of c){let p=u.time===l?'"':u.time;l=u.time,e.push(`| ${u.id} | ${p} | ${u.typeEmoji} | ${u.title} | ${u.tokens} |`)}e.push("")}return e.join(` +`).trim()}var Zfe=[".git","package.json","composer.json","Cargo.toml","go.mod","pyproject.toml","setup.py","Gemfile","pom.xml","build.gradle","CMakeLists.txt","Makefile.am","meson.build"];function Gfe(t){for(let r of Zfe){let n=Gr.default.join(t,r);if((0,Wn.existsSync)(n))return!0}let e=Gr.default.join(t,"CLAUDE.md");if((0,Wn.existsSync)(e))try{if(!(0,Wn.readFileSync)(e,"utf-8").includes(""))return!0}catch{return!0}return!1}function Vfe(t,e){if(Z6(t))return!0;let r=Gr.default.resolve(t);for(let n of e){let s=Gr.default.resolve(n);if(r===s||r.startsWith(s+Gr.default.sep))return!0}return!1}async function G6(t,e,r,n){let s=Ae.loadFromFile(Lfe);if(!s.CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED){_.debug("FOLDER_INDEX","Folder CLAUDE.md generation disabled by setting");return}let i=parseInt(s.CLAUDE_PILOT_CONTEXT_OBSERVATIONS,10)||50,a=[];try{let c=JSON.parse(s.CLAUDE_PILOT_FOLDER_MD_EXCLUDE||"[]");Array.isArray(c)&&(a=c.filter(l=>typeof l=="string"))}catch{_.warn("FOLDER_INDEX","Failed to parse CLAUDE_PILOT_FOLDER_MD_EXCLUDE setting")}let o=new Set;for(let c of t){if(!c||c==="")continue;if(!Ffe(c,n)){_.debug("FOLDER_INDEX","Skipping invalid file path",{filePath:c,reason:"Failed path validation"});continue}let l=c;n&&!Gr.default.isAbsolute(c)&&(l=Gr.default.join(n,c));let u=Gr.default.dirname(l);if(u&&u!=="."&&u!=="/"){if(u.includes("/.git")||u.includes("\\.git")){_.debug("FOLDER_INDEX","Skipping .git directory",{folderPath:u});continue}if(Gfe(u)){_.debug("FOLDER_INDEX","Skipping project root CLAUDE.md",{folderPath:u});continue}if(a.length>0&&Vfe(u,a)){_.debug("FOLDER_INDEX","Skipping excluded folder",{folderPath:u});continue}o.add(u)}}if(o.size!==0){_.debug("FOLDER_INDEX","Updating CLAUDE.md files",{project:e,folderCount:o.size});for(let c of o)try{let l=us(),u=await fetch(`http://${l}:${r}/api/search/by-file?filePath=${encodeURIComponent(c)}&limit=${i}&project=${encodeURIComponent(e)}&isFolder=true`);if(!u.ok){_.error("FOLDER_INDEX","Failed to fetch timeline",{folderPath:c,status:u.status});continue}let p=await u.json();if(!p.content?.[0]?.text){_.debug("FOLDER_INDEX","No content for folder",{folderPath:c});continue}let d=Wfe(p.content[0].text);Bfe(c,d),_.debug("FOLDER_INDEX","Updated CLAUDE.md",{folderPath:c})}catch(l){let u=l;_.error("FOLDER_INDEX","Failed to update CLAUDE.md",{folderPath:c,errorMessage:u.message,errorStack:u.stack})}}}Ln();Ka();var bk=require("child_process");function X6(t){try{let e=(0,bk.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:t||process.cwd(),encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3,windowsHide:!0}).trim();return e==="HEAD"?`detached@${(0,bk.execSync)("git rev-parse --short HEAD",{cwd:t||process.cwd(),encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3,windowsHide:!0}).trim()}`:e||null}catch{return null}}function xk(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_observation",observation:e})}function _k(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_summary",summary:e})}function wk(t,e){t.earliestPendingTimestamp=null,e&&typeof e.broadcastProcessingStatus=="function"&&e.broadcastProcessingStatus()}async function Sk(t,e,r,n,s,i,a,o,c){t&&e.conversationHistory.push({role:"assistant",content:t});let l=F6(t,e.contentSessionId),u=H6(t,e.sessionDbId),p=ehe(u),d=r.getSessionStore();if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");let m=eF(l),f=Y6(m,e.project,c);f!==e.project&&_.info("PROJECT",`Detected project from files: ${f} (session: ${e.project})`,{detectedProject:f,sessionProject:e.project,fileCount:m.length});let g=X6(c);_.info("DB",`STORING | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | project=${f} | obsCount=${l.length} | hasSummary=${!!p}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId,project:f,gitBranch:g});let v=d.storeObservations(e.memorySessionId,f,l,p,e.lastPromptNumber,i,a??void 0);_.info("DB",`STORED | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | obsCount=${v.observationIds.length} | obsIds=[${v.observationIds.join(",")}] | summaryId=${v.summaryId||"none"}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId}),await the(l,v,e,f,r,s,i,o,c),await rhe(u,p,v,e,f,r,s,i,o),wk(e,s)}function ehe(t){return t?{request:t.request||"",investigated:t.investigated||"",learned:t.learned||"",completed:t.completed||"",next_steps:t.next_steps||"",notes:t.notes}:null}function eF(t){let e=[];for(let r of t)e.push(...r.files_read||[]),e.push(...r.files_modified||[]);return e}async function the(t,e,r,n,s,i,a,o,c){for(let u=0;u{let f=Date.now()-m;_.debug("VECTOR","Observation synced",{obsId:p,duration:`${f}ms`,type:d.type,title:d.title||"(untitled)"})}).catch(f=>{_.error("VECTOR",`${o} vector sync failed, continuing without vector search`,{obsId:p,type:d.type,title:d.title||"(untitled)"},f)}),xk(i,{id:p,memory_session_id:r.memorySessionId,session_id:r.contentSessionId,type:d.type,title:d.title,subtitle:d.subtitle,text:null,narrative:d.narrative||null,facts:JSON.stringify(d.facts||[]),concepts:JSON.stringify(d.concepts||[]),files_read:JSON.stringify(d.files_read||[]),files_modified:JSON.stringify(d.files_modified||[]),project:n,prompt_number:r.lastPromptNumber,created_at_epoch:e.createdAtEpoch})}let l=eF(t);l.length>0&&G6(l,n,un(),c).catch(u=>{_.warn("FOLDER_INDEX","CLAUDE.md update failed (non-critical)",{project:n},u)})}async function rhe(t,e,r,n,s,i,a,o,c){if(!e||!r.summaryId)return;let l=Date.now();i.getVectorSync().syncSummary(r.summaryId,n.contentSessionId,s,e,n.lastPromptNumber,r.createdAtEpoch,o).then(()=>{let u=Date.now()-l;_.debug("VECTOR","Summary synced",{summaryId:r.summaryId,duration:`${u}ms`,request:e.request||"(no request)"})}).catch(u=>{_.error("VECTOR",`${c} vector sync failed, continuing without vector search`,{summaryId:r.summaryId,request:e.request||"(no request)"},u)}),_k(a,{id:r.summaryId,session_id:n.contentSessionId,request:t.request,investigated:t.investigated,learned:t.learned,completed:t.completed,next_steps:t.next_steps,notes:t.notes,project:s,prompt_number:n.lastPromptNumber,created_at_epoch:r.createdAtEpoch})}var Xg=require("fs");re();er();var tF=sx;function she(){try{if(!(0,Xg.existsSync)(tF))return _.debug("SUBSCRIPTION","No credentials file found, assuming no subscription"),!1;let t=(0,Xg.readFileSync)(tF,"utf-8"),e=JSON.parse(t),r=e.planType||e.tier||e.subscription?.type||e.subscription?.tier||"",s=["pro","max","team","enterprise"].some(i=>r.toLowerCase().includes(i));return s&&_.debug("SUBSCRIPTION","Paid subscription detected",{tier:r}),s}catch(t){return _.debug("SUBSCRIPTION","Could not read credentials",{},t),!1}}function rF(){if(!she())return null;let t=process.env.ANTHROPIC_API_KEY;return t?(_.info("SUBSCRIPTION","Claude subscription detected - routing through CLI billing"),delete process.env.ANTHROPIC_API_KEY,()=>{process.env.ANTHROPIC_API_KEY=t}):null}var l8=require("events"),p8=require("child_process"),d8=require("readline"),y8=require("os"),b8=require("path"),q8=require("crypto"),yy=require("fs/promises"),Kk=require("path"),Jk=require("fs"),F8=require("process"),wT=require("crypto"),ta=require("fs/promises"),yl=require("path"),Re=Q(require("fs"),1),or=require("fs/promises"),rT=require("path"),K8=require("url");var J8=require("child_process"),Q8=require("util");var pEe={},ihe=Object.create,{getPrototypeOf:ahe,defineProperty:Mk,getOwnPropertyNames:ohe}=Object,che=Object.prototype.hasOwnProperty;function lhe(t){return this[t]}var uhe,phe,t8=(t,e,r)=>{var n=t!=null&&typeof t=="object";if(n){var s=e?uhe??=new WeakMap:phe??=new WeakMap,i=s.get(t);if(i)return i}r=t!=null?ihe(ahe(t)):{};let a=e||!t||!t.__esModule?Mk(r,"default",{value:t,enumerable:!0}):r;for(let o of ohe(t))che.call(a,o)||Mk(a,o,{get:lhe.bind(t,o),enumerable:!0});return n&&s.set(t,a),a},ne=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),dhe=t=>t;function mhe(t,e){this[t]=dhe.bind(null,e)}var lo=(t,e)=>{for(var r in e)Mk(t,r,{get:e[r],enumerable:!0,configurable:!0,set:mhe.bind(e,r)})},fhe=Symbol.dispose||Symbol.for("Symbol.dispose"),hhe=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),Zt=(t,e,r)=>{if(e!=null){if(typeof e!="object"&&typeof e!="function")throw TypeError('Object expected to be assigned to "using" declaration');var n;if(r&&(n=e[hhe]),n===void 0&&(n=e[fhe]),typeof n!="function")throw TypeError("Object not disposable");t.push([r,n,e])}else r&&t.push([r]);return e},Gt=(t,e,r)=>{var n=typeof SuppressedError=="function"?SuppressedError:function(a,o,c,l){return l=Error(c),l.name="SuppressedError",l.error=a,l.suppressed=o,l},s=a=>e=r?new n(a,e,"An error was suppressed during disposal"):(r=!0,a),i=a=>{for(;a=t.pop();)try{var o=a[1]&&a[1].call(a[2]);if(a[0])return Promise.resolve(o).then(i,c=>(s(c),i()))}catch(c){s(c)}if(r)throw e};return i()},Sv=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class e{}t._CodeOrName=e,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends e{constructor(y){if(super(),!t.IDENTIFIER.test(y))throw Error("CodeGen: name must be a valid identifier");this.str=y}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(y){super(),this._items=typeof y=="string"?[y]:y}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let y=this._items[0];return y===""||y==='""'}get str(){var y;return(y=this._str)!==null&&y!==void 0?y:this._str=this._items.reduce((b,x)=>`${b}${x}`,"")}get names(){var y;return(y=this._names)!==null&&y!==void 0?y:this._names=this._items.reduce((b,x)=>(x instanceof r&&(b[x.str]=(b[x.str]||0)+1),b),{})}}t._Code=n,t.nil=new n("");function s(h,...y){let b=[h[0]],x=0;for(;x{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=Sv();class r extends Error{constructor(l){super(`CodeGen: "code" for ${l} not defined`),this.value=l.value}}var n;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(n||(t.UsedValueState=n={})),t.varKinds={const:new e.Name("const"),let:new e.Name("let"),var:new e.Name("var")};class s{constructor({prefixes:l,parent:u}={}){this._names={},this._prefixes=l,this._parent=u}toName(l){return l instanceof e.Name?l:this.name(l)}name(l){return new e.Name(this._newName(l))}_newName(l){let u=this._names[l]||this._nameGroup(l);return`${l}${u.index++}`}_nameGroup(l){var u,p;if(!((p=(u=this._parent)===null||u===void 0?void 0:u._prefixes)===null||p===void 0)&&p.has(l)||this._prefixes&&!this._prefixes.has(l))throw Error(`CodeGen: prefix "${l}" is not allowed in this scope`);return this._names[l]={prefix:l,index:0}}}t.Scope=s;class i extends e.Name{constructor(l,u){super(u),this.prefix=l}setValue(l,{property:u,itemIndex:p}){this.value=l,this.scopePath=e._`.${new e.Name(u)}[${p}]`}}t.ValueScopeName=i;var a=e._`\n`;class o extends s{constructor(l){super(l),this._values={},this._scope=l.scope,this.opts={...l,_n:l.lines?a:e.nil}}get(){return this._scope}name(l){return new i(l,this._newName(l))}value(l,u){var p;if(u.ref===void 0)throw Error("CodeGen: ref must be passed in value");let d=this.toName(l),{prefix:m}=d,f=(p=u.key)!==null&&p!==void 0?p:u.ref,g=this._values[m];if(g){let y=g.get(f);if(y)return y}else g=this._values[m]=new Map;g.set(f,d);let v=this._scope[m]||(this._scope[m]=[]),h=v.length;return v[h]=u.ref,d.setValue(u,{property:m,itemIndex:h}),d}getValue(l,u){let p=this._values[l];if(p)return p.get(u)}scopeRefs(l,u=this._values){return this._reduceValues(u,p=>{if(p.scopePath===void 0)throw Error(`CodeGen: name "${p}" has no value`);return e._`${l}${p.scopePath}`})}scopeCode(l=this._values,u,p){return this._reduceValues(l,d=>{if(d.value===void 0)throw Error(`CodeGen: name "${d}" has no value`);return d.value.code},u,p)}_reduceValues(l,u,p={},d){let m=e.nil;for(let f in l){let g=l[f];if(!g)continue;let v=p[f]=p[f]||new Map;g.forEach(h=>{if(v.has(h))return;v.set(h,n.Started);let y=u(h);if(y){let b=this.opts.es5?t.varKinds.var:t.varKinds.const;m=e._`${m}${b} ${h} = ${y};${this.opts._n}`}else if(y=d?.(h))m=e._`${m}${y}${this.opts._n}`;else throw new r(h);v.set(h,n.Completed)})}return m}}t.ValueScope=o}),De=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;var e=Sv(),r=nF(),n=Sv();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(t,"strConcat",{enumerable:!0,get:function(){return n.strConcat}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(t,"getProperty",{enumerable:!0,get:function(){return n.getProperty}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(t,"regexpCode",{enumerable:!0,get:function(){return n.regexpCode}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return n.Name}});var s=nF();Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return s.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return s.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return s.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return s.varKinds}}),t.operators={GT:new e._Code(">"),GTE:new e._Code(">="),LT:new e._Code("<"),LTE:new e._Code("<="),EQ:new e._Code("==="),NEQ:new e._Code("!=="),NOT:new e._Code("!"),OR:new e._Code("||"),AND:new e._Code("&&"),ADD:new e._Code("+")};class i{optimizeNodes(){return this}optimizeNames(T,I){return this}}class a extends i{constructor(T,I,H){super(),this.varKind=T,this.name=I,this.rhs=H}render({es5:T,_n:I}){let H=T?r.varKinds.var:this.varKind,pe=this.rhs===void 0?"":` = ${this.rhs}`;return`${H} ${this.name}${pe};`+I}optimizeNames(T,I){if(T[this.name.str])return this.rhs&&(this.rhs=Z(this.rhs,T,I)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class o extends i{constructor(T,I,H){super(),this.lhs=T,this.rhs=I,this.sideEffects=H}render({_n:T}){return`${this.lhs} = ${this.rhs};`+T}optimizeNames(T,I){if(!(this.lhs instanceof e.Name&&!T[this.lhs.str]&&!this.sideEffects))return this.rhs=Z(this.rhs,T,I),this}get names(){let T=this.lhs instanceof e.Name?{}:{...this.lhs.names};return q(T,this.rhs)}}class c extends o{constructor(T,I,H,pe){super(T,H,pe),this.op=I}render({_n:T}){return`${this.lhs} ${this.op}= ${this.rhs};`+T}}class l extends i{constructor(T){super(),this.label=T,this.names={}}render({_n:T}){return`${this.label}:`+T}}class u extends i{constructor(T){super(),this.label=T,this.names={}}render({_n:T}){return`break${this.label?` ${this.label}`:""};`+T}}class p extends i{constructor(T){super(),this.error=T}render({_n:T}){return`throw ${this.error};`+T}get names(){return this.error.names}}class d extends i{constructor(T){super(),this.code=T}render({_n:T}){return`${this.code};`+T}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(T,I){return this.code=Z(this.code,T,I),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class m extends i{constructor(T=[]){super(),this.nodes=T}render(T){return this.nodes.reduce((I,H)=>I+H.render(T),"")}optimizeNodes(){let{nodes:T}=this,I=T.length;for(;I--;){let H=T[I].optimizeNodes();Array.isArray(H)?T.splice(I,1,...H):H?T[I]=H:T.splice(I,1)}return T.length>0?this:void 0}optimizeNames(T,I){let{nodes:H}=this,pe=H.length;for(;pe--;){let he=H[pe];he.optimizeNames(T,I)||(se(T,he.names),H.splice(pe,1))}return H.length>0?this:void 0}get names(){return this.nodes.reduce((T,I)=>U(T,I.names),{})}}class f extends m{render(T){return"{"+T._n+super.render(T)+"}"+T._n}}class g extends m{}class v extends f{}v.kind="else";class h extends f{constructor(T,I){super(I),this.condition=T}render(T){let I=`if(${this.condition})`+super.render(T);return this.else&&(I+="else "+this.else.render(T)),I}optimizeNodes(){super.optimizeNodes();let T=this.condition;if(T===!0)return this.nodes;let I=this.else;if(I){let H=I.optimizeNodes();I=this.else=Array.isArray(H)?new v(H):H}if(I)return T===!1?I instanceof h?I:I.nodes:this.nodes.length?this:new h(K(T),I instanceof h?[I]:I.nodes);if(!(T===!1||!this.nodes.length))return this}optimizeNames(T,I){var H;if(this.else=(H=this.else)===null||H===void 0?void 0:H.optimizeNames(T,I),!!(super.optimizeNames(T,I)||this.else))return this.condition=Z(this.condition,T,I),this}get names(){let T=super.names;return q(T,this.condition),this.else&&U(T,this.else.names),T}}h.kind="if";class y extends f{}y.kind="for";class b extends y{constructor(T){super(),this.iteration=T}render(T){return`for(${this.iteration})`+super.render(T)}optimizeNames(T,I){if(super.optimizeNames(T,I))return this.iteration=Z(this.iteration,T,I),this}get names(){return U(super.names,this.iteration.names)}}class x extends y{constructor(T,I,H,pe){super(),this.varKind=T,this.name=I,this.from=H,this.to=pe}render(T){let I=T.es5?r.varKinds.var:this.varKind,{name:H,from:pe,to:he}=this;return`for(${I} ${H}=${pe}; ${H}<${he}; ${H}++)`+super.render(T)}get names(){let T=q(super.names,this.from);return q(T,this.to)}}class w extends y{constructor(T,I,H,pe){super(),this.loop=T,this.varKind=I,this.name=H,this.iterable=pe}render(T){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(T)}optimizeNames(T,I){if(super.optimizeNames(T,I))return this.iterable=Z(this.iterable,T,I),this}get names(){return U(super.names,this.iterable.names)}}class S extends f{constructor(T,I,H){super(),this.name=T,this.args=I,this.async=H}render(T){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(T)}}S.kind="func";class E extends m{render(T){return"return "+super.render(T)}}E.kind="return";class k extends f{render(T){let I="try"+super.render(T);return this.catch&&(I+=this.catch.render(T)),this.finally&&(I+=this.finally.render(T)),I}optimizeNodes(){var T,I;return super.optimizeNodes(),(T=this.catch)===null||T===void 0||T.optimizeNodes(),(I=this.finally)===null||I===void 0||I.optimizeNodes(),this}optimizeNames(T,I){var H,pe;return super.optimizeNames(T,I),(H=this.catch)===null||H===void 0||H.optimizeNames(T,I),(pe=this.finally)===null||pe===void 0||pe.optimizeNames(T,I),this}get names(){let T=super.names;return this.catch&&U(T,this.catch.names),this.finally&&U(T,this.finally.names),T}}class R extends f{constructor(T){super(),this.error=T}render(T){return`catch(${this.error})`+super.render(T)}}R.kind="catch";class O extends f{render(T){return"finally"+super.render(T)}}O.kind="finally";class C{constructor(T,I={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...I,_n:I.lines?` +`:""},this._extScope=T,this._scope=new r.Scope({parent:T}),this._nodes=[new g]}toString(){return this._root.render(this.opts)}name(T){return this._scope.name(T)}scopeName(T){return this._extScope.name(T)}scopeValue(T,I){let H=this._extScope.value(T,I);return(this._values[H.prefix]||(this._values[H.prefix]=new Set)).add(H),H}getScopeValue(T,I){return this._extScope.getValue(T,I)}scopeRefs(T){return this._extScope.scopeRefs(T,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(T,I,H,pe){let he=this._scope.toName(I);return H!==void 0&&pe&&(this._constants[he.str]=H),this._leafNode(new a(T,he,H)),he}const(T,I,H){return this._def(r.varKinds.const,T,I,H)}let(T,I,H){return this._def(r.varKinds.let,T,I,H)}var(T,I,H){return this._def(r.varKinds.var,T,I,H)}assign(T,I,H){return this._leafNode(new o(T,I,H))}add(T,I){return this._leafNode(new c(T,t.operators.ADD,I))}code(T){return typeof T=="function"?T():T!==e.nil&&this._leafNode(new d(T)),this}object(...T){let I=["{"];for(let[H,pe]of T)I.length>1&&I.push(","),I.push(H),(H!==pe||this.opts.es5)&&(I.push(":"),(0,e.addCodeArg)(I,pe));return I.push("}"),new e._Code(I)}if(T,I,H){if(this._blockNode(new h(T)),I&&H)this.code(I).else().code(H).endIf();else if(I)this.code(I).endIf();else if(H)throw Error('CodeGen: "else" body without "then" body');return this}elseIf(T){return this._elseNode(new h(T))}else(){return this._elseNode(new v)}endIf(){return this._endBlockNode(h,v)}_for(T,I){return this._blockNode(T),I&&this.code(I).endFor(),this}for(T,I){return this._for(new b(T),I)}forRange(T,I,H,pe,he=this.opts.es5?r.varKinds.var:r.varKinds.let){let st=this._scope.toName(T);return this._for(new x(he,st,I,H),()=>pe(st))}forOf(T,I,H,pe=r.varKinds.const){let he=this._scope.toName(T);if(this.opts.es5){let st=I instanceof e.Name?I:this.var("_arr",I);return this.forRange("_i",0,e._`${st}.length`,Ye=>{this.var(he,e._`${st}[${Ye}]`),H(he)})}return this._for(new w("of",pe,he,I),()=>H(he))}forIn(T,I,H,pe=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(T,e._`Object.keys(${I})`,H);let he=this._scope.toName(T);return this._for(new w("in",pe,he,I),()=>H(he))}endFor(){return this._endBlockNode(y)}label(T){return this._leafNode(new l(T))}break(T){return this._leafNode(new u(T))}return(T){let I=new E;if(this._blockNode(I),this.code(T),I.nodes.length!==1)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(E)}try(T,I,H){if(!I&&!H)throw Error('CodeGen: "try" without "catch" and "finally"');let pe=new k;if(this._blockNode(pe),this.code(T),I){let he=this.name("e");this._currNode=pe.catch=new R(he),I(he)}return H&&(this._currNode=pe.finally=new O,this.code(H)),this._endBlockNode(R,O)}throw(T){return this._leafNode(new p(T))}block(T,I){return this._blockStarts.push(this._nodes.length),T&&this.code(T).endBlock(I),this}endBlock(T){let I=this._blockStarts.pop();if(I===void 0)throw Error("CodeGen: not in self-balancing block");let H=this._nodes.length-I;if(H<0||T!==void 0&&H!==T)throw Error(`CodeGen: wrong number of nodes: ${H} vs ${T} expected`);return this._nodes.length=I,this}func(T,I=e.nil,H,pe){return this._blockNode(new S(T,I,H)),pe&&this.code(pe).endFunc(),this}endFunc(){return this._endBlockNode(S)}optimize(T=1){for(;T-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(T){return this._currNode.nodes.push(T),this}_blockNode(T){this._currNode.nodes.push(T),this._nodes.push(T)}_endBlockNode(T,I){let H=this._currNode;if(H instanceof T||I&&H instanceof I)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${I?`${T.kind}/${I.kind}`:T.kind}"`)}_elseNode(T){let I=this._currNode;if(!(I instanceof h))throw Error('CodeGen: "else" without "if"');return this._currNode=I.else=T,this}get _root(){return this._nodes[0]}get _currNode(){let T=this._nodes;return T[T.length-1]}set _currNode(T){let I=this._nodes;I[I.length-1]=T}}t.CodeGen=C;function U(z,T){for(let I in T)z[I]=(z[I]||0)+(T[I]||0);return z}function q(z,T){return T instanceof e._CodeOrName?U(z,T.names):z}function Z(z,T,I){if(z instanceof e.Name)return H(z);if(!pe(z))return z;return new e._Code(z._items.reduce((he,st)=>(st instanceof e.Name&&(st=H(st)),st instanceof e._Code?he.push(...st._items):he.push(st),he),[]));function H(he){let st=I[he.str];return st===void 0||T[he.str]!==1?he:(delete T[he.str],st)}function pe(he){return he instanceof e._Code&&he._items.some(st=>st instanceof e.Name&&T[st.str]===1&&I[st.str]!==void 0)}}function se(z,T){for(let I in T)z[I]=(z[I]||0)-(T[I]||0)}function K(z){return typeof z=="boolean"||typeof z=="number"||z===null?!z:e._`!${B(z)}`}t.not=K;var yt=A(t.operators.AND);function Cr(...z){return z.reduce(yt)}t.and=Cr;var Fe=A(t.operators.OR);function V(...z){return z.reduce(Fe)}t.or=V;function A(z){return(T,I)=>T===e.nil?I:I===e.nil?T:e._`${B(T)} ${z} ${B(I)}`}function B(z){return z instanceof e.Name?z:e._`(${z})`}}),rt=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;var e=De(),r=Sv();function n(S){let E={};for(let k of S)E[k]=!0;return E}t.toHash=n;function s(S,E){return typeof E=="boolean"?E:Object.keys(E).length===0?!0:(i(S,E),!a(E,S.self.RULES.all))}t.alwaysValidSchema=s;function i(S,E=S.schema){let{opts:k,self:R}=S;if(!k.strictSchema||typeof E=="boolean")return;let O=R.RULES.keywords;for(let C in E)O[C]||w(S,`unknown keyword: "${C}"`)}t.checkUnknownRules=i;function a(S,E){if(typeof S=="boolean")return!S;for(let k in S)if(E[k])return!0;return!1}t.schemaHasRules=a;function o(S,E){if(typeof S=="boolean")return!S;for(let k in S)if(k!=="$ref"&&E.all[k])return!0;return!1}t.schemaHasRulesButRef=o;function c({topSchemaRef:S,schemaPath:E},k,R,O){if(!O){if(typeof k=="number"||typeof k=="boolean")return k;if(typeof k=="string")return e._`${k}`}return e._`${S}${E}${(0,e.getProperty)(R)}`}t.schemaRefOrVal=c;function l(S){return d(decodeURIComponent(S))}t.unescapeFragment=l;function u(S){return encodeURIComponent(p(S))}t.escapeFragment=u;function p(S){return typeof S=="number"?`${S}`:S.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=p;function d(S){return S.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=d;function m(S,E){if(Array.isArray(S))for(let k of S)E(k);else E(S)}t.eachItem=m;function f({mergeNames:S,mergeToName:E,mergeValues:k,resultToName:R}){return(O,C,U,q)=>{let Z=U===void 0?C:U instanceof e.Name?(C instanceof e.Name?S(O,C,U):E(O,C,U),U):C instanceof e.Name?(E(O,U,C),C):k(C,U);return q===e.Name&&!(Z instanceof e.Name)?R(O,Z):Z}}t.mergeEvaluated={props:f({mergeNames:(S,E,k)=>S.if(e._`${k} !== true && ${E} !== undefined`,()=>{S.if(e._`${E} === true`,()=>S.assign(k,!0),()=>S.assign(k,e._`${k} || {}`).code(e._`Object.assign(${k}, ${E})`))}),mergeToName:(S,E,k)=>S.if(e._`${k} !== true`,()=>{E===!0?S.assign(k,!0):(S.assign(k,e._`${k} || {}`),v(S,k,E))}),mergeValues:(S,E)=>S===!0?!0:{...S,...E},resultToName:g}),items:f({mergeNames:(S,E,k)=>S.if(e._`${k} !== true && ${E} !== undefined`,()=>S.assign(k,e._`${E} === true ? true : ${k} > ${E} ? ${k} : ${E}`)),mergeToName:(S,E,k)=>S.if(e._`${k} !== true`,()=>S.assign(k,E===!0?!0:e._`${k} > ${E} ? ${k} : ${E}`)),mergeValues:(S,E)=>S===!0?!0:Math.max(S,E),resultToName:(S,E)=>S.var("items",E)})};function g(S,E){if(E===!0)return S.var("props",!0);let k=S.var("props",e._`{}`);return E!==void 0&&v(S,k,E),k}t.evaluatedPropsToName=g;function v(S,E,k){Object.keys(k).forEach(R=>S.assign(e._`${E}${(0,e.getProperty)(R)}`,!0))}t.setEvaluated=v;var h={};function y(S,E){return S.scopeValue("func",{ref:E,code:h[E.code]||(h[E.code]=new r._Code(E.code))})}t.useFunc=y;var b;(function(S){S[S.Num=0]="Num",S[S.Str=1]="Str"})(b||(t.Type=b={}));function x(S,E,k){if(S instanceof e.Name){let R=E===b.Num;return k?R?e._`"[" + ${S} + "]"`:e._`"['" + ${S} + "']"`:R?e._`"/" + ${S}`:e._`"/" + ${S}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return k?(0,e.getProperty)(S).toString():"/"+p(S)}t.getErrorPath=x;function w(S,E,k=S.opts.strictSchema){if(k){if(E=`strict mode: ${E}`,k===!0)throw Error(E);S.self.logger.warn(E)}}t.checkStrictMode=w}),Xi=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};t.default=r}),dy=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=De(),r=rt(),n=Xi();t.keywordError={message:({keyword:v})=>e.str`must pass "${v}" keyword validation`},t.keyword$DataError={message:({keyword:v,schemaType:h})=>h?e.str`"${v}" keyword must be ${h} ($data)`:e.str`"${v}" keyword is invalid ($data)`};function s(v,h=t.keywordError,y,b){let{it:x}=v,{gen:w,compositeRule:S,allErrors:E}=x,k=p(v,h,y);b??(S||E)?c(w,k):l(x,e._`[${k}]`)}t.reportError=s;function i(v,h=t.keywordError,y){let{it:b}=v,{gen:x,compositeRule:w,allErrors:S}=b,E=p(v,h,y);c(x,E),!(w||S)&&l(b,n.default.vErrors)}t.reportExtraError=i;function a(v,h){v.assign(n.default.errors,h),v.if(e._`${n.default.vErrors} !== null`,()=>v.if(h,()=>v.assign(e._`${n.default.vErrors}.length`,h),()=>v.assign(n.default.vErrors,null)))}t.resetErrorsCount=a;function o({gen:v,keyword:h,schemaValue:y,data:b,errsCount:x,it:w}){if(x===void 0)throw Error("ajv implementation error");let S=v.name("err");v.forRange("i",x,n.default.errors,E=>{v.const(S,e._`${n.default.vErrors}[${E}]`),v.if(e._`${S}.instancePath === undefined`,()=>v.assign(e._`${S}.instancePath`,(0,e.strConcat)(n.default.instancePath,w.errorPath))),v.assign(e._`${S}.schemaPath`,e.str`${w.errSchemaPath}/${h}`),w.opts.verbose&&(v.assign(e._`${S}.schema`,y),v.assign(e._`${S}.data`,b))})}t.extendErrors=o;function c(v,h){let y=v.const("err",h);v.if(e._`${n.default.vErrors} === null`,()=>v.assign(n.default.vErrors,e._`[${y}]`),e._`${n.default.vErrors}.push(${y})`),v.code(e._`${n.default.errors}++`)}function l(v,h){let{gen:y,validateName:b,schemaEnv:x}=v;x.$async?y.throw(e._`new ${v.ValidationError}(${h})`):(y.assign(e._`${b}.errors`,h),y.return(!1))}var u={keyword:new e.Name("keyword"),schemaPath:new e.Name("schemaPath"),params:new e.Name("params"),propertyName:new e.Name("propertyName"),message:new e.Name("message"),schema:new e.Name("schema"),parentSchema:new e.Name("parentSchema")};function p(v,h,y){let{createErrors:b}=v.it;return b===!1?e._`{}`:d(v,h,y)}function d(v,h,y={}){let{gen:b,it:x}=v,w=[m(x,y),f(v,y)];return g(v,h,w),b.object(...w)}function m({errorPath:v},{instancePath:h}){let y=h?e.str`${v}${(0,r.getErrorPath)(h,r.Type.Str)}`:v;return[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,y)]}function f({keyword:v,it:{errSchemaPath:h}},{schemaPath:y,parentSchema:b}){let x=b?h:e.str`${h}/${v}`;return y&&(x=e.str`${x}${(0,r.getErrorPath)(y,r.Type.Str)}`),[u.schemaPath,x]}function g(v,{params:h,message:y},b){let{keyword:x,data:w,schemaValue:S,it:E}=v,{opts:k,propertyName:R,topSchemaRef:O,schemaPath:C}=E;b.push([u.keyword,x],[u.params,typeof h=="function"?h(v):h||e._`{}`]),k.messages&&b.push([u.message,typeof y=="function"?y(v):y]),k.verbose&&b.push([u.schema,S],[u.parentSchema,e._`${O}${C}`],[n.default.data,w]),R&&b.push([u.propertyName,R])}}),ghe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=dy(),r=De(),n=Xi(),s={message:"boolean schema is false"};function i(c){let{gen:l,schema:u,validateName:p}=c;u===!1?o(c,!1):typeof u=="object"&&u.$async===!0?l.return(n.default.data):(l.assign(r._`${p}.errors`,null),l.return(!0))}t.topBoolOrEmptySchema=i;function a(c,l){let{gen:u,schema:p}=c;p===!1?(u.var(l,!1),o(c)):u.var(l,!0)}t.boolOrEmptySchema=a;function o(c,l){let{gen:u,data:p}=c,d={gen:u,keyword:"false schema",data:p,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,e.reportError)(d,s,void 0,l)}}),r8=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRules=t.isJSONType=void 0;var e=["string","number","integer","boolean","null","object","array"],r=new Set(e);function n(i){return typeof i=="string"&&r.has(i)}t.isJSONType=n;function s(){let i={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...i,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},i.number,i.string,i.array,i.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=s}),n8=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:s,self:i},a){let o=i.RULES.types[a];return o&&o!==!0&&r(s,o)}t.schemaHasRulesForType=e;function r(s,i){return i.rules.some(a=>n(s,a))}t.shouldUseGroup=r;function n(s,i){var a;return s[i.keyword]!==void 0||((a=i.definition.implements)===null||a===void 0?void 0:a.some(o=>s[o]!==void 0))}t.shouldUseRule=n}),Ev=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;var e=r8(),r=n8(),n=dy(),s=De(),i=rt(),a;(function(b){b[b.Correct=0]="Correct",b[b.Wrong=1]="Wrong"})(a||(t.DataType=a={}));function o(b){let x=c(b.type);if(x.includes("null")){if(b.nullable===!1)throw Error("type: null contradicts nullable: false")}else{if(!x.length&&b.nullable!==void 0)throw Error('"nullable" cannot be used without "type"');b.nullable===!0&&x.push("null")}return x}t.getSchemaTypes=o;function c(b){let x=Array.isArray(b)?b:b?[b]:[];if(x.every(e.isJSONType))return x;throw Error("type must be JSONType or JSONType[]: "+x.join(","))}t.getJSONTypes=c;function l(b,x){let{gen:w,data:S,opts:E}=b,k=p(x,E.coerceTypes),R=x.length>0&&!(k.length===0&&x.length===1&&(0,r.schemaHasRulesForType)(b,x[0]));if(R){let O=g(x,S,E.strictNumbers,a.Wrong);w.if(O,()=>{k.length?d(b,x,k):h(b)})}return R}t.coerceAndCheckDataType=l;var u=new Set(["string","number","integer","boolean","null"]);function p(b,x){return x?b.filter(w=>u.has(w)||x==="array"&&w==="array"):[]}function d(b,x,w){let{gen:S,data:E,opts:k}=b,R=S.let("dataType",s._`typeof ${E}`),O=S.let("coerced",s._`undefined`);k.coerceTypes==="array"&&S.if(s._`${R} == 'object' && Array.isArray(${E}) && ${E}.length == 1`,()=>S.assign(E,s._`${E}[0]`).assign(R,s._`typeof ${E}`).if(g(x,E,k.strictNumbers),()=>S.assign(O,E))),S.if(s._`${O} !== undefined`);for(let U of w)(u.has(U)||U==="array"&&k.coerceTypes==="array")&&C(U);S.else(),h(b),S.endIf(),S.if(s._`${O} !== undefined`,()=>{S.assign(E,O),m(b,O)});function C(U){switch(U){case"string":S.elseIf(s._`${R} == "number" || ${R} == "boolean"`).assign(O,s._`"" + ${E}`).elseIf(s._`${E} === null`).assign(O,s._`""`);return;case"number":S.elseIf(s._`${R} == "boolean" || ${E} === null + || (${R} == "string" && ${E} && ${E} == +${E})`).assign(O,s._`+${E}`);return;case"integer":S.elseIf(s._`${R} === "boolean" || ${E} === null + || (${R} === "string" && ${E} && ${E} == +${E} && !(${E} % 1))`).assign(O,s._`+${E}`);return;case"boolean":S.elseIf(s._`${E} === "false" || ${E} === 0 || ${E} === null`).assign(O,!1).elseIf(s._`${E} === "true" || ${E} === 1`).assign(O,!0);return;case"null":S.elseIf(s._`${E} === "" || ${E} === 0 || ${E} === false`),S.assign(O,null);return;case"array":S.elseIf(s._`${R} === "string" || ${R} === "number" + || ${R} === "boolean" || ${E} === null`).assign(O,s._`[${E}]`)}}}function m({gen:b,parentData:x,parentDataProperty:w},S){b.if(s._`${x} !== undefined`,()=>b.assign(s._`${x}[${w}]`,S))}function f(b,x,w,S=a.Correct){let E=S===a.Correct?s.operators.EQ:s.operators.NEQ,k;switch(b){case"null":return s._`${x} ${E} null`;case"array":k=s._`Array.isArray(${x})`;break;case"object":k=s._`${x} && typeof ${x} == "object" && !Array.isArray(${x})`;break;case"integer":k=R(s._`!(${x} % 1) && !isNaN(${x})`);break;case"number":k=R();break;default:return s._`typeof ${x} ${E} ${b}`}return S===a.Correct?k:(0,s.not)(k);function R(O=s.nil){return(0,s.and)(s._`typeof ${x} == "number"`,O,w?s._`isFinite(${x})`:s.nil)}}t.checkDataType=f;function g(b,x,w,S){if(b.length===1)return f(b[0],x,w,S);let E,k=(0,i.toHash)(b);if(k.array&&k.object){let R=s._`typeof ${x} != "object"`;E=k.null?R:s._`!${x} || ${R}`,delete k.null,delete k.array,delete k.object}else E=s.nil;k.number&&delete k.integer;for(let R in k)E=(0,s.and)(E,f(R,x,w,S));return E}t.checkDataTypes=g;var v={message:({schema:b})=>`must be ${b}`,params:({schema:b,schemaValue:x})=>typeof b=="string"?s._`{type: ${b}}`:s._`{type: ${x}}`};function h(b){let x=y(b);(0,n.reportError)(x,v)}t.reportTypeError=h;function y(b){let{gen:x,data:w,schema:S}=b,E=(0,i.schemaRefOrVal)(b,S,"type");return{gen:x,keyword:"type",data:w,schema:S.type,schemaCode:E,schemaValue:E,parentSchema:S,params:{},it:b}}}),vhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=De(),r=rt();function n(i,a){let{properties:o,items:c}=i.schema;if(a==="object"&&o)for(let l in o)s(i,l,o[l].default);else a==="array"&&Array.isArray(c)&&c.forEach((l,u)=>s(i,u,l.default))}t.assignDefaults=n;function s(i,a,o){let{gen:c,compositeRule:l,data:u,opts:p}=i;if(o===void 0)return;let d=e._`${u}${(0,e.getProperty)(a)}`;if(l){(0,r.checkStrictMode)(i,`default is ignored for: ${d}`);return}let m=e._`${d} === undefined`;p.useDefaults==="empty"&&(m=e._`${m} || ${d} === null || ${d} === ""`),c.if(m,e._`${d} = ${(0,e.stringify)(o)}`)}}),_s=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;var e=De(),r=rt(),n=Xi(),s=rt();function i(b,x){let{gen:w,data:S,it:E}=b;w.if(p(w,S,x,E.opts.ownProperties),()=>{b.setParams({missingProperty:e._`${x}`},!0),b.error()})}t.checkReportMissingProp=i;function a({gen:b,data:x,it:{opts:w}},S,E){return(0,e.or)(...S.map(k=>(0,e.and)(p(b,x,k,w.ownProperties),e._`${E} = ${k}`)))}t.checkMissingProp=a;function o(b,x){b.setParams({missingProperty:x},!0),b.error()}t.reportMissingProp=o;function c(b){return b.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:e._`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function l(b,x,w){return e._`${c(b)}.call(${x}, ${w})`}t.isOwnProperty=l;function u(b,x,w,S){let E=e._`${x}${(0,e.getProperty)(w)} !== undefined`;return S?e._`${E} && ${l(b,x,w)}`:E}t.propertyInData=u;function p(b,x,w,S){let E=e._`${x}${(0,e.getProperty)(w)} === undefined`;return S?(0,e.or)(E,(0,e.not)(l(b,x,w))):E}t.noPropertyInData=p;function d(b){return b?Object.keys(b).filter(x=>x!=="__proto__"):[]}t.allSchemaProperties=d;function m(b,x){return d(x).filter(w=>!(0,r.alwaysValidSchema)(b,x[w]))}t.schemaProperties=m;function f({schemaCode:b,data:x,it:{gen:w,topSchemaRef:S,schemaPath:E,errorPath:k},it:R},O,C,U){let q=U?e._`${b}, ${x}, ${S}${E}`:x,Z=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,k)],[n.default.parentData,R.parentData],[n.default.parentDataProperty,R.parentDataProperty],[n.default.rootData,n.default.rootData]];R.opts.dynamicRef&&Z.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);let se=e._`${q}, ${w.object(...Z)}`;return C!==e.nil?e._`${O}.call(${C}, ${se})`:e._`${O}(${se})`}t.callValidateCode=f;var g=e._`new RegExp`;function v({gen:b,it:{opts:x}},w){let S=x.unicodeRegExp?"u":"",{regExp:E}=x.code,k=E(w,S);return b.scopeValue("pattern",{key:k.toString(),ref:k,code:e._`${E.code==="new RegExp"?g:(0,s.useFunc)(b,E)}(${w}, ${S})`})}t.usePattern=v;function h(b){let{gen:x,data:w,keyword:S,it:E}=b,k=x.name("valid");if(E.allErrors){let O=x.let("valid",!0);return R(()=>x.assign(O,!1)),O}return x.var(k,!0),R(()=>x.break()),k;function R(O){let C=x.const("len",e._`${w}.length`);x.forRange("i",0,C,U=>{b.subschema({keyword:S,dataProp:U,dataPropType:r.Type.Num},k),x.if((0,e.not)(k),O)})}}t.validateArray=h;function y(b){let{gen:x,schema:w,keyword:S,it:E}=b;if(!Array.isArray(w))throw Error("ajv implementation error");if(w.some(O=>(0,r.alwaysValidSchema)(E,O))&&!E.opts.unevaluated)return;let k=x.let("valid",!1),R=x.name("_valid");x.block(()=>w.forEach((O,C)=>{let U=b.subschema({keyword:S,schemaProp:C,compositeRule:!0},R);x.assign(k,e._`${k} || ${R}`),!b.mergeValidEvaluated(U,R)&&x.if((0,e.not)(k))})),b.result(k,()=>b.reset(),()=>b.error(!0))}t.validateUnion=y}),yhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=De(),r=Xi(),n=_s(),s=dy();function i(m,f){let{gen:g,keyword:v,schema:h,parentSchema:y,it:b}=m,x=f.macro.call(b.self,h,y,b),w=u(g,v,x);b.opts.validateSchema!==!1&&b.self.validateSchema(x,!0);let S=g.name("valid");m.subschema({schema:x,schemaPath:e.nil,errSchemaPath:`${b.errSchemaPath}/${v}`,topSchemaRef:w,compositeRule:!0},S),m.pass(S,()=>m.error(!0))}t.macroKeywordCode=i;function a(m,f){var g;let{gen:v,keyword:h,schema:y,parentSchema:b,$data:x,it:w}=m;l(w,f);let S=!x&&f.compile?f.compile.call(w.self,y,b,w):f.validate,E=u(v,h,S),k=v.let("valid");m.block$data(k,R),m.ok((g=f.valid)!==null&&g!==void 0?g:k);function R(){if(f.errors===!1)U(),f.modifying&&o(m),q(()=>m.error());else{let Z=f.async?O():C();f.modifying&&o(m),q(()=>c(m,Z))}}function O(){let Z=v.let("ruleErrs",null);return v.try(()=>U(e._`await `),se=>v.assign(k,!1).if(e._`${se} instanceof ${w.ValidationError}`,()=>v.assign(Z,e._`${se}.errors`),()=>v.throw(se))),Z}function C(){let Z=e._`${E}.errors`;return v.assign(Z,null),U(e.nil),Z}function U(Z=f.async?e._`await `:e.nil){let se=w.opts.passContext?r.default.this:r.default.self,K=!("compile"in f&&!x||f.schema===!1);v.assign(k,e._`${Z}${(0,n.callValidateCode)(m,E,se,K)}`,f.modifying)}function q(Z){var se;v.if((0,e.not)((se=f.valid)!==null&&se!==void 0?se:k),Z)}}t.funcKeywordCode=a;function o(m){let{gen:f,data:g,it:v}=m;f.if(v.parentData,()=>f.assign(g,e._`${v.parentData}[${v.parentDataProperty}]`))}function c(m,f){let{gen:g}=m;g.if(e._`Array.isArray(${f})`,()=>{g.assign(r.default.vErrors,e._`${r.default.vErrors} === null ? ${f} : ${r.default.vErrors}.concat(${f})`).assign(r.default.errors,e._`${r.default.vErrors}.length`),(0,s.extendErrors)(m)},()=>m.error())}function l({schemaEnv:m},f){if(f.async&&!m.$async)throw Error("async keyword in sync schema")}function u(m,f,g){if(g===void 0)throw Error(`keyword "${f}" failed to compile`);return m.scopeValue("keyword",typeof g=="function"?{ref:g}:{ref:g,code:(0,e.stringify)(g)})}function p(m,f,g=!1){return!f.length||f.some(v=>v==="array"?Array.isArray(m):v==="object"?m&&typeof m=="object"&&!Array.isArray(m):typeof m==v||g&&typeof m>"u")}t.validSchemaType=p;function d({schema:m,opts:f,self:g,errSchemaPath:v},h,y){if(Array.isArray(h.keyword)?!h.keyword.includes(y):h.keyword!==y)throw Error("ajv implementation error");let b=h.dependencies;if(b?.some(x=>!Object.prototype.hasOwnProperty.call(m,x)))throw Error(`parent schema must have dependencies of ${y}: ${b.join(",")}`);if(h.validateSchema&&!h.validateSchema(m[y])){let x=`keyword "${y}" value is invalid at path "${v}": `+g.errorsText(h.validateSchema.errors);if(f.validateSchema==="log")g.logger.error(x);else throw Error(x)}}t.validateKeywordUsage=d}),bhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=De(),r=rt();function n(a,{keyword:o,schemaProp:c,schema:l,schemaPath:u,errSchemaPath:p,topSchemaRef:d}){if(o!==void 0&&l!==void 0)throw Error('both "keyword" and "schema" passed, only one allowed');if(o!==void 0){let m=a.schema[o];return c===void 0?{schema:m,schemaPath:e._`${a.schemaPath}${(0,e.getProperty)(o)}`,errSchemaPath:`${a.errSchemaPath}/${o}`}:{schema:m[c],schemaPath:e._`${a.schemaPath}${(0,e.getProperty)(o)}${(0,e.getProperty)(c)}`,errSchemaPath:`${a.errSchemaPath}/${o}/${(0,r.escapeFragment)(c)}`}}if(l!==void 0){if(u===void 0||p===void 0||d===void 0)throw Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:l,schemaPath:u,topSchemaRef:d,errSchemaPath:p}}throw Error('either "keyword" or "schema" must be passed')}t.getSubschema=n;function s(a,o,{dataProp:c,dataPropType:l,data:u,dataTypes:p,propertyName:d}){if(u!==void 0&&c!==void 0)throw Error('both "data" and "dataProp" passed, only one allowed');let{gen:m}=o;if(c!==void 0){let{errorPath:g,dataPathArr:v,opts:h}=o,y=m.let("data",e._`${o.data}${(0,e.getProperty)(c)}`,!0);f(y),a.errorPath=e.str`${g}${(0,r.getErrorPath)(c,l,h.jsPropertySyntax)}`,a.parentDataProperty=e._`${c}`,a.dataPathArr=[...v,a.parentDataProperty]}if(u!==void 0){let g=u instanceof e.Name?u:m.let("data",u,!0);f(g),d!==void 0&&(a.propertyName=d)}p&&(a.dataTypes=p);function f(g){a.data=g,a.dataLevel=o.dataLevel+1,a.dataTypes=[],o.definedProperties=new Set,a.parentData=o.data,a.dataNames=[...o.dataNames,g]}}t.extendSubschemaData=s;function i(a,{jtdDiscriminator:o,jtdMetadata:c,compositeRule:l,createErrors:u,allErrors:p}){l!==void 0&&(a.compositeRule=l),u!==void 0&&(a.createErrors=u),p!==void 0&&(a.allErrors=p),a.jtdDiscriminator=o,a.jtdMetadata=c}t.extendSubschemaMode=i}),s8=ne((t,e)=>{e.exports=function r(n,s){if(n===s)return!0;if(n&&s&&typeof n=="object"&&typeof s=="object"){if(n.constructor!==s.constructor)return!1;var i,a,o;if(Array.isArray(n)){if(i=n.length,i!=s.length)return!1;for(a=i;a--!==0;)if(!r(n[a],s[a]))return!1;return!0}if(n.constructor===RegExp)return n.source===s.source&&n.flags===s.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===s.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===s.toString();if(o=Object.keys(n),i=o.length,i!==Object.keys(s).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(s,o[a]))return!1;for(a=i;a--!==0;){var c=o[a];if(!r(n[c],s[c]))return!1}return!0}return n!==n&&s!==s}}),xhe=ne((t,e)=>{var r=e.exports=function(i,a,o){typeof a=="function"&&(o=a,a={}),o=a.cb||o;var c=typeof o=="function"?o:o.pre||function(){},l=o.post||function(){};n(a,c,l,i,"",i)};r.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},r.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},r.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},r.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function n(i,a,o,c,l,u,p,d,m,f){if(c&&typeof c=="object"&&!Array.isArray(c)){a(c,l,u,p,d,m,f);for(var g in c){var v=c[g];if(Array.isArray(v)){if(g in r.arrayKeywords)for(var h=0;h{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=rt(),r=s8(),n=xhe(),s=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function i(v,h=!0){return typeof v=="boolean"?!0:h===!0?!o(v):h?c(v)<=h:!1}t.inlineRef=i;var a=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function o(v){for(let h in v){if(a.has(h))return!0;let y=v[h];if(Array.isArray(y)&&y.some(o)||typeof y=="object"&&o(y))return!0}return!1}function c(v){let h=0;for(let y in v){if(y==="$ref")return 1/0;if(h++,!s.has(y)&&(typeof v[y]=="object"&&(0,e.eachItem)(v[y],b=>h+=c(b)),h===1/0))return 1/0}return h}function l(v,h="",y){y!==!1&&(h=d(h));let b=v.parse(h);return u(v,b)}t.getFullPath=l;function u(v,h){return v.serialize(h).split("#")[0]+"#"}t._getFullPath=u;var p=/#\/?$/;function d(v){return v?v.replace(p,""):""}t.normalizeId=d;function m(v,h,y){return y=d(y),v.resolve(h,y)}t.resolveUrl=m;var f=/^[a-z_][-a-z0-9._]*$/i;function g(v,h){if(typeof v=="boolean")return{};let{schemaId:y,uriResolver:b}=this.opts,x=d(v[y]||h),w={"":x},S=l(b,x,!1),E={},k=new Set;return n(v,{allKeys:!0},(C,U,q,Z)=>{if(Z===void 0)return;let se=S+U,K=w[Z];typeof C[y]=="string"&&(K=yt.call(this,C[y])),Cr.call(this,C.$anchor),Cr.call(this,C.$dynamicAnchor),w[U]=K;function yt(Fe){let V=this.opts.uriResolver.resolve;if(Fe=d(K?V(K,Fe):Fe),k.has(Fe))throw O(Fe);k.add(Fe);let A=this.refs[Fe];return typeof A=="string"&&(A=this.refs[A]),typeof A=="object"?R(C,A.schema,Fe):Fe!==d(se)&&(Fe[0]==="#"?(R(C,E[Fe],Fe),E[Fe]=C):this.refs[Fe]=se),Fe}function Cr(Fe){if(typeof Fe=="string"){if(!f.test(Fe))throw Error(`invalid anchor "${Fe}"`);yt.call(this,`#${Fe}`)}}}),E;function R(C,U,q){if(U!==void 0&&!r(C,U))throw O(q)}function O(C){return Error(`reference "${C}" resolves to more than one schema`)}}t.getSchemaRefs=g}),fy=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=ghe(),r=Ev(),n=n8(),s=Ev(),i=vhe(),a=yhe(),o=bhe(),c=De(),l=Xi(),u=my(),p=rt(),d=dy();function m(N){if(S(N)&&(k(N),w(N))){h(N);return}f(N,()=>(0,e.topBoolOrEmptySchema)(N))}t.validateFunctionCode=m;function f({gen:N,validateName:M,schema:W,schemaEnv:Y,opts:ge},Le){ge.code.es5?N.func(M,c._`${l.default.data}, ${l.default.valCxt}`,Y.$async,()=>{N.code(c._`"use strict"; ${b(W,ge)}`),v(N,ge),N.code(Le)}):N.func(M,c._`${l.default.data}, ${g(ge)}`,Y.$async,()=>N.code(b(W,ge)).code(Le))}function g(N){return c._`{${l.default.instancePath}="", ${l.default.parentData}, ${l.default.parentDataProperty}, ${l.default.rootData}=${l.default.data}${N.dynamicRef?c._`, ${l.default.dynamicAnchors}={}`:c.nil}}={}`}function v(N,M){N.if(l.default.valCxt,()=>{N.var(l.default.instancePath,c._`${l.default.valCxt}.${l.default.instancePath}`),N.var(l.default.parentData,c._`${l.default.valCxt}.${l.default.parentData}`),N.var(l.default.parentDataProperty,c._`${l.default.valCxt}.${l.default.parentDataProperty}`),N.var(l.default.rootData,c._`${l.default.valCxt}.${l.default.rootData}`),M.dynamicRef&&N.var(l.default.dynamicAnchors,c._`${l.default.valCxt}.${l.default.dynamicAnchors}`)},()=>{N.var(l.default.instancePath,c._`""`),N.var(l.default.parentData,c._`undefined`),N.var(l.default.parentDataProperty,c._`undefined`),N.var(l.default.rootData,l.default.data),M.dynamicRef&&N.var(l.default.dynamicAnchors,c._`{}`)})}function h(N){let{schema:M,opts:W,gen:Y}=N;f(N,()=>{W.$comment&&M.$comment&&Z(N),C(N),Y.let(l.default.vErrors,null),Y.let(l.default.errors,0),W.unevaluated&&y(N),R(N),se(N)})}function y(N){let{gen:M,validateName:W}=N;N.evaluated=M.const("evaluated",c._`${W}.evaluated`),M.if(c._`${N.evaluated}.dynamicProps`,()=>M.assign(c._`${N.evaluated}.props`,c._`undefined`)),M.if(c._`${N.evaluated}.dynamicItems`,()=>M.assign(c._`${N.evaluated}.items`,c._`undefined`))}function b(N,M){let W=typeof N=="object"&&N[M.schemaId];return W&&(M.code.source||M.code.process)?c._`/*# sourceURL=${W} */`:c.nil}function x(N,M){if(S(N)&&(k(N),w(N))){E(N,M);return}(0,e.boolOrEmptySchema)(N,M)}function w({schema:N,self:M}){if(typeof N=="boolean")return!N;for(let W in N)if(M.RULES.all[W])return!0;return!1}function S(N){return typeof N.schema!="boolean"}function E(N,M){let{schema:W,gen:Y,opts:ge}=N;ge.$comment&&W.$comment&&Z(N),U(N),q(N);let Le=Y.const("_errs",l.default.errors);R(N,Le),Y.var(M,c._`${Le} === ${l.default.errors}`)}function k(N){(0,p.checkUnknownRules)(N),O(N)}function R(N,M){if(N.opts.jtd)return yt(N,[],!1,M);let W=(0,r.getSchemaTypes)(N.schema),Y=(0,r.coerceAndCheckDataType)(N,W);yt(N,W,!Y,M)}function O(N){let{schema:M,errSchemaPath:W,opts:Y,self:ge}=N;M.$ref&&Y.ignoreKeywordsWithRef&&(0,p.schemaHasRulesButRef)(M,ge.RULES)&&ge.logger.warn(`$ref: keywords ignored in schema at path "${W}"`)}function C(N){let{schema:M,opts:W}=N;M.default!==void 0&&W.useDefaults&&W.strictSchema&&(0,p.checkStrictMode)(N,"default is ignored in the schema root")}function U(N){let M=N.schema[N.opts.schemaId];M&&(N.baseId=(0,u.resolveUrl)(N.opts.uriResolver,N.baseId,M))}function q(N){if(N.schema.$async&&!N.schemaEnv.$async)throw Error("async schema in sync schema")}function Z({gen:N,schemaEnv:M,schema:W,errSchemaPath:Y,opts:ge}){let Le=W.$comment;if(ge.$comment===!0)N.code(c._`${l.default.self}.logger.log(${Le})`);else if(typeof ge.$comment=="function"){let yr=c.str`${Y}/$comment`,Xn=N.scopeValue("root",{ref:M.root});N.code(c._`${l.default.self}.opts.$comment(${Le}, ${yr}, ${Xn}.schema)`)}}function se(N){let{gen:M,schemaEnv:W,validateName:Y,ValidationError:ge,opts:Le}=N;W.$async?M.if(c._`${l.default.errors} === 0`,()=>M.return(l.default.data),()=>M.throw(c._`new ${ge}(${l.default.vErrors})`)):(M.assign(c._`${Y}.errors`,l.default.vErrors),Le.unevaluated&&K(N),M.return(c._`${l.default.errors} === 0`))}function K({gen:N,evaluated:M,props:W,items:Y}){W instanceof c.Name&&N.assign(c._`${M}.props`,W),Y instanceof c.Name&&N.assign(c._`${M}.items`,Y)}function yt(N,M,W,Y){let{gen:ge,schema:Le,data:yr,allErrors:Xn,opts:tn,self:rn}=N,{RULES:br}=rn;if(Le.$ref&&(tn.ignoreKeywordsWithRef||!(0,p.schemaHasRulesButRef)(Le,br))){ge.block(()=>he(N,"$ref",br.all.$ref.definition));return}tn.jtd||Fe(N,M),ge.block(()=>{for(let On of br.rules)So(On);So(br.post)});function So(On){(0,n.shouldUseGroup)(Le,On)&&(On.type?(ge.if((0,s.checkDataType)(On.type,yr,tn.strictNumbers)),Cr(N,On),M.length===1&&M[0]===On.type&&W&&(ge.else(),(0,s.reportTypeError)(N)),ge.endIf()):Cr(N,On),Xn||ge.if(c._`${l.default.errors} === ${Y||0}`))}}function Cr(N,M){let{gen:W,schema:Y,opts:{useDefaults:ge}}=N;ge&&(0,i.assignDefaults)(N,M.type),W.block(()=>{for(let Le of M.rules)(0,n.shouldUseRule)(Y,Le)&&he(N,Le.keyword,Le.definition,M.type)})}function Fe(N,M){N.schemaEnv.meta||!N.opts.strictTypes||(V(N,M),!N.opts.allowUnionTypes&&A(N,M),B(N,N.dataTypes))}function V(N,M){if(M.length){if(!N.dataTypes.length){N.dataTypes=M;return}M.forEach(W=>{T(N.dataTypes,W)||H(N,`type "${W}" not allowed by context "${N.dataTypes.join(",")}"`)}),I(N,M)}}function A(N,M){M.length>1&&!(M.length===2&&M.includes("null"))&&H(N,"use allowUnionTypes to allow union type keyword")}function B(N,M){let W=N.self.RULES.all;for(let Y in W){let ge=W[Y];if(typeof ge=="object"&&(0,n.shouldUseRule)(N.schema,ge)){let{type:Le}=ge.definition;Le.length&&!Le.some(yr=>z(M,yr))&&H(N,`missing type "${Le.join(",")}" for keyword "${Y}"`)}}}function z(N,M){return N.includes(M)||M==="number"&&N.includes("integer")}function T(N,M){return N.includes(M)||M==="integer"&&N.includes("number")}function I(N,M){let W=[];for(let Y of N.dataTypes)T(M,Y)?W.push(Y):M.includes("integer")&&Y==="number"&&W.push("integer");N.dataTypes=W}function H(N,M){let W=N.schemaEnv.baseId+N.errSchemaPath;M+=` at "${W}" (strictTypes)`,(0,p.checkStrictMode)(N,M,N.opts.strictTypes)}class pe{constructor(M,W,Y){if((0,a.validateKeywordUsage)(M,W,Y),this.gen=M.gen,this.allErrors=M.allErrors,this.keyword=Y,this.data=M.data,this.schema=M.schema[Y],this.$data=W.$data&&M.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,p.schemaRefOrVal)(M,this.schema,Y,this.$data),this.schemaType=W.schemaType,this.parentSchema=M.schema,this.params={},this.it=M,this.def=W,this.$data)this.schemaCode=M.gen.const("vSchema",Jt(this.$data,M));else if(this.schemaCode=this.schemaValue,!(0,a.validSchemaType)(this.schema,W.schemaType,W.allowUndefined))throw Error(`${Y} value must be ${JSON.stringify(W.schemaType)}`);("code"in W?W.trackErrors:W.errors!==!1)&&(this.errsCount=M.gen.const("_errs",l.default.errors))}result(M,W,Y){this.failResult((0,c.not)(M),W,Y)}failResult(M,W,Y){this.gen.if(M),Y?Y():this.error(),W?(this.gen.else(),W(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(M,W){this.failResult((0,c.not)(M),void 0,W)}fail(M){if(M===void 0){this.error(),!this.allErrors&&this.gen.if(!1);return}this.gen.if(M),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(M){if(!this.$data)return this.fail(M);let{schemaCode:W}=this;this.fail(c._`${W} !== undefined && (${(0,c.or)(this.invalid$data(),M)})`)}error(M,W,Y){if(W){this.setParams(W),this._error(M,Y),this.setParams({});return}this._error(M,Y)}_error(M,W){(M?d.reportExtraError:d.reportError)(this,this.def.error,W)}$dataError(){(0,d.reportError)(this,this.def.$dataError||d.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add "trackErrors" to keyword definition');(0,d.resetErrorsCount)(this.gen,this.errsCount)}ok(M){this.allErrors||this.gen.if(M)}setParams(M,W){W?Object.assign(this.params,M):this.params=M}block$data(M,W,Y=c.nil){this.gen.block(()=>{this.check$data(M,Y),W()})}check$data(M=c.nil,W=c.nil){if(!this.$data)return;let{gen:Y,schemaCode:ge,schemaType:Le,def:yr}=this;Y.if((0,c.or)(c._`${ge} === undefined`,W)),M!==c.nil&&Y.assign(M,!0),(Le.length||yr.validateSchema)&&(Y.elseIf(this.invalid$data()),this.$dataError(),M!==c.nil&&Y.assign(M,!1)),Y.else()}invalid$data(){let{gen:M,schemaCode:W,schemaType:Y,def:ge,it:Le}=this;return(0,c.or)(yr(),Xn());function yr(){if(Y.length){if(!(W instanceof c.Name))throw Error("ajv implementation error");let tn=Array.isArray(Y)?Y:[Y];return c._`${(0,s.checkDataTypes)(tn,W,Le.opts.strictNumbers,s.DataType.Wrong)}`}return c.nil}function Xn(){if(ge.validateSchema){let tn=M.scopeValue("validate$data",{ref:ge.validateSchema});return c._`!${tn}(${W})`}return c.nil}}subschema(M,W){let Y=(0,o.getSubschema)(this.it,M);(0,o.extendSubschemaData)(Y,this.it,M),(0,o.extendSubschemaMode)(Y,M);let ge={...this.it,...Y,items:void 0,props:void 0};return x(ge,W),ge}mergeEvaluated(M,W){let{it:Y,gen:ge}=this;Y.opts.unevaluated&&(Y.props!==!0&&M.props!==void 0&&(Y.props=p.mergeEvaluated.props(ge,M.props,Y.props,W)),Y.items!==!0&&M.items!==void 0&&(Y.items=p.mergeEvaluated.items(ge,M.items,Y.items,W)))}mergeValidEvaluated(M,W){let{it:Y,gen:ge}=this;if(Y.opts.unevaluated&&(Y.props!==!0||Y.items!==!0))return ge.if(W,()=>this.mergeEvaluated(M,c.Name)),!0}}t.KeywordCxt=pe;function he(N,M,W,Y){let ge=new pe(N,W,M);"code"in W?W.code(ge,Y):ge.$data&&W.validate?(0,a.funcKeywordCode)(ge,W):"macro"in W?(0,a.macroKeywordCode)(ge,W):(W.compile||W.validate)&&(0,a.funcKeywordCode)(ge,W)}var st=/^\/(?:[^~]|~0|~1)*$/,Ye=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Jt(N,{dataLevel:M,dataNames:W,dataPathArr:Y}){let ge,Le;if(N==="")return l.default.rootData;if(N[0]==="/"){if(!st.test(N))throw Error(`Invalid JSON-pointer: ${N}`);ge=N,Le=l.default.rootData}else{let rn=Ye.exec(N);if(!rn)throw Error(`Invalid JSON-pointer: ${N}`);let br=+rn[1];if(ge=rn[2],ge==="#"){if(br>=M)throw Error(tn("property/index",br));return Y[M-br]}if(br>M)throw Error(tn("data",br));if(Le=W[M-br],!ge)return Le}let yr=Le,Xn=ge.split("/");for(let rn of Xn)rn&&(Le=c._`${Le}${(0,c.getProperty)((0,p.unescapeJsonPointer)(rn))}`,yr=c._`${yr} && ${Le}`);return yr;function tn(rn,br){return`Cannot access ${rn} ${br} levels up, current level is ${M}`}}t.getData=Jt}),mT=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});class e extends Error{constructor(n){super("validation failed"),this.errors=n,this.ajv=this.validation=!0}}t.default=e}),hy=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=my();class r extends Error{constructor(s,i,a,o){super(o||`can't resolve reference ${a} from id ${i}`),this.missingRef=(0,e.resolveUrl)(s,i,a),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(s,this.missingRef))}}t.default=r}),fT=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=De(),r=mT(),n=Xi(),s=my(),i=rt(),a=fy();class o{constructor(y){var b;this.refs={},this.dynamicAnchors={};let x;typeof y.schema=="object"&&(x=y.schema),this.schema=y.schema,this.schemaId=y.schemaId,this.root=y.root||this,this.baseId=(b=y.baseId)!==null&&b!==void 0?b:(0,s.normalizeId)(x?.[y.schemaId||"$id"]),this.schemaPath=y.schemaPath,this.localRefs=y.localRefs,this.meta=y.meta,this.$async=x?.$async,this.refs={}}}t.SchemaEnv=o;function c(h){let y=p.call(this,h);if(y)return y;let b=(0,s.getFullPath)(this.opts.uriResolver,h.root.baseId),{es5:x,lines:w}=this.opts.code,{ownProperties:S}=this.opts,E=new e.CodeGen(this.scope,{es5:x,lines:w,ownProperties:S}),k;h.$async&&(k=E.scopeValue("Error",{ref:r.default,code:e._`require("ajv/dist/runtime/validation_error").default`}));let R=E.scopeName("validate");h.validateName=R;let O={gen:E,allErrors:this.opts.allErrors,data:n.default.data,parentData:n.default.parentData,parentDataProperty:n.default.parentDataProperty,dataNames:[n.default.data],dataPathArr:[e.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:E.scopeValue("schema",this.opts.code.source===!0?{ref:h.schema,code:(0,e.stringify)(h.schema)}:{ref:h.schema}),validateName:R,ValidationError:k,schema:h.schema,schemaEnv:h,rootId:b,baseId:h.baseId||b,schemaPath:e.nil,errSchemaPath:h.schemaPath||(this.opts.jtd?"":"#"),errorPath:e._`""`,opts:this.opts,self:this},C;try{this._compilations.add(h),(0,a.validateFunctionCode)(O),E.optimize(this.opts.code.optimize);let U=E.toString();C=`${E.scopeRefs(n.default.scope)}return ${U}`,this.opts.code.process&&(C=this.opts.code.process(C,h));let q=Function(`${n.default.self}`,`${n.default.scope}`,C)(this,this.scope.get());if(this.scope.value(R,{ref:q}),q.errors=null,q.schema=h.schema,q.schemaEnv=h,h.$async&&(q.$async=!0),this.opts.code.source===!0&&(q.source={validateName:R,validateCode:U,scopeValues:E._values}),this.opts.unevaluated){let{props:Z,items:se}=O;q.evaluated={props:Z instanceof e.Name?void 0:Z,items:se instanceof e.Name?void 0:se,dynamicProps:Z instanceof e.Name,dynamicItems:se instanceof e.Name},q.source&&(q.source.evaluated=(0,e.stringify)(q.evaluated))}return h.validate=q,h}catch(U){throw delete h.validate,delete h.validateName,C&&this.logger.error("Error compiling schema, function code:",C),U}finally{this._compilations.delete(h)}}t.compileSchema=c;function l(h,y,b){var x;b=(0,s.resolveUrl)(this.opts.uriResolver,y,b);let w=h.refs[b];if(w)return w;let S=m.call(this,h,b);if(S===void 0){let E=(x=h.localRefs)===null||x===void 0?void 0:x[b],{schemaId:k}=this.opts;E&&(S=new o({schema:E,schemaId:k,root:h,baseId:y}))}if(S!==void 0)return h.refs[b]=u.call(this,S)}t.resolveRef=l;function u(h){return(0,s.inlineRef)(h.schema,this.opts.inlineRefs)?h.schema:h.validate?h:c.call(this,h)}function p(h){for(let y of this._compilations)if(d(y,h))return y}t.getCompilingSchema=p;function d(h,y){return h.schema===y.schema&&h.root===y.root&&h.baseId===y.baseId}function m(h,y){let b;for(;typeof(b=this.refs[y])=="string";)y=b;return b||this.schemas[y]||f.call(this,h,y)}function f(h,y){let b=this.opts.uriResolver.parse(y),x=(0,s._getFullPath)(this.opts.uriResolver,b),w=(0,s.getFullPath)(this.opts.uriResolver,h.baseId,void 0);if(Object.keys(h.schema).length>0&&x===w)return v.call(this,b,h);let S=(0,s.normalizeId)(x),E=this.refs[S]||this.schemas[S];if(typeof E=="string"){let k=f.call(this,h,E);return typeof k?.schema!="object"?void 0:v.call(this,b,k)}if(typeof E?.schema=="object"){if(E.validate||c.call(this,E),S===(0,s.normalizeId)(y)){let{schema:k}=E,{schemaId:R}=this.opts,O=k[R];return O&&(w=(0,s.resolveUrl)(this.opts.uriResolver,w,O)),new o({schema:k,schemaId:R,root:h,baseId:w})}return v.call(this,b,E)}}t.resolveSchema=f;var g=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function v(h,{baseId:y,schema:b,root:x}){var w;if(((w=h.fragment)===null||w===void 0?void 0:w[0])!=="/")return;for(let k of h.fragment.slice(1).split("/")){if(typeof b=="boolean")return;let R=b[(0,i.unescapeFragment)(k)];if(R===void 0)return;b=R;let O=typeof b=="object"&&b[this.opts.schemaId];!g.has(k)&&O&&(y=(0,s.resolveUrl)(this.opts.uriResolver,y,O))}let S;if(typeof b!="boolean"&&b.$ref&&!(0,i.schemaHasRulesButRef)(b,this.RULES)){let k=(0,s.resolveUrl)(this.opts.uriResolver,y,b.$ref);S=f.call(this,x,k)}let{schemaId:E}=this.opts;if(S=S||new o({schema:b,schemaId:E,root:x,baseId:y}),S.schema!==S.root.schema)return S}}),_he=ne((t,e)=>{e.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),whe=ne((t,e)=>{var r={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};e.exports={HEX:r}}),She=ne((t,e)=>{var{HEX:r}=whe(),n=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function s(h){if(l(h,".")<3)return{host:h,isIPV4:!1};let y=h.match(n)||[],[b]=y;return b?{host:c(b,"."),isIPV4:!0}:{host:h,isIPV4:!1}}function i(h,y=!1){let b="",x=!0;for(let w of h){if(r[w]===void 0)return;w!=="0"&&x===!0&&(x=!1),x||(b+=w)}return y&&b.length===0&&(b="0"),b}function a(h){let y=0,b={error:!1,address:"",zone:""},x=[],w=[],S=!1,E=!1,k=!1;function R(){if(w.length){if(S===!1){let O=i(w);if(O!==void 0)x.push(O);else return b.error=!0,!1}w.length=0}return!0}for(let O=0;O7){b.error=!0;break}O-1>=0&&h[O-1]===":"&&(E=!0);continue}else if(C==="%"){if(!R())break;S=!0}else{w.push(C);continue}}return w.length&&(S?b.zone=w.join(""):k?x.push(w.join("")):x.push(i(w))),b.address=x.join(""),b}function o(h){if(l(h,":")<2)return{host:h,isIPV6:!1};let y=a(h);if(y.error)return{host:h,isIPV6:!1};{let{address:b,address:x}=y;return y.zone&&(b+="%"+y.zone,x+="%25"+y.zone),{host:b,escapedHost:x,isIPV6:!0}}}function c(h,y){let b="",x=!0,w=h.length;for(let S=0;S{var r=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,n=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function s(x){return typeof x.secure=="boolean"?x.secure:String(x.scheme).toLowerCase()==="wss"}function i(x){return x.host||(x.error=x.error||"HTTP URIs must have a host."),x}function a(x){let w=String(x.scheme).toLowerCase()==="https";return(x.port===(w?443:80)||x.port==="")&&(x.port=void 0),x.path||(x.path="/"),x}function o(x){return x.secure=s(x),x.resourceName=(x.path||"/")+(x.query?"?"+x.query:""),x.path=void 0,x.query=void 0,x}function c(x){if((x.port===(s(x)?443:80)||x.port==="")&&(x.port=void 0),typeof x.secure=="boolean"&&(x.scheme=x.secure?"wss":"ws",x.secure=void 0),x.resourceName){let[w,S]=x.resourceName.split("?");x.path=w&&w!=="/"?w:void 0,x.query=S,x.resourceName=void 0}return x.fragment=void 0,x}function l(x,w){if(!x.path)return x.error="URN can not be parsed",x;let S=x.path.match(n);if(S){let E=w.scheme||x.scheme||"urn";x.nid=S[1].toLowerCase(),x.nss=S[2];let k=`${E}:${w.nid||x.nid}`,R=b[k];x.path=void 0,R&&(x=R.parse(x,w))}else x.error=x.error||"URN can not be parsed.";return x}function u(x,w){let S=w.scheme||x.scheme||"urn",E=x.nid.toLowerCase(),k=`${S}:${w.nid||E}`,R=b[k];R&&(x=R.serialize(x,w));let O=x,C=x.nss;return O.path=`${E||w.nid}:${C}`,w.skipEscape=!0,O}function p(x,w){let S=x;return S.uuid=S.nss,S.nss=void 0,!w.tolerant&&(!S.uuid||!r.test(S.uuid))&&(S.error=S.error||"UUID is not valid."),S}function d(x){let w=x;return w.nss=(x.uuid||"").toLowerCase(),w}var m={scheme:"http",domainHost:!0,parse:i,serialize:a},f={scheme:"https",domainHost:m.domainHost,parse:i,serialize:a},g={scheme:"ws",domainHost:!0,parse:o,serialize:c},v={scheme:"wss",domainHost:g.domainHost,parse:g.parse,serialize:g.serialize},h={scheme:"urn",parse:l,serialize:u,skipNormalize:!0},y={scheme:"urn:uuid",parse:p,serialize:d,skipNormalize:!0},b={http:m,https:f,ws:g,wss:v,urn:h,"urn:uuid":y};e.exports=b}),khe=ne((t,e)=>{var{normalizeIPv6:r,normalizeIPv4:n,removeDotSegments:s,recomposeAuthority:i,normalizeComponentEncoding:a}=She(),o=Ehe();function c(y,b){return typeof y=="string"?y=d(v(y,b),b):typeof y=="object"&&(y=v(d(y,b),b)),y}function l(y,b,x){let w=Object.assign({scheme:"null"},x),S=u(v(y,w),v(b,w),w,!0);return d(S,{...w,skipEscape:!0})}function u(y,b,x,w){let S={};return w||(y=v(d(y,x),x),b=v(d(b,x),x)),x=x||{},!x.tolerant&&b.scheme?(S.scheme=b.scheme,S.userinfo=b.userinfo,S.host=b.host,S.port=b.port,S.path=s(b.path||""),S.query=b.query):(b.userinfo!==void 0||b.host!==void 0||b.port!==void 0?(S.userinfo=b.userinfo,S.host=b.host,S.port=b.port,S.path=s(b.path||""),S.query=b.query):(b.path?(b.path.charAt(0)==="/"?S.path=s(b.path):((y.userinfo!==void 0||y.host!==void 0||y.port!==void 0)&&!y.path?S.path="/"+b.path:y.path?S.path=y.path.slice(0,y.path.lastIndexOf("/")+1)+b.path:S.path=b.path,S.path=s(S.path)),S.query=b.query):(S.path=y.path,b.query!==void 0?S.query=b.query:S.query=y.query),S.userinfo=y.userinfo,S.host=y.host,S.port=y.port),S.scheme=y.scheme),S.fragment=b.fragment,S}function p(y,b,x){return typeof y=="string"?(y=unescape(y),y=d(a(v(y,x),!0),{...x,skipEscape:!0})):typeof y=="object"&&(y=d(a(y,!0),{...x,skipEscape:!0})),typeof b=="string"?(b=unescape(b),b=d(a(v(b,x),!0),{...x,skipEscape:!0})):typeof b=="object"&&(b=d(a(b,!0),{...x,skipEscape:!0})),y.toLowerCase()===b.toLowerCase()}function d(y,b){let x={host:y.host,scheme:y.scheme,userinfo:y.userinfo,port:y.port,path:y.path,query:y.query,nid:y.nid,nss:y.nss,uuid:y.uuid,fragment:y.fragment,reference:y.reference,resourceName:y.resourceName,secure:y.secure,error:""},w=Object.assign({},b),S=[],E=o[(w.scheme||x.scheme||"").toLowerCase()];E&&E.serialize&&E.serialize(x,w),x.path!==void 0&&(w.skipEscape?x.path=unescape(x.path):(x.path=escape(x.path),x.scheme!==void 0&&(x.path=x.path.split("%3A").join(":")))),w.reference!=="suffix"&&x.scheme&&S.push(x.scheme,":");let k=i(x);if(k!==void 0&&(w.reference!=="suffix"&&S.push("//"),S.push(k),x.path&&x.path.charAt(0)!=="/"&&S.push("/")),x.path!==void 0){let R=x.path;!w.absolutePath&&(!E||!E.absolutePath)&&(R=s(R)),k===void 0&&(R=R.replace(/^\/\//u,"/%2F")),S.push(R)}return x.query!==void 0&&S.push("?",x.query),x.fragment!==void 0&&S.push("#",x.fragment),S.join("")}var m=Array.from({length:127},(y,b)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(b)));function f(y){let b=0;for(let x=0,w=y.length;x126||m[b])return!0;return!1}var g=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function v(y,b){let x=Object.assign({},b),w={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},S=y.indexOf("%")!==-1,E=!1;x.reference==="suffix"&&(y=(x.scheme?x.scheme+":":"")+"//"+y);let k=y.match(g);if(k){if(w.scheme=k[1],w.userinfo=k[3],w.host=k[4],w.port=parseInt(k[5],10),w.path=k[6]||"",w.query=k[7],w.fragment=k[8],isNaN(w.port)&&(w.port=k[5]),w.host){let O=n(w.host);if(O.isIPV4===!1){let C=r(O.host);w.host=C.host.toLowerCase(),E=C.isIPV6}else w.host=O.host,E=!0}w.scheme===void 0&&w.userinfo===void 0&&w.host===void 0&&w.port===void 0&&w.query===void 0&&!w.path?w.reference="same-document":w.scheme===void 0?w.reference="relative":w.fragment===void 0?w.reference="absolute":w.reference="uri",x.reference&&x.reference!=="suffix"&&x.reference!==w.reference&&(w.error=w.error||"URI is not a "+x.reference+" reference.");let R=o[(x.scheme||w.scheme||"").toLowerCase()];if(!x.unicodeSupport&&(!R||!R.unicodeSupport)&&w.host&&(x.domainHost||R&&R.domainHost)&&E===!1&&f(w.host))try{w.host=URL.domainToASCII(w.host.toLowerCase())}catch(O){w.error=w.error||"Host's domain name can not be converted to ASCII: "+O}(!R||R&&!R.skipNormalize)&&(S&&w.scheme!==void 0&&(w.scheme=unescape(w.scheme)),S&&w.host!==void 0&&(w.host=unescape(w.host)),w.path&&(w.path=escape(unescape(w.path))),w.fragment&&(w.fragment=encodeURI(decodeURIComponent(w.fragment)))),R&&R.parse&&R.parse(w,x)}else w.error=w.error||"URI can not be parsed.";return w}var h={SCHEMES:o,normalize:c,resolve:l,resolveComponents:u,equal:p,serialize:d,parse:v};e.exports=h,e.exports.default=h,e.exports.fastUri=h}),The=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=khe();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),Rhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=fy();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=De();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});var n=mT(),s=hy(),i=r8(),a=fT(),o=De(),c=my(),l=Ev(),u=rt(),p=_he(),d=The(),m=(V,A)=>new RegExp(V,A);m.code="new RegExp";var f=["removeAdditional","useDefaults","coerceTypes"],g=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),v={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},h={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},y=200;function b(V){var A,B,z,T,I,H,pe,he,st,Ye,Jt,N,M,W,Y,ge,Le,yr,Xn,tn,rn,br,So,On,tx;let Ul=V.strict,rx=(A=V.code)===null||A===void 0?void 0:A.optimize,SP=rx===!0||rx===void 0?1:rx||0,EP=(z=(B=V.code)===null||B===void 0?void 0:B.regExp)!==null&&z!==void 0?z:m,WG=(T=V.uriResolver)!==null&&T!==void 0?T:d.default;return{strictSchema:(H=(I=V.strictSchema)!==null&&I!==void 0?I:Ul)!==null&&H!==void 0?H:!0,strictNumbers:(he=(pe=V.strictNumbers)!==null&&pe!==void 0?pe:Ul)!==null&&he!==void 0?he:!0,strictTypes:(Ye=(st=V.strictTypes)!==null&&st!==void 0?st:Ul)!==null&&Ye!==void 0?Ye:"log",strictTuples:(N=(Jt=V.strictTuples)!==null&&Jt!==void 0?Jt:Ul)!==null&&N!==void 0?N:"log",strictRequired:(W=(M=V.strictRequired)!==null&&M!==void 0?M:Ul)!==null&&W!==void 0?W:!1,code:V.code?{...V.code,optimize:SP,regExp:EP}:{optimize:SP,regExp:EP},loopRequired:(Y=V.loopRequired)!==null&&Y!==void 0?Y:y,loopEnum:(ge=V.loopEnum)!==null&&ge!==void 0?ge:y,meta:(Le=V.meta)!==null&&Le!==void 0?Le:!0,messages:(yr=V.messages)!==null&&yr!==void 0?yr:!0,inlineRefs:(Xn=V.inlineRefs)!==null&&Xn!==void 0?Xn:!0,schemaId:(tn=V.schemaId)!==null&&tn!==void 0?tn:"$id",addUsedSchema:(rn=V.addUsedSchema)!==null&&rn!==void 0?rn:!0,validateSchema:(br=V.validateSchema)!==null&&br!==void 0?br:!0,validateFormats:(So=V.validateFormats)!==null&&So!==void 0?So:!0,unicodeRegExp:(On=V.unicodeRegExp)!==null&&On!==void 0?On:!0,int32range:(tx=V.int32range)!==null&&tx!==void 0?tx:!0,uriResolver:WG}}class x{constructor(A={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,A=this.opts={...A,...b(A)};let{es5:B,lines:z}=this.opts.code;this.scope=new o.ValueScope({scope:{},prefixes:g,es5:B,lines:z}),this.logger=U(A.logger);let T=A.validateFormats;A.validateFormats=!1,this.RULES=(0,i.getRules)(),w.call(this,v,A,"NOT SUPPORTED"),w.call(this,h,A,"DEPRECATED","warn"),this._metaOpts=O.call(this),A.formats&&k.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),A.keywords&&R.call(this,A.keywords),typeof A.meta=="object"&&this.addMetaSchema(A.meta),E.call(this),A.validateFormats=T}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:A,meta:B,schemaId:z}=this.opts,T=p;z==="id"&&(T={...p},T.id=T.$id,delete T.$id),B&&A&&this.addMetaSchema(T,T[z],!1)}defaultMeta(){let{meta:A,schemaId:B}=this.opts;return this.opts.defaultMeta=typeof A=="object"?A[B]||A:void 0}validate(A,B){let z;if(typeof A=="string"){if(z=this.getSchema(A),!z)throw Error(`no schema with key or ref "${A}"`)}else z=this.compile(A);let T=z(B);return"$async"in z||(this.errors=z.errors),T}compile(A,B){let z=this._addSchema(A,B);return z.validate||this._compileSchemaEnv(z)}compileAsync(A,B){if(typeof this.opts.loadSchema!="function")throw Error("options.loadSchema should be a function");let{loadSchema:z}=this.opts;return T.call(this,A,B);async function T(Ye,Jt){await I.call(this,Ye.$schema);let N=this._addSchema(Ye,Jt);return N.validate||H.call(this,N)}async function I(Ye){Ye&&!this.getSchema(Ye)&&await T.call(this,{$ref:Ye},!0)}async function H(Ye){try{return this._compileSchemaEnv(Ye)}catch(Jt){if(!(Jt instanceof s.default))throw Jt;return pe.call(this,Jt),await he.call(this,Jt.missingSchema),H.call(this,Ye)}}function pe({missingSchema:Ye,missingRef:Jt}){if(this.refs[Ye])throw Error(`AnySchema ${Ye} is loaded but ${Jt} cannot be resolved`)}async function he(Ye){let Jt=await st.call(this,Ye);this.refs[Ye]||await I.call(this,Jt.$schema),this.refs[Ye]||this.addSchema(Jt,Ye,B)}async function st(Ye){let Jt=this._loading[Ye];if(Jt)return Jt;try{return await(this._loading[Ye]=z(Ye))}finally{delete this._loading[Ye]}}}addSchema(A,B,z,T=this.opts.validateSchema){if(Array.isArray(A)){for(let H of A)this.addSchema(H,void 0,z,T);return this}let I;if(typeof A=="object"){let{schemaId:H}=this.opts;if(I=A[H],I!==void 0&&typeof I!="string")throw Error(`schema ${H} must be string`)}return B=(0,c.normalizeId)(B||I),this._checkUnique(B),this.schemas[B]=this._addSchema(A,z,B,T,!0),this}addMetaSchema(A,B,z=this.opts.validateSchema){return this.addSchema(A,B,!0,z),this}validateSchema(A,B){if(typeof A=="boolean")return!0;let z;if(z=A.$schema,z!==void 0&&typeof z!="string")throw Error("$schema must be a string");if(z=z||this.opts.defaultMeta||this.defaultMeta(),!z)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let T=this.validate(z,A);if(!T&&B){let I="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(I);else throw Error(I)}return T}getSchema(A){let B;for(;typeof(B=S.call(this,A))=="string";)A=B;if(B===void 0){let{schemaId:z}=this.opts,T=new a.SchemaEnv({schema:{},schemaId:z});if(B=a.resolveSchema.call(this,T,A),!B)return;this.refs[A]=B}return B.validate||this._compileSchemaEnv(B)}removeSchema(A){if(A instanceof RegExp)return this._removeAllSchemas(this.schemas,A),this._removeAllSchemas(this.refs,A),this;switch(typeof A){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let B=S.call(this,A);return typeof B=="object"&&this._cache.delete(B.schema),delete this.schemas[A],delete this.refs[A],this}case"object":{let B=A;this._cache.delete(B);let z=A[this.opts.schemaId];return z&&(z=(0,c.normalizeId)(z),delete this.schemas[z],delete this.refs[z]),this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary(A){for(let B of A)this.addKeyword(B);return this}addKeyword(A,B){let z;if(typeof A=="string")z=A,typeof B=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),B.keyword=z);else if(typeof A=="object"&&B===void 0){if(B=A,z=B.keyword,Array.isArray(z)&&!z.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(Z.call(this,z,B),!B)return(0,u.eachItem)(z,I=>se.call(this,I)),this;yt.call(this,B);let T={...B,type:(0,l.getJSONTypes)(B.type),schemaType:(0,l.getJSONTypes)(B.schemaType)};return(0,u.eachItem)(z,T.type.length===0?I=>se.call(this,I,T):I=>T.type.forEach(H=>se.call(this,I,T,H))),this}getKeyword(A){let B=this.RULES.all[A];return typeof B=="object"?B.definition:!!B}removeKeyword(A){let{RULES:B}=this;delete B.keywords[A],delete B.all[A];for(let z of B.rules){let T=z.rules.findIndex(I=>I.keyword===A);T>=0&&z.rules.splice(T,1)}return this}addFormat(A,B){return typeof B=="string"&&(B=new RegExp(B)),this.formats[A]=B,this}errorsText(A=this.errors,{separator:B=", ",dataVar:z="data"}={}){return!A||A.length===0?"No errors":A.map(T=>`${z}${T.instancePath} ${T.message}`).reduce((T,I)=>T+B+I)}$dataMetaSchema(A,B){let z=this.RULES.all;A=JSON.parse(JSON.stringify(A));for(let T of B){let I=T.split("/").slice(1),H=A;for(let pe of I)H=H[pe];for(let pe in z){let he=z[pe];if(typeof he!="object")continue;let{$data:st}=he.definition,Ye=H[pe];st&&Ye&&(H[pe]=Fe(Ye))}}return A}_removeAllSchemas(A,B){for(let z in A){let T=A[z];(!B||B.test(z))&&(typeof T=="string"?delete A[z]:T&&!T.meta&&(this._cache.delete(T.schema),delete A[z]))}}_addSchema(A,B,z,T=this.opts.validateSchema,I=this.opts.addUsedSchema){let H,{schemaId:pe}=this.opts;if(typeof A=="object")H=A[pe];else{if(this.opts.jtd)throw Error("schema must be object");if(typeof A!="boolean")throw Error("schema must be object or boolean")}let he=this._cache.get(A);if(he!==void 0)return he;z=(0,c.normalizeId)(H||z);let st=c.getSchemaRefs.call(this,A,z);return he=new a.SchemaEnv({schema:A,schemaId:pe,meta:B,baseId:z,localRefs:st}),this._cache.set(he.schema,he),I&&!z.startsWith("#")&&(z&&this._checkUnique(z),this.refs[z]=he),T&&this.validateSchema(A,!0),he}_checkUnique(A){if(this.schemas[A]||this.refs[A])throw Error(`schema with key or id "${A}" already exists`)}_compileSchemaEnv(A){if(A.meta?this._compileMetaSchema(A):a.compileSchema.call(this,A),!A.validate)throw Error("ajv implementation error");return A.validate}_compileMetaSchema(A){let B=this.opts;this.opts=this._metaOpts;try{a.compileSchema.call(this,A)}finally{this.opts=B}}}x.ValidationError=n.default,x.MissingRefError=s.default,t.default=x;function w(V,A,B,z="error"){for(let T in V){let I=T;I in A&&this.logger[z](`${B}: option ${T}. ${V[I]}`)}}function S(V){return V=(0,c.normalizeId)(V),this.schemas[V]||this.refs[V]}function E(){let V=this.opts.schemas;if(V)if(Array.isArray(V))this.addSchema(V);else for(let A in V)this.addSchema(V[A],A)}function k(){for(let V in this.opts.formats){let A=this.opts.formats[V];A&&this.addFormat(V,A)}}function R(V){if(Array.isArray(V)){this.addVocabulary(V);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let A in V){let B=V[A];B.keyword||(B.keyword=A),this.addKeyword(B)}}function O(){let V={...this.opts};for(let A of f)delete V[A];return V}var C={log(){},warn(){},error(){}};function U(V){if(V===!1)return C;if(V===void 0)return console;if(V.log&&V.warn&&V.error)return V;throw Error("logger must implement log, warn and error methods")}var q=/^[a-z_$][a-z0-9_$:-]*$/i;function Z(V,A){let{RULES:B}=this;if((0,u.eachItem)(V,z=>{if(B.keywords[z])throw Error(`Keyword ${z} is already defined`);if(!q.test(z))throw Error(`Keyword ${z} has invalid name`)}),!!A&&A.$data&&!("code"in A||"validate"in A))throw Error('$data keyword must have "code" or "validate" function')}function se(V,A,B){var z;let T=A?.post;if(B&&T)throw Error('keyword with "post" flag cannot have "type"');let{RULES:I}=this,H=T?I.post:I.rules.find(({type:he})=>he===B);if(H||(H={type:B,rules:[]},I.rules.push(H)),I.keywords[V]=!0,!A)return;let pe={keyword:V,definition:{...A,type:(0,l.getJSONTypes)(A.type),schemaType:(0,l.getJSONTypes)(A.schemaType)}};A.before?K.call(this,H,pe,A.before):H.rules.push(pe),I.all[V]=pe,(z=A.implements)===null||z===void 0||z.forEach(he=>this.addKeyword(he))}function K(V,A,B){let z=V.rules.findIndex(T=>T.keyword===B);z>=0?V.rules.splice(z,0,A):(V.rules.push(A),this.logger.warn(`rule ${B} is not defined`))}function yt(V){let{metaSchema:A}=V;A!==void 0&&(V.$data&&this.opts.$data&&(A=Fe(A)),V.validateSchema=this.compile(A,!0))}var Cr={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Fe(V){return{anyOf:[V,Cr]}}}),Phe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e={keyword:"id",code(){throw Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=e}),Ihe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=hy(),r=_s(),n=De(),s=Xi(),i=fT(),a=rt(),o={keyword:"$ref",schemaType:"string",code(u){let{gen:p,schema:d,it:m}=u,{baseId:f,schemaEnv:g,validateName:v,opts:h,self:y}=m,{root:b}=g;if((d==="#"||d==="#/")&&f===b.baseId)return w();let x=i.resolveRef.call(y,b,f,d);if(x===void 0)throw new e.default(m.opts.uriResolver,f,d);if(x instanceof i.SchemaEnv)return S(x);return E(x);function w(){if(g===b)return l(u,v,g,g.$async);let k=p.scopeValue("root",{ref:b});return l(u,n._`${k}.validate`,b,b.$async)}function S(k){let R=c(u,k);l(u,R,k,k.$async)}function E(k){let R=p.scopeValue("schema",h.code.source===!0?{ref:k,code:(0,n.stringify)(k)}:{ref:k}),O=p.name("valid"),C=u.subschema({schema:k,dataTypes:[],schemaPath:n.nil,topSchemaRef:R,errSchemaPath:d},O);u.mergeEvaluated(C),u.ok(O)}}};function c(u,p){let{gen:d}=u;return p.validate?d.scopeValue("validate",{ref:p.validate}):n._`${d.scopeValue("wrapper",{ref:p})}.validate`}t.getValidate=c;function l(u,p,d,m){let{gen:f,it:g}=u,{allErrors:v,schemaEnv:h,opts:y}=g,b=y.passContext?s.default.this:n.nil;m?x():w();function x(){if(!h.$async)throw Error("async schema referenced by sync schema");let k=f.let("valid");f.try(()=>{f.code(n._`await ${(0,r.callValidateCode)(u,p,b)}`),E(p),!v&&f.assign(k,!0)},R=>{f.if(n._`!(${R} instanceof ${g.ValidationError})`,()=>f.throw(R)),S(R),!v&&f.assign(k,!1)}),u.ok(k)}function w(){u.result((0,r.callValidateCode)(u,p,b),()=>E(p),()=>S(p))}function S(k){let R=n._`${k}.errors`;f.assign(s.default.vErrors,n._`${s.default.vErrors} === null ? ${R} : ${s.default.vErrors}.concat(${R})`),f.assign(s.default.errors,n._`${s.default.vErrors}.length`)}function E(k){var R;if(!g.opts.unevaluated)return;let O=(R=d?.validate)===null||R===void 0?void 0:R.evaluated;if(g.props!==!0)if(O&&!O.dynamicProps)O.props!==void 0&&(g.props=a.mergeEvaluated.props(f,O.props,g.props));else{let C=f.var("props",n._`${k}.evaluated.props`);g.props=a.mergeEvaluated.props(f,C,g.props,n.Name)}if(g.items!==!0)if(O&&!O.dynamicItems)O.items!==void 0&&(g.items=a.mergeEvaluated.items(f,O.items,g.items));else{let C=f.var("items",n._`${k}.evaluated.items`);g.items=a.mergeEvaluated.items(f,C,g.items,n.Name)}}}t.callRef=l,t.default=o}),Che=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Phe(),r=Ihe(),n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=n}),Ohe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=e.operators,n={maximum:{okStr:"<=",ok:r.LTE,fail:r.GT},minimum:{okStr:">=",ok:r.GTE,fail:r.LT},exclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},exclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},s={message:({keyword:a,schemaCode:o})=>e.str`must be ${n[a].okStr} ${o}`,params:({keyword:a,schemaCode:o})=>e._`{comparison: ${n[a].okStr}, limit: ${o}}`},i={keyword:Object.keys(n),type:"number",schemaType:"number",$data:!0,error:s,code(a){let{keyword:o,data:c,schemaCode:l}=a;a.fail$data(e._`${c} ${n[o].fail} ${l} || isNaN(${c})`)}};t.default=i}),Ahe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message:({schemaCode:s})=>e.str`must be multiple of ${s}`,params:({schemaCode:s})=>e._`{multipleOf: ${s}}`},n={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:r,code(s){let{gen:i,data:a,schemaCode:o,it:c}=s,l=c.opts.multipleOfPrecision,u=i.let("res"),p=l?e._`Math.abs(Math.round(${u}) - ${u}) > 1e-${l}`:e._`${u} !== parseInt(${u})`;s.fail$data(e._`(${o} === 0 || (${u} = ${a}/${o}, ${p}))`)}};t.default=n}),jhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let n=r.length,s=0,i=0,a;for(;i=55296&&a<=56319&&i{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=jhe(),s={message({keyword:a,schemaCode:o}){let c=a==="maxLength"?"more":"fewer";return e.str`must NOT have ${c} than ${o} characters`},params:({schemaCode:a})=>e._`{limit: ${a}}`},i={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:s,code(a){let{keyword:o,data:c,schemaCode:l,it:u}=a,p=o==="maxLength"?e.operators.GT:e.operators.LT,d=u.opts.unicode===!1?e._`${c}.length`:e._`${(0,r.useFunc)(a.gen,n.default)}(${c})`;a.fail$data(e._`${d} ${p} ${l}`)}};t.default=i}),Dhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=_s(),r=rt(),n=De(),s={message:({schemaCode:a})=>n.str`must match pattern "${a}"`,params:({schemaCode:a})=>n._`{pattern: ${a}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:s,code(a){let{gen:o,data:c,$data:l,schema:u,schemaCode:p,it:d}=a,m=d.opts.unicodeRegExp?"u":"";if(l){let{regExp:f}=d.opts.code,g=f.code==="new RegExp"?n._`new RegExp`:(0,r.useFunc)(o,f),v=o.let("valid");o.try(()=>o.assign(v,n._`${g}(${p}, ${m}).test(${c})`),()=>o.assign(v,!1)),a.fail$data(n._`!${v}`)}else{let f=(0,e.usePattern)(a,u);a.fail$data(n._`!${f}.test(${c})`)}}};t.default=i}),Mhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message({keyword:s,schemaCode:i}){let a=s==="maxProperties"?"more":"fewer";return e.str`must NOT have ${a} than ${i} properties`},params:({schemaCode:s})=>e._`{limit: ${s}}`},n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(s){let{keyword:i,data:a,schemaCode:o}=s,c=i==="maxProperties"?e.operators.GT:e.operators.LT;s.fail$data(e._`Object.keys(${a}).length ${c} ${o}`)}};t.default=n}),zhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=_s(),r=De(),n=rt(),s={message:({params:{missingProperty:a}})=>r.str`must have required property '${a}'`,params:({params:{missingProperty:a}})=>r._`{missingProperty: ${a}}`},i={keyword:"required",type:"object",schemaType:"array",$data:!0,error:s,code(a){let{gen:o,schema:c,schemaCode:l,data:u,$data:p,it:d}=a,{opts:m}=d;if(!p&&c.length===0)return;let f=c.length>=m.loopRequired;if(d.allErrors?g():v(),m.strictRequired){let b=a.parentSchema.properties,{definedProperties:x}=a.it;for(let w of c)if(b?.[w]===void 0&&!x.has(w)){let S=d.schemaEnv.baseId+d.errSchemaPath,E=`required property "${w}" is not defined at "${S}" (strictRequired)`;(0,n.checkStrictMode)(d,E,d.opts.strictRequired)}}function g(){if(f||p)a.block$data(r.nil,h);else for(let b of c)(0,e.checkReportMissingProp)(a,b)}function v(){let b=o.let("missing");if(f||p){let x=o.let("valid",!0);a.block$data(x,()=>y(b,x)),a.ok(x)}else o.if((0,e.checkMissingProp)(a,c,b)),(0,e.reportMissingProp)(a,b),o.else()}function h(){o.forOf("prop",l,b=>{a.setParams({missingProperty:b}),o.if((0,e.noPropertyInData)(o,u,b,m.ownProperties),()=>a.error())})}function y(b,x){a.setParams({missingProperty:b}),o.forOf(b,l,()=>{o.assign(x,(0,e.propertyInData)(o,u,b,m.ownProperties)),o.if((0,r.not)(x),()=>{a.error(),o.break()})},r.nil)}}};t.default=i}),$he=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message({keyword:s,schemaCode:i}){let a=s==="maxItems"?"more":"fewer";return e.str`must NOT have ${a} than ${i} items`},params:({schemaCode:s})=>e._`{limit: ${s}}`},n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(s){let{keyword:i,data:a,schemaCode:o}=s,c=i==="maxItems"?e.operators.GT:e.operators.LT;s.fail$data(e._`${a}.length ${c} ${o}`)}};t.default=n}),hT=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=s8();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),Lhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ev(),r=De(),n=rt(),s=hT(),i={message:({params:{i:o,j:c}})=>r.str`must NOT have duplicate items (items ## ${c} and ${o} are identical)`,params:({params:{i:o,j:c}})=>r._`{i: ${o}, j: ${c}}`},a={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:i,code(o){let{gen:c,data:l,$data:u,schema:p,parentSchema:d,schemaCode:m,it:f}=o;if(!u&&!p)return;let g=c.let("valid"),v=d.items?(0,e.getSchemaTypes)(d.items):[];o.block$data(g,h,r._`${m} === false`),o.ok(g);function h(){let w=c.let("i",r._`${l}.length`),S=c.let("j");o.setParams({i:w,j:S}),c.assign(g,!0),c.if(r._`${w} > 1`,()=>(y()?b:x)(w,S))}function y(){return v.length>0&&!v.some(w=>w==="object"||w==="array")}function b(w,S){let E=c.name("item"),k=(0,e.checkDataTypes)(v,E,f.opts.strictNumbers,e.DataType.Wrong),R=c.const("indices",r._`{}`);c.for(r._`;${w}--;`,()=>{c.let(E,r._`${l}[${w}]`),c.if(k,r._`continue`),v.length>1&&c.if(r._`typeof ${E} == "string"`,r._`${E} += "_"`),c.if(r._`typeof ${R}[${E}] == "number"`,()=>{c.assign(S,r._`${R}[${E}]`),o.error(),c.assign(g,!1).break()}).code(r._`${R}[${E}] = ${w}`)})}function x(w,S){let E=(0,n.useFunc)(c,s.default),k=c.name("outer");c.label(k).for(r._`;${w}--;`,()=>c.for(r._`${S} = ${w}; ${S}--;`,()=>c.if(r._`${E}(${l}[${w}], ${l}[${S}])`,()=>{o.error(),c.assign(g,!1).break(k)})))}}};t.default=a}),Uhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=hT(),s={message:"must be equal to constant",params:({schemaCode:a})=>e._`{allowedValue: ${a}}`},i={keyword:"const",$data:!0,error:s,code(a){let{gen:o,data:c,$data:l,schemaCode:u,schema:p}=a;l||p&&typeof p=="object"?a.fail$data(e._`!${(0,r.useFunc)(o,n.default)}(${c}, ${u})`):a.fail(e._`${p} !== ${c}`)}};t.default=i}),qhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=hT(),s={message:"must be equal to one of the allowed values",params:({schemaCode:a})=>e._`{allowedValues: ${a}}`},i={keyword:"enum",schemaType:"array",$data:!0,error:s,code(a){let{gen:o,data:c,$data:l,schema:u,schemaCode:p,it:d}=a;if(!l&&u.length===0)throw Error("enum must have non-empty array");let m=u.length>=d.opts.loopEnum,f,g=()=>f??(f=(0,r.useFunc)(o,n.default)),v;if(m||l)v=o.let("valid"),a.block$data(v,h);else{if(!Array.isArray(u))throw Error("ajv implementation error");let b=o.const("vSchema",p);v=(0,e.or)(...u.map((x,w)=>y(b,w)))}a.pass(v);function h(){o.assign(v,!1),o.forOf("v",p,b=>o.if(e._`${g()}(${c}, ${b})`,()=>o.assign(v,!0).break()))}function y(b,x){let w=u[x];return typeof w=="object"&&w!==null?e._`${g()}(${c}, ${b}[${x}])`:e._`${c} === ${w}`}}};t.default=i}),Fhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Ohe(),r=Ahe(),n=Nhe(),s=Dhe(),i=Mhe(),a=zhe(),o=$he(),c=Lhe(),l=Uhe(),u=qhe(),p=[e.default,r.default,n.default,s.default,i.default,a.default,o.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},l.default,u.default];t.default=p}),i8=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=De(),r=rt(),n={message:({params:{len:a}})=>e.str`must NOT have more than ${a} items`,params:({params:{len:a}})=>e._`{limit: ${a}}`},s={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:n,code(a){let{parentSchema:o,it:c}=a,{items:l}=o;if(!Array.isArray(l)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}i(a,l)}};function i(a,o){let{gen:c,schema:l,data:u,keyword:p,it:d}=a;d.items=!0;let m=c.const("len",e._`${u}.length`);if(l===!1)a.setParams({len:o.length}),a.pass(e._`${m} <= ${o.length}`);else if(typeof l=="object"&&!(0,r.alwaysValidSchema)(d,l)){let g=c.var("valid",e._`${m} <= ${o.length}`);c.if((0,e.not)(g),()=>f(g)),a.ok(g)}function f(g){c.forRange("i",o.length,m,v=>{a.subschema({keyword:p,dataProp:v,dataPropType:r.Type.Num},g),!d.allErrors&&c.if((0,e.not)(g),()=>c.break())})}}t.validateAdditionalItems=i,t.default=s}),a8=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=De(),r=rt(),n=_s(),s={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(a){let{schema:o,it:c}=a;if(Array.isArray(o))return i(a,"additionalItems",o);c.items=!0,!(0,r.alwaysValidSchema)(c,o)&&a.ok((0,n.validateArray)(a))}};function i(a,o,c=a.schema){let{gen:l,parentSchema:u,data:p,keyword:d,it:m}=a;v(u),m.opts.unevaluated&&c.length&&m.items!==!0&&(m.items=r.mergeEvaluated.items(l,c.length,m.items));let f=l.name("valid"),g=l.const("len",e._`${p}.length`);c.forEach((h,y)=>{(0,r.alwaysValidSchema)(m,h)||(l.if(e._`${g} > ${y}`,()=>a.subschema({keyword:d,schemaProp:y,dataProp:y},f)),a.ok(f))});function v(h){let{opts:y,errSchemaPath:b}=m,x=c.length,w=x===h.minItems&&(x===h.maxItems||h[o]===!1);if(y.strictTuples&&!w){let S=`"${d}" is ${x}-tuple, but minItems or maxItems/${o} are not specified or different at path "${b}"`;(0,r.checkStrictMode)(m,S,y.strictTuples)}}}t.validateTuple=i,t.default=s}),Hhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=a8(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0,e.validateTuple)(n,"items")};t.default=r}),Bhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=_s(),s=i8(),i={message:({params:{len:o}})=>e.str`must NOT have more than ${o} items`,params:({params:{len:o}})=>e._`{limit: ${o}}`},a={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:i,code(o){let{schema:c,parentSchema:l,it:u}=o,{prefixItems:p}=l;u.items=!0,!(0,r.alwaysValidSchema)(u,c)&&(p?(0,s.validateAdditionalItems)(o,p):o.ok((0,n.validateArray)(o)))}};t.default=a}),Whe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:({params:{min:i,max:a}})=>a===void 0?e.str`must contain at least ${i} valid item(s)`:e.str`must contain at least ${i} and no more than ${a} valid item(s)`,params:({params:{min:i,max:a}})=>a===void 0?e._`{minContains: ${i}}`:e._`{minContains: ${i}, maxContains: ${a}}`},s={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n,code(i){let{gen:a,schema:o,parentSchema:c,data:l,it:u}=i,p,d,{minContains:m,maxContains:f}=c;u.opts.next?(p=m===void 0?1:m,d=f):p=1;let g=a.const("len",e._`${l}.length`);if(i.setParams({min:p,max:d}),d===void 0&&p===0){(0,r.checkStrictMode)(u,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(d!==void 0&&p>d){(0,r.checkStrictMode)(u,'"minContains" > "maxContains" is always invalid'),i.fail();return}if((0,r.alwaysValidSchema)(u,o)){let x=e._`${g} >= ${p}`;d!==void 0&&(x=e._`${x} && ${g} <= ${d}`),i.pass(x);return}u.items=!0;let v=a.name("valid");d===void 0&&p===1?y(v,()=>a.if(v,()=>a.break())):p===0?(a.let(v,!0),d!==void 0&&a.if(e._`${l}.length > 0`,h)):(a.let(v,!1),h()),i.result(v,()=>i.reset());function h(){let x=a.name("_valid"),w=a.let("count",0);y(x,()=>a.if(x,()=>b(w)))}function y(x,w){a.forRange("i",0,g,S=>{i.subschema({keyword:"contains",dataProp:S,dataPropType:r.Type.Num,compositeRule:!0},x),w()})}function b(x){a.code(e._`${x}++`),d===void 0?a.if(e._`${x} >= ${p}`,()=>a.assign(v,!0).break()):(a.if(e._`${x} > ${d}`,()=>a.assign(v,!1).break()),p===1?a.assign(v,!0):a.if(e._`${x} >= ${p}`,()=>a.assign(v,!0)))}}};t.default=s}),Zhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=De(),r=rt(),n=_s();t.error={message:({params:{property:c,depsCount:l,deps:u}})=>{let p=l===1?"property":"properties";return e.str`must have ${p} ${u} when property ${c} is present`},params:({params:{property:c,depsCount:l,deps:u,missingProperty:p}})=>e._`{property: ${c}, missingProperty: ${p}, depsCount: ${l}, - deps: ${u}}`};var s={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[l,u]=i(c);a(c,l),o(c,u)}};function i({schema:c}){let l={},u={};for(let p in c){if(p==="__proto__")continue;let d=Array.isArray(c[p])?l:u;d[p]=c[p]}return[l,u]}function a(c,l=c.schema){let{gen:u,data:p,it:d}=c;if(Object.keys(l).length===0)return;let m=u.let("missing");for(let f in l){let g=l[f];if(g.length===0)continue;let v=(0,n.propertyInData)(u,p,f,d.opts.ownProperties);c.setParams({property:f,depsCount:g.length,deps:g.join(", ")}),d.allErrors?u.if(v,()=>{for(let h of g)(0,n.checkReportMissingProp)(c,h)}):(u.if(e._`${v} && (${(0,n.checkMissingProp)(c,g,m)})`),(0,n.reportMissingProp)(c,m),u.else())}}t.validatePropertyDeps=a;function o(c,l=c.schema){let{gen:u,data:p,keyword:d,it:m}=c,f=u.name("valid");for(let g in l)(0,r.alwaysValidSchema)(m,l[g])||(u.if((0,n.propertyInData)(u,p,g,m.opts.ownProperties),()=>{let v=c.subschema({keyword:d,schemaProp:g},f);c.mergeValidEvaluated(v,f)},()=>u.var(f,!0)),c.ok(f))}t.validateSchemaDeps=o,t.default=s}),Xhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:"property name must be valid",params:({params:i})=>e._`{propertyName: ${i.propertyName}}`},s={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(i){let{gen:a,schema:o,data:c,it:l}=i;if((0,r.alwaysValidSchema)(l,o))return;let u=a.name("valid");a.forIn("key",c,p=>{i.setParams({propertyName:p}),i.subschema({keyword:"propertyNames",data:p,dataTypes:["string"],propertyName:p,compositeRule:!0},u),a.if((0,e.not)(u),()=>{i.error(!0),!l.allErrors&&a.break()})}),i.ok(u)}};t.default=s}),p8=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=_s(),r=De(),n=Xi(),s=rt(),i={message:"must NOT have additional properties",params:({params:o})=>r._`{additionalProperty: ${o.additionalProperty}}`},a={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:i,code(o){let{gen:c,schema:l,parentSchema:u,data:p,errsCount:d,it:m}=o;if(!d)throw Error("ajv implementation error");let{allErrors:f,opts:g}=m;if(m.props=!0,g.removeAdditional!=="all"&&(0,s.alwaysValidSchema)(m,l))return;let v=(0,e.allSchemaProperties)(u.properties),h=(0,e.allSchemaProperties)(u.patternProperties);y(),o.ok(r._`${d} === ${n.default.errors}`);function y(){c.forIn("key",p,k=>{!v.length&&!h.length?w(k):c.if(b(k),()=>w(k))})}function b(k){let E;if(v.length>8){let R=(0,s.schemaRefOrVal)(m,u.properties,"properties");E=(0,e.isOwnProperty)(c,R,k)}else v.length?E=(0,r.or)(...v.map(R=>r._`${k} === ${R}`)):E=r.nil;return h.length&&(E=(0,r.or)(E,...h.map(R=>r._`${(0,e.usePattern)(o,R)}.test(${k})`))),(0,r.not)(E)}function x(k){c.code(r._`delete ${p}[${k}]`)}function w(k){if(g.removeAdditional==="all"||g.removeAdditional&&l===!1){x(k);return}if(l===!1){o.setParams({additionalProperty:k}),o.error(),!f&&c.break();return}if(typeof l=="object"&&!(0,s.alwaysValidSchema)(m,l)){let E=c.name("valid");g.removeAdditional==="failing"?(S(k,E,!1),c.if((0,r.not)(E),()=>{o.reset(),x(k)})):(S(k,E),!f&&c.if((0,r.not)(E),()=>c.break()))}}function S(k,E,R){let O={keyword:"additionalProperties",dataProp:k,dataPropType:s.Type.Str};R===!1&&Object.assign(O,{compositeRule:!0,createErrors:!1,allErrors:!1}),o.subschema(O,E)}}};t.default=a}),ege=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=gy(),r=_s(),n=rt(),s=p8(),i={keyword:"properties",type:"object",schemaType:"object",code(a){let{gen:o,schema:c,parentSchema:l,data:u,it:p}=a;p.opts.removeAdditional==="all"&&l.additionalProperties===void 0&&s.default.code(new e.KeywordCxt(p,s.default,"additionalProperties"));let d=(0,r.allSchemaProperties)(c);for(let h of d)p.definedProperties.add(h);p.opts.unevaluated&&d.length&&p.props!==!0&&(p.props=n.mergeEvaluated.props(o,(0,n.toHash)(d),p.props));let m=d.filter(h=>!(0,n.alwaysValidSchema)(p,c[h]));if(m.length===0)return;let f=o.name("valid");for(let h of m)g(h)?v(h):(o.if((0,r.propertyInData)(o,u,h,p.opts.ownProperties)),v(h),!p.allErrors&&o.else().var(f,!0),o.endIf()),a.it.definedProperties.add(h),a.ok(f);function g(h){return p.opts.useDefaults&&!p.compositeRule&&c[h].default!==void 0}function v(h){a.subschema({keyword:"properties",schemaProp:h,dataProp:h},f)}}};t.default=i}),tge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=_s(),r=De(),n=rt(),s=rt(),i={keyword:"patternProperties",type:"object",schemaType:"object",code(a){let{gen:o,schema:c,data:l,parentSchema:u,it:p}=a,{opts:d}=p,m=(0,e.allSchemaProperties)(c),f=m.filter(w=>(0,n.alwaysValidSchema)(p,c[w]));if(m.length===0||f.length===m.length&&(!p.opts.unevaluated||p.props===!0))return;let g=d.strictSchema&&!d.allowMatchingProperties&&u.properties,v=o.name("valid");p.props!==!0&&!(p.props instanceof r.Name)&&(p.props=(0,s.evaluatedPropsToName)(o,p.props));let{props:h}=p;y();function y(){for(let w of m)g&&b(w),p.allErrors?x(w):(o.var(v,!0),x(w),o.if(v))}function b(w){for(let S in g)new RegExp(w).test(S)&&(0,n.checkStrictMode)(p,`property ${S} matches pattern ${w} (use allowMatchingProperties)`)}function x(w){o.forIn("key",l,S=>{o.if(r._`${(0,e.usePattern)(a,w)}.test(${S})`,()=>{let k=f.includes(w);k||a.subschema({keyword:"patternProperties",schemaProp:w,dataProp:S,dataPropType:s.Type.Str},v),p.opts.unevaluated&&h!==!0?o.assign(r._`${h}[${S}]`,!0):!k&&!p.allErrors&&o.if((0,r.not)(v),()=>o.break())})})}}};t.default=i}),rge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:s,schema:i,it:a}=n;if((0,e.alwaysValidSchema)(a,i)){n.fail();return}let o=s.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),n.failResult(o,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),nge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=_s(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),sge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:"must match exactly one schema in oneOf",params:({params:i})=>e._`{passingSchemas: ${i.passing}}`},s={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(i){let{gen:a,schema:o,parentSchema:c,it:l}=i;if(!Array.isArray(o))throw Error("ajv implementation error");if(l.opts.discriminator&&c.discriminator)return;let u=o,p=a.let("valid",!1),d=a.let("passing",null),m=a.name("_valid");i.setParams({passing:d}),a.block(f),i.result(p,()=>i.reset(),()=>i.error(!0));function f(){u.forEach((g,v)=>{let h;(0,r.alwaysValidSchema)(l,g)?a.var(m,!0):h=i.subschema({keyword:"oneOf",schemaProp:v,compositeRule:!0},m),v>0&&a.if(e._`${m} && ${p}`).assign(p,!1).assign(d,e._`[${d}, ${v}]`).else(),a.if(m,()=>{a.assign(p,!0),a.assign(d,v),h&&i.mergeEvaluated(h,e.Name)})})}}};t.default=s}),ige=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:s,schema:i,it:a}=n;if(!Array.isArray(i))throw Error("ajv implementation error");let o=s.name("valid");i.forEach((c,l)=>{if((0,e.alwaysValidSchema)(a,c))return;let u=n.subschema({keyword:"allOf",schemaProp:l},o);n.ok(o),n.mergeEvaluated(u)})}};t.default=r}),age=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:({params:a})=>e.str`must match "${a.ifClause}" schema`,params:({params:a})=>e._`{failingKeyword: ${a.ifClause}}`},s={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:n,code(a){let{gen:o,parentSchema:c,it:l}=a;c.then===void 0&&c.else===void 0&&(0,r.checkStrictMode)(l,'"if" without "then" and "else" is ignored');let u=i(l,"then"),p=i(l,"else");if(!u&&!p)return;let d=o.let("valid",!0),m=o.name("_valid");if(f(),a.reset(),u&&p){let v=o.let("ifClause");a.setParams({ifClause:v}),o.if(m,g("then",v),g("else",v))}else u?o.if(m,g("then")):o.if((0,e.not)(m),g("else"));a.pass(d,()=>a.error(!0));function f(){let v=a.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},m);a.mergeEvaluated(v)}function g(v,h){return()=>{let y=a.subschema({keyword:v},m);o.assign(d,m),a.mergeValidEvaluated(y,d),h?o.assign(h,e._`${v}`):a.setParams({ifClause:v})}}}};function i(a,o){let c=a.schema[o];return c!==void 0&&!(0,r.alwaysValidSchema)(a,c)}t.default=s}),oge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:s,it:i}){s.if===void 0&&(0,e.checkStrictMode)(i,`"${n}" without "if" is ignored`)}};t.default=r}),cge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=l8(),r=Khe(),n=u8(),s=Jhe(),i=Qhe(),a=Yhe(),o=Xhe(),c=p8(),l=ege(),u=tge(),p=rge(),d=nge(),m=sge(),f=ige(),g=age(),v=oge();function h(y=!1){let b=[p.default,d.default,m.default,f.default,g.default,v.default,o.default,c.default,a.default,l.default,u.default];return y?b.push(r.default,s.default):b.push(e.default,n.default),b.push(i.default),b}t.default=h}),lge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message:({schemaCode:s})=>e.str`must match format "${s}"`,params:({schemaCode:s})=>e._`{format: ${s}}`},n={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(s,i){let{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:p}=s,{opts:d,errSchemaPath:m,schemaEnv:f,self:g}=p;if(!d.validateFormats)return;c?v():h();function v(){let y=a.scopeValue("formats",{ref:g.formats,code:d.code.formats}),b=a.const("fDef",e._`${y}[${u}]`),x=a.let("fType"),w=a.let("format");a.if(e._`typeof ${b} == "object" && !(${b} instanceof RegExp)`,()=>a.assign(x,e._`${b}.type || "string"`).assign(w,e._`${b}.validate`),()=>a.assign(x,e._`"string"`).assign(w,b)),s.fail$data((0,e.or)(S(),k()));function S(){return d.strictSchema===!1?e.nil:e._`${u} && !${w}`}function k(){let E=f.$async?e._`(${b}.async ? await ${w}(${o}) : ${w}(${o}))`:e._`${w}(${o})`,R=e._`(typeof ${w} == "function" ? ${E} : ${w}.test(${o}))`;return e._`${w} && ${w} !== true && ${x} === ${i} && !${R}`}}function h(){let y=g.formats[l];if(!y){S();return}if(y===!0)return;let[b,x,w]=k(y);b===i&&s.pass(E());function S(){if(d.strictSchema===!1){g.logger.warn(R());return}throw Error(R());function R(){return`unknown format "${l}" ignored in schema at path "${m}"`}}function k(R){let O=R instanceof RegExp?(0,e.regexpCode)(R):d.code.formats?e._`${d.code.formats}${(0,e.getProperty)(l)}`:void 0,C=a.scopeValue("formats",{key:l,ref:R,code:O});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,e._`${C}.validate`]:["string",R,C]}function E(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!f.$async)throw Error("async format in sync schema");return e._`await ${w}(${o})`}return typeof x=="function"?e._`${w}(${o})`:e._`${w}.test(${o})`}}}};t.default=n}),uge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=lge(),r=[e.default];t.default=r}),pge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),dge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Mhe(),r=Vhe(),n=cge(),s=uge(),i=pge(),a=[e.default,r.default,(0,n.default)(),s.default,i.metadataVocabulary,i.contentVocabulary];t.default=a}),mge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0;var e;(function(r){r.Tag="tag",r.Mapping="mapping"})(e||(t.DiscrError=e={}))}),fge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=mge(),n=vT(),s=vy(),i=rt(),a={message:({params:{discrError:c,tagName:l}})=>c===r.DiscrError.Tag?`tag "${l}" must be string`:`value of tag "${l}" must be in oneOf`,params:({params:{discrError:c,tag:l,tagName:u}})=>e._`{error: ${c}, tag: ${u}, tagValue: ${l}}`},o={keyword:"discriminator",type:"object",schemaType:"object",error:a,code(c){let{gen:l,data:u,schema:p,parentSchema:d,it:m}=c,{oneOf:f}=d;if(!m.opts.discriminator)throw Error("discriminator: requires discriminator option");let g=p.propertyName;if(typeof g!="string")throw Error("discriminator: requires propertyName");if(p.mapping)throw Error("discriminator: mapping is not supported");if(!f)throw Error("discriminator: requires oneOf keyword");let v=l.let("valid",!1),h=l.const("tag",e._`${u}${(0,e.getProperty)(g)}`);l.if(e._`typeof ${h} == "string"`,()=>y(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:h,tagName:g})),c.ok(v);function y(){let w=x();l.if(!1);for(let S in w)l.elseIf(e._`${h} === ${S}`),l.assign(v,b(w[S]));l.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:h,tagName:g}),l.endIf()}function b(w){let S=l.name("valid"),k=c.subschema({keyword:"oneOf",schemaProp:w},S);return c.mergeEvaluated(k,e.Name),S}function x(){var w;let S={},k=R(d),E=!0;for(let U=0;U{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),d8=ne((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv=void 0;var r=jhe(),n=dge(),s=fge(),i=hge(),a=["/properties"],o="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),n.default.forEach(f=>this.addVocabulary(f)),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let f=this.opts.$data?this.$dataMetaSchema(i,a):i;this.addMetaSchema(f,o,!1),this.refs["http://json-schema.org/schema"]=o}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var l=gy();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var u=De();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return u._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return u.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return u.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return u.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return u.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return u.CodeGen}});var p=gT();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return p.default}});var d=vy();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return d.default}})}),gge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatNames=t.fastFormats=t.fullFormats=void 0;function e(C,U){return{validate:C,compare:U}}t.fullFormats={date:e(i,a),time:e(c(!0),l),"date-time":e(d(!0),m),"iso-time":e(c(),u),"iso-date-time":e(d(),f),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:h,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:O,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:b,int32:{type:"number",validate:S},int64:{type:"number",validate:k},float:{type:"number",validate:E},double:{type:"number",validate:E},password:!0,binary:!0},t.fastFormats={...t.fullFormats,date:e(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,a),time:e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,l),"date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,m),"iso-time":e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,u),"iso-date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,f),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},t.formatNames=Object.keys(t.fullFormats);function r(C){return C%4===0&&(C%100!==0||C%400===0)}var n=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,s=[0,31,28,31,30,31,30,31,31,30,31,30,31];function i(C){let U=n.exec(C);if(!U)return!1;let q=+U[1],Z=+U[2],se=+U[3];return Z>=1&&Z<=12&&se>=1&&se<=(Z===2&&r(q)?29:s[Z])}function a(C,U){if(C&&U)return C>U?1:C23||V>59||C&&!yt)return!1;if(Z<=23&&se<=59&&K<60)return!0;let A=se-V*Cr,B=Z-Fe*Cr-(A<0?1:0);return(B===23||B===-1)&&(A===59||A===-1)&&K<61}}function l(C,U){if(!(C&&U))return;let q=new Date("2020-01-01T"+C).valueOf(),Z=new Date("2020-01-01T"+U).valueOf();if(q&&Z)return q-Z}function u(C,U){if(!(C&&U))return;let q=o.exec(C),Z=o.exec(U);if(q&&Z)return C=q[1]+q[2]+q[3],U=Z[1]+Z[2]+Z[3],C>U?1:C=x}function k(C){return Number.isInteger(C)}function E(){return!0}var R=/[^\\]\\Z/;function O(C){if(R.test(C))return!1;try{return new RegExp(C),!0}catch{return!1}}}),vge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatLimitDefinition=void 0;var e=d8(),r=De(),n=r.operators,s={formatMaximum:{okStr:"<=",ok:n.LTE,fail:n.GT},formatMinimum:{okStr:">=",ok:n.GTE,fail:n.LT},formatExclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},formatExclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}},i={message:({keyword:o,schemaCode:c})=>r.str`should be ${s[o].okStr} ${c}`,params:({keyword:o,schemaCode:c})=>r._`{comparison: ${s[o].okStr}, limit: ${c}}`};t.formatLimitDefinition={keyword:Object.keys(s),type:"string",schemaType:"string",$data:!0,error:i,code(o){let{gen:c,data:l,schemaCode:u,keyword:p,it:d}=o,{opts:m,self:f}=d;if(!m.validateFormats)return;let g=new e.KeywordCxt(d,f.RULES.all.format.definition,"format");g.$data?v():h();function v(){let b=c.scopeValue("formats",{ref:f.formats,code:m.code.formats}),x=c.const("fmt",r._`${b}[${g.schemaCode}]`);o.fail$data((0,r.or)(r._`typeof ${x} != "object"`,r._`${x} instanceof RegExp`,r._`typeof ${x}.compare != "function"`,y(x)))}function h(){let b=g.schema,x=f.formats[b];if(!x||x===!0)return;if(typeof x!="object"||x instanceof RegExp||typeof x.compare!="function")throw Error(`"${p}": format "${b}" does not define "compare" function`);let w=c.scopeValue("formats",{key:b,ref:x,code:m.code.formats?r._`${m.code.formats}${(0,r.getProperty)(b)}`:void 0});o.fail$data(y(w))}function y(b){return r._`${b}.compare(${l}, ${u}) ${s[p].fail} 0`}},dependencies:["format"]};var a=o=>(o.addKeyword(t.formatLimitDefinition),o);t.default=a}),yge=ne((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=gge(),n=vge(),s=De(),i=new s.Name("fullFormats"),a=new s.Name("fastFormats"),o=(l,u={keywords:!0})=>{if(Array.isArray(u))return c(l,u,r.fullFormats,i),l;let[p,d]=u.mode==="fast"?[r.fastFormats,a]:[r.fullFormats,i],m=u.formats||r.formatNames;return c(l,m,p,d),u.keywords&&(0,n.default)(l),l};o.get=(l,u="full")=>{let p=(u==="fast"?r.fastFormats:r.fullFormats)[l];if(!p)throw Error(`Unknown format "${l}"`);return p};function c(l,u,p,d){var m,f;(m=(f=l.opts.code).formats)!==null&&m!==void 0||(f.formats=s._`require("ajv-formats/dist/formats").${d}`);for(let g of u)l.addFormat(g,p[g])}e.exports=t=o,Object.defineProperty(t,"__esModule",{value:!0}),t.default=o}),bge=50;function f8(t=bge){let e=new AbortController;return(0,m8.setMaxListeners)(t,e.signal),e}var Vi=class extends Error{};function v8(){return process.versions.bun!==void 0}var xge=typeof global=="object"&&global&&global.Object===Object&&global,_ge=xge,wge=typeof self=="object"&&self&&self.Object===Object&&self,Sge=_ge||wge||Function("return this")(),bT=Sge,kge=bT.Symbol,Rv=kge,y8=Object.prototype,Ege=y8.hasOwnProperty,Tge=y8.toString,md=Rv?Rv.toStringTag:void 0;function Rge(t){var e=Ege.call(t,md),r=t[md];try{t[md]=void 0;var n=!0}catch{}var s=Tge.call(t);return n&&(e?t[md]=r:delete t[md]),s}var Pge=Rge,Ige=Object.prototype,Cge=Ige.toString;function Oge(t){return Cge.call(t)}var Age=Oge,jge="[object Null]",Nge="[object Undefined]",cF=Rv?Rv.toStringTag:void 0;function Dge(t){return t==null?t===void 0?Nge:jge:cF&&cF in Object(t)?Pge(t):Age(t)}var Mge=Dge;function zge(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var b8=zge,$ge="[object AsyncFunction]",Lge="[object Function]",Uge="[object GeneratorFunction]",qge="[object Proxy]";function Fge(t){if(!b8(t))return!1;var e=Mge(t);return e==Lge||e==Uge||e==$ge||e==qge}var Hge=Fge,Bge=bT["__core-js_shared__"],RE=Bge,lF=(function(){var t=/[^.]+$/.exec(RE&&RE.keys&&RE.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function Wge(t){return!!lF&&lF in t}var Zge=Wge,Gge=Function.prototype,Vge=Gge.toString;function Kge(t){if(t!=null){try{return Vge.call(t)}catch{}try{return t+""}catch{}}return""}var Jge=Kge,Qge=/[\\^$.*+?()[\]{}|]/g,Yge=/^\[object .+?Constructor\]$/,Xge=Function.prototype,eve=Object.prototype,tve=Xge.toString,rve=eve.hasOwnProperty,nve=RegExp("^"+tve.call(rve).replace(Qge,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function sve(t){if(!b8(t)||Zge(t))return!1;var e=Hge(t)?nve:Yge;return e.test(Jge(t))}var ive=sve;function ave(t,e){return t?.[e]}var ove=ave;function cve(t,e){var r=ove(t,e);return ive(r)?r:void 0}var x8=cve,lve=x8(Object,"create"),Dd=lve;function uve(){this.__data__=Dd?Dd(null):{},this.size=0}var pve=uve;function dve(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var mve=dve,fve="__lodash_hash_undefined__",hve=Object.prototype,gve=hve.hasOwnProperty;function vve(t){var e=this.__data__;if(Dd){var r=e[t];return r===fve?void 0:r}return gve.call(e,t)?e[t]:void 0}var yve=vve,bve=Object.prototype,xve=bve.hasOwnProperty;function _ve(t){var e=this.__data__;return Dd?e[t]!==void 0:xve.call(e,t)}var wve=_ve,Sve="__lodash_hash_undefined__";function kve(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Dd&&e===void 0?Sve:e,this}var Eve=kve;function gl(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var $ve=zve;function Lve(t,e){var r=this.__data__,n=yy(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var Uve=Lve;function vl(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e(process.env.CLAUDE_CONFIG_DIR??(0,S8.join)((0,w8.homedir)(),".claude")).normalize("NFC"),()=>process.env.CLAUDE_CONFIG_DIR);function to(t){if(!t)return!1;if(typeof t=="boolean")return t;let e=t.toLowerCase().trim();return["1","true","yes","on"].includes(e)}function ae(t,e,r,n,s){if(n==="m")throw TypeError("Private method is not writable");if(n==="a"&&!s)throw TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!s:!e.has(t))throw TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(t,r):s?s.value=r:e.set(t,r),r}function D(t,e,r,n){if(r==="a"&&!n)throw TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}var E8=function(){let{crypto:t}=globalThis;if(t?.randomUUID)return E8=t.randomUUID.bind(t),t.randomUUID();let e=new Uint8Array(1),r=t?()=>t.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^r()&15>>+n/4).toString(16))};function Md(t){return typeof t=="object"&&t!==null&&("name"in t&&t.name==="AbortError"||"message"in t&&String(t.message).includes("FetchRequestCanceledException"))}var UE=t=>{if(t instanceof Error)return t;if(typeof t=="object"&&t!==null){try{if(Object.prototype.toString.call(t)==="[object Error]"){let e=Error(t.message,t.cause?{cause:t.cause}:{});return t.stack&&(e.stack=t.stack),t.cause&&!e.cause&&(e.cause=t.cause),t.name&&(e.name=t.name),e}}catch{}try{return Error(JSON.stringify(t))}catch{}}return Error(t)},ke=class extends Error{},Jr=class t extends ke{constructor(e,r,n,s){super(`${t.makeMessage(e,r,n)}`),this.status=e,this.headers=s,this.requestID=s?.get("request-id"),this.error=r}static makeMessage(e,r,n){let s=r?.message?typeof r.message=="string"?r.message:JSON.stringify(r.message):r?JSON.stringify(r):n;return e&&s?`${e} ${s}`:e?`${e} status code (no body)`:s||"(no status code or body)"}static generate(e,r,n,s){if(!e||!s)return new Yc({message:n,cause:UE(r)});let i=r;return e===400?new Iv(e,i,n,s):e===401?new Cv(e,i,n,s):e===403?new Ov(e,i,n,s):e===404?new Av(e,i,n,s):e===409?new jv(e,i,n,s):e===422?new Nv(e,i,n,s):e===429?new Dv(e,i,n,s):e>=500?new Mv(e,i,n,s):new t(e,i,n,s)}},Tn=class extends Jr{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}},Yc=class extends Jr{constructor({message:e,cause:r}){super(void 0,void 0,e||"Connection error.",void 0),r&&(this.cause=r)}},Pv=class extends Yc{constructor({message:e}={}){super({message:e??"Request timed out."})}},Iv=class extends Jr{},Cv=class extends Jr{},Ov=class extends Jr{},Av=class extends Jr{},jv=class extends Jr{},Nv=class extends Jr{},Dv=class extends Jr{},Mv=class extends Jr{},sye=/^[a-z][a-z0-9+.-]*:/i,iye=t=>sye.test(t),qE=t=>(qE=Array.isArray,qE(t)),pF=qE;function FE(t){return typeof t!="object"?{}:t??{}}function aye(t){if(!t)return!0;for(let e in t)return!1;return!0}function oye(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var cye=(t,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new ke(`${t} must be an integer`);if(e<0)throw new ke(`${t} must be a positive integer`);return e},T8=t=>{try{return JSON.parse(t)}catch{return}},lye=t=>new Promise(e=>setTimeout(e,t)),Bc="0.74.0",uye=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function pye(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}var dye=()=>{let t=pye();if(t==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Bc,"X-Stainless-OS":mF(Deno.build.os),"X-Stainless-Arch":dF(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Bc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(t==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Bc,"X-Stainless-OS":mF(globalThis.process.platform??"unknown"),"X-Stainless-Arch":dF(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let e=mye();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Bc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Bc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function mye(){if(typeof navigator>"u"||!navigator)return null;let t=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:e,pattern:r}of t){let n=r.exec(navigator.userAgent);if(n){let s=n[1]||0,i=n[2]||0,a=n[3]||0;return{browser:e,version:`${s}.${i}.${a}`}}}return null}var dF=t=>t==="x32"?"x32":t==="x86_64"||t==="x64"?"x64":t==="arm"?"arm":t==="aarch64"||t==="arm64"?"arm64":t?`other:${t}`:"unknown",mF=t=>(t=t.toLowerCase(),t.includes("ios")?"iOS":t==="android"?"Android":t==="darwin"?"MacOS":t==="win32"?"Windows":t==="freebsd"?"FreeBSD":t==="openbsd"?"OpenBSD":t==="linux"?"Linux":t?`Other:${t}`:"Unknown"),fF,fye=()=>fF??(fF=dye());function hye(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function R8(...t){let e=globalThis.ReadableStream;if(typeof e>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...t)}function P8(t){let e=Symbol.asyncIterator in t?t[Symbol.asyncIterator]():t[Symbol.iterator]();return R8({start(){},async pull(r){let{done:n,value:s}=await e.next();n?r.close():r.enqueue(s)},async cancel(){await e.return?.()}})}function _T(t){if(t[Symbol.asyncIterator])return t;let e=t.getReader();return{async next(){try{let r=await e.read();return r?.done&&e.releaseLock(),r}catch(r){throw e.releaseLock(),r}},async return(){let r=e.cancel();return e.releaseLock(),await r,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function gye(t){if(t===null||typeof t!="object")return;if(t[Symbol.asyncIterator]){await t[Symbol.asyncIterator]().return?.();return}let e=t.getReader(),r=e.cancel();e.releaseLock(),await r}var vye=({headers:t,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)});function yye(t){let e=0;for(let s of t)e+=s.length;let r=new Uint8Array(e),n=0;for(let s of t)r.set(s,n),n+=s.length;return r}var hF;function wT(t){let e;return(hF??(e=new globalThis.TextEncoder,hF=e.encode.bind(e)))(t)}var gF;function vF(t){let e;return(gF??(e=new globalThis.TextDecoder,gF=e.decode.bind(e)))(t)}var Sn,kn,no=class{constructor(){Sn.set(this,void 0),kn.set(this,void 0),ae(this,Sn,new Uint8Array,"f"),ae(this,kn,null,"f")}decode(e){if(e==null)return[];let r=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?wT(e):e;ae(this,Sn,yye([D(this,Sn,"f"),r]),"f");let n=[],s;for(;(s=bye(D(this,Sn,"f"),D(this,kn,"f")))!=null;){if(s.carriage&&D(this,kn,"f")==null){ae(this,kn,s.index,"f");continue}if(D(this,kn,"f")!=null&&(s.index!==D(this,kn,"f")+1||s.carriage)){n.push(vF(D(this,Sn,"f").subarray(0,D(this,kn,"f")-1))),ae(this,Sn,D(this,Sn,"f").subarray(D(this,kn,"f")),"f"),ae(this,kn,null,"f");continue}let i=D(this,kn,"f")!==null?s.preceding-1:s.preceding,a=vF(D(this,Sn,"f").subarray(0,i));n.push(a),ae(this,Sn,D(this,Sn,"f").subarray(s.index),"f"),ae(this,kn,null,"f")}return n}flush(){return D(this,Sn,"f").length?this.decode(` -`):[]}};Sn=new WeakMap,kn=new WeakMap;no.NEWLINE_CHARS=new Set([` -`,"\r"]);no.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function bye(t,e){for(let r=e??0;r{if(t){if(oye(zv,t))return t;Vr(r).warn(`${e} was set to ${JSON.stringify(t)}, expected one of ${JSON.stringify(Object.keys(zv))}`)}};function Cd(){}function rv(t,e,r){return!e||zv[t]>zv[r]?Cd:e[t].bind(e)}var _ye={error:Cd,warn:Cd,info:Cd,debug:Cd},bF=new WeakMap;function Vr(t){let e=t.logger,r=t.logLevel??"off";if(!e)return _ye;let n=bF.get(e);if(n&&n[0]===r)return n[1];let s={error:rv("error",e,r),warn:rv("warn",e,r),info:rv("info",e,r),debug:rv("debug",e,r)};return bF.set(e,[r,s]),s}var eo=t=>(t.options&&(t.options={...t.options},delete t.options.headers),t.headers&&(t.headers=Object.fromEntries((t.headers instanceof Headers?[...t.headers]:Object.entries(t.headers)).map(([e,r])=>[e,e.toLowerCase()==="x-api-key"||e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":r]))),"retryOfRequestLogID"in t&&(t.retryOfRequestLogID&&(t.retryOf=t.retryOfRequestLogID),delete t.retryOfRequestLogID),t),fd,so=class t{constructor(e,r,n){this.iterator=e,fd.set(this,void 0),this.controller=r,ae(this,fd,n,"f")}static fromSSEResponse(e,r,n){let s=!1,i=n?Vr(n):console;async function*a(){if(s)throw new ke("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let o=!1;try{for await(let c of wye(e,r)){if(c.event==="completion")try{yield JSON.parse(c.data)}catch(l){throw i.error("Could not parse message into JSON:",c.data),i.error("From chunk:",c.raw),l}if(c.event==="message_start"||c.event==="message_delta"||c.event==="message_stop"||c.event==="content_block_start"||c.event==="content_block_delta"||c.event==="content_block_stop")try{yield JSON.parse(c.data)}catch(l){throw i.error("Could not parse message into JSON:",c.data),i.error("From chunk:",c.raw),l}if(c.event!=="ping"&&c.event==="error")throw new Jr(void 0,T8(c.data)??c.data,void 0,e.headers)}o=!0}catch(c){if(Md(c))return;throw c}finally{o||r.abort()}}return new t(a,r,n)}static fromReadableStream(e,r,n){let s=!1;async function*i(){let o=new no,c=_T(e);for await(let l of c)for(let u of o.decode(l))yield u;for(let l of o.flush())yield l}async function*a(){if(s)throw new ke("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let o=!1;try{for await(let c of i())o||c&&(yield JSON.parse(c));o=!0}catch(c){if(Md(c))return;throw c}finally{o||r.abort()}}return new t(a,r,n)}[(fd=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let e=[],r=[],n=this.iterator(),s=i=>({next:()=>{if(i.length===0){let a=n.next();e.push(a),r.push(a)}return i.shift()}});return[new t(()=>s(e),this.controller,D(this,fd,"f")),new t(()=>s(r),this.controller,D(this,fd,"f"))]}toReadableStream(){let e=this,r;return R8({async start(){r=e[Symbol.asyncIterator]()},async pull(n){try{let{value:s,done:i}=await r.next();if(i)return n.close();let a=wT(JSON.stringify(s)+` -`);n.enqueue(a)}catch(s){n.error(s)}},async cancel(){await r.return?.()}})}};async function*wye(t,e){if(!t.body)throw e.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new ke("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new ke("Attempted to iterate over a response with no body");let r=new HE,n=new no,s=_T(t.body);for await(let i of Sye(s))for(let a of n.decode(i)){let o=r.decode(a);o&&(yield o)}for(let i of n.flush()){let a=r.decode(i);a&&(yield a)}}async function*Sye(t){let e=new Uint8Array;for await(let r of t){if(r==null)continue;let n=r instanceof ArrayBuffer?new Uint8Array(r):typeof r=="string"?wT(r):r,s=new Uint8Array(e.length+n.length);s.set(e),s.set(n,e.length),e=s;let i;for(;(i=xye(e))!==-1;)yield e.slice(0,i),e=e.slice(i)}e.length>0&&(yield e)}var HE=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let i={event:this.event,data:this.data.join(` -`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],i}if(this.chunks.push(e),e.startsWith(":"))return null;let[r,n,s]=kye(e,":");return s.startsWith(" ")&&(s=s.substring(1)),r==="event"?this.event=s:r==="data"&&this.data.push(s),null}};function kye(t,e){let r=t.indexOf(e);return r!==-1?[t.substring(0,r),e,t.substring(r+e.length)]:[t,"",""]}async function I8(t,e){let{response:r,requestLogID:n,retryOfRequestLogID:s,startTime:i}=e,a=await(async()=>{if(e.options.stream)return Vr(t).debug("response",r.status,r.url,r.headers,r.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(r,e.controller):so.fromSSEResponse(r,e.controller);if(r.status===204)return null;if(e.options.__binaryResponse)return r;let o=r.headers.get("content-type")?.split(";")[0]?.trim();if(o?.includes("application/json")||o?.endsWith("+json")){if(r.headers.get("content-length")==="0")return;let c=await r.json();return C8(c,r)}return await r.text()})();return Vr(t).debug(`[${n}] response parsed`,eo({retryOfRequestLogID:s,url:r.url,status:r.status,body:a,durationMs:Date.now()-i})),a}function C8(t,e){return!t||typeof t!="object"||Array.isArray(t)?t:Object.defineProperty(t,"_request_id",{value:e.headers.get("request-id"),enumerable:!1})}var Od,$v=class t extends Promise{constructor(e,r,n=I8){super(s=>{s(null)}),this.responsePromise=r,this.parseResponse=n,Od.set(this,void 0),ae(this,Od,e,"f")}_thenUnwrap(e){return new t(D(this,Od,"f"),this.responsePromise,async(r,n)=>C8(e(await this.parseResponse(r,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,r]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:r,request_id:r.headers.get("request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(D(this,Od,"f"),e))),this.parsedPromise}then(e,r){return this.parse().then(e,r)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}};Od=new WeakMap;var nv,Lv=class{constructor(e,r,n,s){nv.set(this,void 0),ae(this,nv,e,"f"),this.options=s,this.response=r,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new ke("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await D(this,nv,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(nv=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let r of e.getPaginatedItems())yield r}},BE=class extends $v{constructor(e,r,n){super(e,r,async(s,i)=>new n(s,i.response,await I8(s,i),i.options))}async*[Symbol.asyncIterator](){let e=await this;for await(let r of e)yield r}},io=class extends Lv{constructor(e,r,n,s){super(e,r,n,s),this.data=n.data||[],this.has_more=n.has_more||!1,this.first_id=n.first_id||null,this.last_id=n.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let r=this.first_id;return r?{...this.options,query:{...FE(this.options.query),before_id:r}}:null}let e=this.last_id;return e?{...this.options,query:{...FE(this.options.query),after_id:e}}:null}},Uv=class extends Lv{constructor(e,r,n,s){super(e,r,n,s),this.data=n.data||[],this.has_more=n.has_more||!1,this.next_page=n.next_page||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){let e=this.next_page;return e?{...this.options,query:{...FE(this.options.query),page:e}}:null}},O8=()=>{if(typeof File>"u"){let{process:t}=globalThis,e=typeof t?.versions?.node=="string"&&parseInt(t.versions.node.split("."))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(e?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Kc(t,e,r){return O8(),new File(t,e??"unknown_file",r)}function _v(t,e){let r=typeof t=="object"&&t!==null&&("name"in t&&t.name&&String(t.name)||"url"in t&&t.url&&String(t.url)||"filename"in t&&t.filename&&String(t.filename)||"path"in t&&t.path&&String(t.path))||"";return e?r.split(/[\\/]/).pop()||void 0:r}var A8=t=>t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function",ST=async(t,e,r=!0)=>({...t,body:await Tye(t.body,e,r)}),xF=new WeakMap;function Eye(t){let e=typeof t=="function"?t:t.fetch,r=xF.get(e);if(r)return r;let n=(async()=>{try{let s="Response"in e?e.Response:(await e("data:,")).constructor,i=new FormData;return i.toString()!==await new s(i).text()}catch{return!0}})();return xF.set(e,n),n}var Tye=async(t,e,r=!0)=>{if(!await Eye(e))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let n=new FormData;return await Promise.all(Object.entries(t||{}).map(([s,i])=>WE(n,s,i,r))),n},Rye=t=>t instanceof Blob&&"name"in t,WE=async(t,e,r,n)=>{if(r!==void 0){if(r==null)throw TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")t.append(e,String(r));else if(r instanceof Response){let s={},i=r.headers.get("Content-Type");i&&(s={type:i}),t.append(e,Kc([await r.blob()],_v(r,n),s))}else if(A8(r))t.append(e,Kc([await new Response(P8(r)).blob()],_v(r,n)));else if(Rye(r))t.append(e,Kc([r],_v(r,n),{type:r.type}));else if(Array.isArray(r))await Promise.all(r.map(s=>WE(t,e+"[]",s,n)));else if(typeof r=="object")await Promise.all(Object.entries(r).map(([s,i])=>WE(t,`${e}[${s}]`,i,n)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${r} instead`)}},j8=t=>t!=null&&typeof t=="object"&&typeof t.size=="number"&&typeof t.type=="string"&&typeof t.text=="function"&&typeof t.slice=="function"&&typeof t.arrayBuffer=="function",Pye=t=>t!=null&&typeof t=="object"&&typeof t.name=="string"&&typeof t.lastModified=="number"&&j8(t),Iye=t=>t!=null&&typeof t=="object"&&typeof t.url=="string"&&typeof t.blob=="function";async function Cye(t,e,r){if(O8(),t=await t,e||(e=_v(t,!0)),Pye(t))return t instanceof File&&e==null&&r==null?t:Kc([await t.arrayBuffer()],e??t.name,{type:t.type,lastModified:t.lastModified,...r});if(Iye(t)){let s=await t.blob();return e||(e=new URL(t.url).pathname.split(/[\\/]/).pop()),Kc(await ZE(s),e,r)}let n=await ZE(t);if(!r?.type){let s=n.find(i=>typeof i=="object"&&"type"in i&&i.type);typeof s=="string"&&(r={...r,type:s})}return Kc(n,e,r)}async function ZE(t){let e=[];if(typeof t=="string"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer)e.push(t);else if(j8(t))e.push(t instanceof Blob?t:await t.arrayBuffer());else if(A8(t))for await(let r of t)e.push(...await ZE(r));else{let r=t?.constructor?.name;throw Error(`Unexpected data type: ${typeof t}${r?`; constructor: ${r}`:""}${Oye(t)}`)}return e}function Oye(t){return typeof t!="object"||t===null?"":`; props: [${Object.getOwnPropertyNames(t).map(e=>`"${e}"`).join(", ")}]`}var Rn=class{constructor(e){this._client=e}},N8=Symbol.for("brand.privateNullableHeaders");function*Aye(t){if(!t)return;if(N8 in t){let{values:n,nulls:s}=t;yield*n.entries();for(let i of s)yield[i,null];return}let e=!1,r;t instanceof Headers?r=t.entries():pF(t)?r=t:(e=!0,r=Object.entries(t??{}));for(let n of r){let s=n[0];if(typeof s!="string")throw TypeError("expected header name to be a string");let i=pF(n[1])?n[1]:[n[1]],a=!1;for(let o of i)o!==void 0&&(e&&!a&&(a=!0,yield[s,null]),yield[s,o])}}var Ve=t=>{let e=new Headers,r=new Set;for(let n of t){let s=new Set;for(let[i,a]of Aye(n)){let o=i.toLowerCase();s.has(o)||(e.delete(i),s.add(o)),a===null?(e.delete(i),r.add(o)):(e.append(i,a),r.delete(o))}}return{[N8]:!0,values:e,nulls:r}},Nd=Symbol("anthropic.sdk.stainlessHelper");function wv(t){return typeof t=="object"&&t!==null&&Nd in t}function D8(t,e){let r=new Set;if(t)for(let n of t)wv(n)&&r.add(n[Nd]);if(e){for(let n of e)if(wv(n)&&r.add(n[Nd]),Array.isArray(n.content))for(let s of n.content)wv(s)&&r.add(s[Nd])}return Array.from(r)}function M8(t,e){let r=D8(t,e);return r.length===0?{}:{"x-stainless-helper":r.join(", ")}}function jye(t){return wv(t)?{"x-stainless-helper":t[Nd]}:{}}function z8(t){return t.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var _F=Object.freeze(Object.create(null)),Nye=(t=z8)=>function(e,...r){if(e.length===1)return e[0];let n=!1,s=[],i=e.reduce((l,u,p)=>{/[?#]/.test(u)&&(n=!0);let d=r[p],m=(n?encodeURIComponent:t)(""+d);return p!==r.length&&(d==null||typeof d=="object"&&d.toString===Object.getPrototypeOf(Object.getPrototypeOf(d.hasOwnProperty??_F)??_F)?.toString)&&(m=d+"",s.push({start:l.length+u.length,length:m.length,error:`Value of type ${Object.prototype.toString.call(d).slice(8,-1)} is not a valid path parameter`})),l+u+(p===r.length?"":m)},""),a=i.split(/[?#]/,1)[0],o=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,c;for(;(c=o.exec(a))!==null;)s.push({start:c.index,length:c[0].length,error:`Value "${c[0]}" can't be safely passed as a path parameter`});if(s.sort((l,u)=>l.start-u.start),s.length>0){let l=0,u=s.reduce((p,d)=>{let m=" ".repeat(d.start-l),f="^".repeat(d.length);return l=d.start+d.length,p+m+f},"");throw new ke(`Path parameters result in path with invalid segments: + deps: ${u}}`};var s={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[l,u]=i(c);a(c,l),o(c,u)}};function i({schema:c}){let l={},u={};for(let p in c){if(p==="__proto__")continue;let d=Array.isArray(c[p])?l:u;d[p]=c[p]}return[l,u]}function a(c,l=c.schema){let{gen:u,data:p,it:d}=c;if(Object.keys(l).length===0)return;let m=u.let("missing");for(let f in l){let g=l[f];if(g.length===0)continue;let v=(0,n.propertyInData)(u,p,f,d.opts.ownProperties);c.setParams({property:f,depsCount:g.length,deps:g.join(", ")}),d.allErrors?u.if(v,()=>{for(let h of g)(0,n.checkReportMissingProp)(c,h)}):(u.if(e._`${v} && (${(0,n.checkMissingProp)(c,g,m)})`),(0,n.reportMissingProp)(c,m),u.else())}}t.validatePropertyDeps=a;function o(c,l=c.schema){let{gen:u,data:p,keyword:d,it:m}=c,f=u.name("valid");for(let g in l)(0,r.alwaysValidSchema)(m,l[g])||(u.if((0,n.propertyInData)(u,p,g,m.opts.ownProperties),()=>{let v=c.subschema({keyword:d,schemaProp:g},f);c.mergeValidEvaluated(v,f)},()=>u.var(f,!0)),c.ok(f))}t.validateSchemaDeps=o,t.default=s}),Ghe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:"property name must be valid",params:({params:i})=>e._`{propertyName: ${i.propertyName}}`},s={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(i){let{gen:a,schema:o,data:c,it:l}=i;if((0,r.alwaysValidSchema)(l,o))return;let u=a.name("valid");a.forIn("key",c,p=>{i.setParams({propertyName:p}),i.subschema({keyword:"propertyNames",data:p,dataTypes:["string"],propertyName:p,compositeRule:!0},u),a.if((0,e.not)(u),()=>{i.error(!0),!l.allErrors&&a.break()})}),i.ok(u)}};t.default=s}),o8=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=_s(),r=De(),n=Xi(),s=rt(),i={message:"must NOT have additional properties",params:({params:o})=>r._`{additionalProperty: ${o.additionalProperty}}`},a={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:i,code(o){let{gen:c,schema:l,parentSchema:u,data:p,errsCount:d,it:m}=o;if(!d)throw Error("ajv implementation error");let{allErrors:f,opts:g}=m;if(m.props=!0,g.removeAdditional!=="all"&&(0,s.alwaysValidSchema)(m,l))return;let v=(0,e.allSchemaProperties)(u.properties),h=(0,e.allSchemaProperties)(u.patternProperties);y(),o.ok(r._`${d} === ${n.default.errors}`);function y(){c.forIn("key",p,E=>{!v.length&&!h.length?w(E):c.if(b(E),()=>w(E))})}function b(E){let k;if(v.length>8){let R=(0,s.schemaRefOrVal)(m,u.properties,"properties");k=(0,e.isOwnProperty)(c,R,E)}else v.length?k=(0,r.or)(...v.map(R=>r._`${E} === ${R}`)):k=r.nil;return h.length&&(k=(0,r.or)(k,...h.map(R=>r._`${(0,e.usePattern)(o,R)}.test(${E})`))),(0,r.not)(k)}function x(E){c.code(r._`delete ${p}[${E}]`)}function w(E){if(g.removeAdditional==="all"||g.removeAdditional&&l===!1){x(E);return}if(l===!1){o.setParams({additionalProperty:E}),o.error(),!f&&c.break();return}if(typeof l=="object"&&!(0,s.alwaysValidSchema)(m,l)){let k=c.name("valid");g.removeAdditional==="failing"?(S(E,k,!1),c.if((0,r.not)(k),()=>{o.reset(),x(E)})):(S(E,k),!f&&c.if((0,r.not)(k),()=>c.break()))}}function S(E,k,R){let O={keyword:"additionalProperties",dataProp:E,dataPropType:s.Type.Str};R===!1&&Object.assign(O,{compositeRule:!0,createErrors:!1,allErrors:!1}),o.subschema(O,k)}}};t.default=a}),Vhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=fy(),r=_s(),n=rt(),s=o8(),i={keyword:"properties",type:"object",schemaType:"object",code(a){let{gen:o,schema:c,parentSchema:l,data:u,it:p}=a;p.opts.removeAdditional==="all"&&l.additionalProperties===void 0&&s.default.code(new e.KeywordCxt(p,s.default,"additionalProperties"));let d=(0,r.allSchemaProperties)(c);for(let h of d)p.definedProperties.add(h);p.opts.unevaluated&&d.length&&p.props!==!0&&(p.props=n.mergeEvaluated.props(o,(0,n.toHash)(d),p.props));let m=d.filter(h=>!(0,n.alwaysValidSchema)(p,c[h]));if(m.length===0)return;let f=o.name("valid");for(let h of m)g(h)?v(h):(o.if((0,r.propertyInData)(o,u,h,p.opts.ownProperties)),v(h),!p.allErrors&&o.else().var(f,!0),o.endIf()),a.it.definedProperties.add(h),a.ok(f);function g(h){return p.opts.useDefaults&&!p.compositeRule&&c[h].default!==void 0}function v(h){a.subschema({keyword:"properties",schemaProp:h,dataProp:h},f)}}};t.default=i}),Khe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=_s(),r=De(),n=rt(),s=rt(),i={keyword:"patternProperties",type:"object",schemaType:"object",code(a){let{gen:o,schema:c,data:l,parentSchema:u,it:p}=a,{opts:d}=p,m=(0,e.allSchemaProperties)(c),f=m.filter(w=>(0,n.alwaysValidSchema)(p,c[w]));if(m.length===0||f.length===m.length&&(!p.opts.unevaluated||p.props===!0))return;let g=d.strictSchema&&!d.allowMatchingProperties&&u.properties,v=o.name("valid");p.props!==!0&&!(p.props instanceof r.Name)&&(p.props=(0,s.evaluatedPropsToName)(o,p.props));let{props:h}=p;y();function y(){for(let w of m)g&&b(w),p.allErrors?x(w):(o.var(v,!0),x(w),o.if(v))}function b(w){for(let S in g)new RegExp(w).test(S)&&(0,n.checkStrictMode)(p,`property ${S} matches pattern ${w} (use allowMatchingProperties)`)}function x(w){o.forIn("key",l,S=>{o.if(r._`${(0,e.usePattern)(a,w)}.test(${S})`,()=>{let E=f.includes(w);E||a.subschema({keyword:"patternProperties",schemaProp:w,dataProp:S,dataPropType:s.Type.Str},v),p.opts.unevaluated&&h!==!0?o.assign(r._`${h}[${S}]`,!0):!E&&!p.allErrors&&o.if((0,r.not)(v),()=>o.break())})})}}};t.default=i}),Jhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:s,schema:i,it:a}=n;if((0,e.alwaysValidSchema)(a,i)){n.fail();return}let o=s.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),n.failResult(o,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),Qhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=_s(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),Yhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:"must match exactly one schema in oneOf",params:({params:i})=>e._`{passingSchemas: ${i.passing}}`},s={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(i){let{gen:a,schema:o,parentSchema:c,it:l}=i;if(!Array.isArray(o))throw Error("ajv implementation error");if(l.opts.discriminator&&c.discriminator)return;let u=o,p=a.let("valid",!1),d=a.let("passing",null),m=a.name("_valid");i.setParams({passing:d}),a.block(f),i.result(p,()=>i.reset(),()=>i.error(!0));function f(){u.forEach((g,v)=>{let h;(0,r.alwaysValidSchema)(l,g)?a.var(m,!0):h=i.subschema({keyword:"oneOf",schemaProp:v,compositeRule:!0},m),v>0&&a.if(e._`${m} && ${p}`).assign(p,!1).assign(d,e._`[${d}, ${v}]`).else(),a.if(m,()=>{a.assign(p,!0),a.assign(d,v),h&&i.mergeEvaluated(h,e.Name)})})}}};t.default=s}),Xhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:s,schema:i,it:a}=n;if(!Array.isArray(i))throw Error("ajv implementation error");let o=s.name("valid");i.forEach((c,l)=>{if((0,e.alwaysValidSchema)(a,c))return;let u=n.subschema({keyword:"allOf",schemaProp:l},o);n.ok(o),n.mergeEvaluated(u)})}};t.default=r}),ege=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:({params:a})=>e.str`must match "${a.ifClause}" schema`,params:({params:a})=>e._`{failingKeyword: ${a.ifClause}}`},s={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:n,code(a){let{gen:o,parentSchema:c,it:l}=a;c.then===void 0&&c.else===void 0&&(0,r.checkStrictMode)(l,'"if" without "then" and "else" is ignored');let u=i(l,"then"),p=i(l,"else");if(!u&&!p)return;let d=o.let("valid",!0),m=o.name("_valid");if(f(),a.reset(),u&&p){let v=o.let("ifClause");a.setParams({ifClause:v}),o.if(m,g("then",v),g("else",v))}else u?o.if(m,g("then")):o.if((0,e.not)(m),g("else"));a.pass(d,()=>a.error(!0));function f(){let v=a.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},m);a.mergeEvaluated(v)}function g(v,h){return()=>{let y=a.subschema({keyword:v},m);o.assign(d,m),a.mergeValidEvaluated(y,d),h?o.assign(h,e._`${v}`):a.setParams({ifClause:v})}}}};function i(a,o){let c=a.schema[o];return c!==void 0&&!(0,r.alwaysValidSchema)(a,c)}t.default=s}),tge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:s,it:i}){s.if===void 0&&(0,e.checkStrictMode)(i,`"${n}" without "if" is ignored`)}};t.default=r}),rge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=i8(),r=Hhe(),n=a8(),s=Bhe(),i=Whe(),a=Zhe(),o=Ghe(),c=o8(),l=Vhe(),u=Khe(),p=Jhe(),d=Qhe(),m=Yhe(),f=Xhe(),g=ege(),v=tge();function h(y=!1){let b=[p.default,d.default,m.default,f.default,g.default,v.default,o.default,c.default,a.default,l.default,u.default];return y?b.push(r.default,s.default):b.push(e.default,n.default),b.push(i.default),b}t.default=h}),nge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message:({schemaCode:s})=>e.str`must match format "${s}"`,params:({schemaCode:s})=>e._`{format: ${s}}`},n={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(s,i){let{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:p}=s,{opts:d,errSchemaPath:m,schemaEnv:f,self:g}=p;if(!d.validateFormats)return;c?v():h();function v(){let y=a.scopeValue("formats",{ref:g.formats,code:d.code.formats}),b=a.const("fDef",e._`${y}[${u}]`),x=a.let("fType"),w=a.let("format");a.if(e._`typeof ${b} == "object" && !(${b} instanceof RegExp)`,()=>a.assign(x,e._`${b}.type || "string"`).assign(w,e._`${b}.validate`),()=>a.assign(x,e._`"string"`).assign(w,b)),s.fail$data((0,e.or)(S(),E()));function S(){return d.strictSchema===!1?e.nil:e._`${u} && !${w}`}function E(){let k=f.$async?e._`(${b}.async ? await ${w}(${o}) : ${w}(${o}))`:e._`${w}(${o})`,R=e._`(typeof ${w} == "function" ? ${k} : ${w}.test(${o}))`;return e._`${w} && ${w} !== true && ${x} === ${i} && !${R}`}}function h(){let y=g.formats[l];if(!y){S();return}if(y===!0)return;let[b,x,w]=E(y);b===i&&s.pass(k());function S(){if(d.strictSchema===!1){g.logger.warn(R());return}throw Error(R());function R(){return`unknown format "${l}" ignored in schema at path "${m}"`}}function E(R){let O=R instanceof RegExp?(0,e.regexpCode)(R):d.code.formats?e._`${d.code.formats}${(0,e.getProperty)(l)}`:void 0,C=a.scopeValue("formats",{key:l,ref:R,code:O});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,e._`${C}.validate`]:["string",R,C]}function k(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!f.$async)throw Error("async format in sync schema");return e._`await ${w}(${o})`}return typeof x=="function"?e._`${w}(${o})`:e._`${w}.test(${o})`}}}};t.default=n}),sge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=nge(),r=[e.default];t.default=r}),ige=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),age=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Che(),r=Fhe(),n=rge(),s=sge(),i=ige(),a=[e.default,r.default,(0,n.default)(),s.default,i.metadataVocabulary,i.contentVocabulary];t.default=a}),oge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0;var e;(function(r){r.Tag="tag",r.Mapping="mapping"})(e||(t.DiscrError=e={}))}),cge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=oge(),n=fT(),s=hy(),i=rt(),a={message:({params:{discrError:c,tagName:l}})=>c===r.DiscrError.Tag?`tag "${l}" must be string`:`value of tag "${l}" must be in oneOf`,params:({params:{discrError:c,tag:l,tagName:u}})=>e._`{error: ${c}, tag: ${u}, tagValue: ${l}}`},o={keyword:"discriminator",type:"object",schemaType:"object",error:a,code(c){let{gen:l,data:u,schema:p,parentSchema:d,it:m}=c,{oneOf:f}=d;if(!m.opts.discriminator)throw Error("discriminator: requires discriminator option");let g=p.propertyName;if(typeof g!="string")throw Error("discriminator: requires propertyName");if(p.mapping)throw Error("discriminator: mapping is not supported");if(!f)throw Error("discriminator: requires oneOf keyword");let v=l.let("valid",!1),h=l.const("tag",e._`${u}${(0,e.getProperty)(g)}`);l.if(e._`typeof ${h} == "string"`,()=>y(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:h,tagName:g})),c.ok(v);function y(){let w=x();l.if(!1);for(let S in w)l.elseIf(e._`${h} === ${S}`),l.assign(v,b(w[S]));l.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:h,tagName:g}),l.endIf()}function b(w){let S=l.name("valid"),E=c.subschema({keyword:"oneOf",schemaProp:w},S);return c.mergeEvaluated(E,e.Name),S}function x(){var w;let S={},E=R(d),k=!0;for(let U=0;U{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),c8=ne((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv=void 0;var r=Rhe(),n=age(),s=cge(),i=lge(),a=["/properties"],o="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),n.default.forEach(f=>this.addVocabulary(f)),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let f=this.opts.$data?this.$dataMetaSchema(i,a):i;this.addMetaSchema(f,o,!1),this.refs["http://json-schema.org/schema"]=o}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var l=fy();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var u=De();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return u._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return u.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return u.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return u.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return u.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return u.CodeGen}});var p=mT();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return p.default}});var d=hy();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return d.default}})}),uge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatNames=t.fastFormats=t.fullFormats=void 0;function e(C,U){return{validate:C,compare:U}}t.fullFormats={date:e(i,a),time:e(c(!0),l),"date-time":e(d(!0),m),"iso-time":e(c(),u),"iso-date-time":e(d(),f),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:h,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:O,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:b,int32:{type:"number",validate:S},int64:{type:"number",validate:E},float:{type:"number",validate:k},double:{type:"number",validate:k},password:!0,binary:!0},t.fastFormats={...t.fullFormats,date:e(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,a),time:e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,l),"date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,m),"iso-time":e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,u),"iso-date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,f),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},t.formatNames=Object.keys(t.fullFormats);function r(C){return C%4===0&&(C%100!==0||C%400===0)}var n=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,s=[0,31,28,31,30,31,30,31,31,30,31,30,31];function i(C){let U=n.exec(C);if(!U)return!1;let q=+U[1],Z=+U[2],se=+U[3];return Z>=1&&Z<=12&&se>=1&&se<=(Z===2&&r(q)?29:s[Z])}function a(C,U){if(C&&U)return C>U?1:C23||V>59||C&&!yt)return!1;if(Z<=23&&se<=59&&K<60)return!0;let A=se-V*Cr,B=Z-Fe*Cr-(A<0?1:0);return(B===23||B===-1)&&(A===59||A===-1)&&K<61}}function l(C,U){if(!(C&&U))return;let q=new Date("2020-01-01T"+C).valueOf(),Z=new Date("2020-01-01T"+U).valueOf();if(q&&Z)return q-Z}function u(C,U){if(!(C&&U))return;let q=o.exec(C),Z=o.exec(U);if(q&&Z)return C=q[1]+q[2]+q[3],U=Z[1]+Z[2]+Z[3],C>U?1:C=x}function E(C){return Number.isInteger(C)}function k(){return!0}var R=/[^\\]\\Z/;function O(C){if(R.test(C))return!1;try{return new RegExp(C),!0}catch{return!1}}}),pge=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatLimitDefinition=void 0;var e=c8(),r=De(),n=r.operators,s={formatMaximum:{okStr:"<=",ok:n.LTE,fail:n.GT},formatMinimum:{okStr:">=",ok:n.GTE,fail:n.LT},formatExclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},formatExclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}},i={message:({keyword:o,schemaCode:c})=>r.str`should be ${s[o].okStr} ${c}`,params:({keyword:o,schemaCode:c})=>r._`{comparison: ${s[o].okStr}, limit: ${c}}`};t.formatLimitDefinition={keyword:Object.keys(s),type:"string",schemaType:"string",$data:!0,error:i,code(o){let{gen:c,data:l,schemaCode:u,keyword:p,it:d}=o,{opts:m,self:f}=d;if(!m.validateFormats)return;let g=new e.KeywordCxt(d,f.RULES.all.format.definition,"format");g.$data?v():h();function v(){let b=c.scopeValue("formats",{ref:f.formats,code:m.code.formats}),x=c.const("fmt",r._`${b}[${g.schemaCode}]`);o.fail$data((0,r.or)(r._`typeof ${x} != "object"`,r._`${x} instanceof RegExp`,r._`typeof ${x}.compare != "function"`,y(x)))}function h(){let b=g.schema,x=f.formats[b];if(!x||x===!0)return;if(typeof x!="object"||x instanceof RegExp||typeof x.compare!="function")throw Error(`"${p}": format "${b}" does not define "compare" function`);let w=c.scopeValue("formats",{key:b,ref:x,code:m.code.formats?r._`${m.code.formats}${(0,r.getProperty)(b)}`:void 0});o.fail$data(y(w))}function y(b){return r._`${b}.compare(${l}, ${u}) ${s[p].fail} 0`}},dependencies:["format"]};var a=o=>(o.addKeyword(t.formatLimitDefinition),o);t.default=a}),dge=ne((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=uge(),n=pge(),s=De(),i=new s.Name("fullFormats"),a=new s.Name("fastFormats"),o=(l,u={keywords:!0})=>{if(Array.isArray(u))return c(l,u,r.fullFormats,i),l;let[p,d]=u.mode==="fast"?[r.fastFormats,a]:[r.fullFormats,i],m=u.formats||r.formatNames;return c(l,m,p,d),u.keywords&&(0,n.default)(l),l};o.get=(l,u="full")=>{let p=(u==="fast"?r.fastFormats:r.fullFormats)[l];if(!p)throw Error(`Unknown format "${l}"`);return p};function c(l,u,p,d){var m,f;(m=(f=l.opts.code).formats)!==null&&m!==void 0||(f.formats=s._`require("ajv-formats/dist/formats").${d}`);for(let g of u)l.addFormat(g,p[g])}e.exports=t=o,Object.defineProperty(t,"__esModule",{value:!0}),t.default=o}),mge=50;function u8(t=mge){let e=new AbortController;return(0,l8.setMaxListeners)(t,e.signal),e}var Vi=class extends Error{};function m8(){return process.versions.bun!==void 0}var fge=typeof global=="object"&&global&&global.Object===Object&&global,hge=fge,gge=typeof self=="object"&&self&&self.Object===Object&&self,vge=hge||gge||Function("return this")(),gT=vge,yge=gT.Symbol,kv=yge,f8=Object.prototype,bge=f8.hasOwnProperty,xge=f8.toString,dd=kv?kv.toStringTag:void 0;function _ge(t){var e=bge.call(t,dd),r=t[dd];try{t[dd]=void 0;var n=!0}catch{}var s=xge.call(t);return n&&(e?t[dd]=r:delete t[dd]),s}var wge=_ge,Sge=Object.prototype,Ege=Sge.toString;function kge(t){return Ege.call(t)}var Tge=kge,Rge="[object Null]",Pge="[object Undefined]",sF=kv?kv.toStringTag:void 0;function Ige(t){return t==null?t===void 0?Pge:Rge:sF&&sF in Object(t)?wge(t):Tge(t)}var Cge=Ige;function Oge(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var h8=Oge,Age="[object AsyncFunction]",jge="[object Function]",Nge="[object GeneratorFunction]",Dge="[object Proxy]";function Mge(t){if(!h8(t))return!1;var e=Cge(t);return e==jge||e==Nge||e==Age||e==Dge}var zge=Mge,$ge=gT["__core-js_shared__"],Ek=$ge,iF=(function(){var t=/[^.]+$/.exec(Ek&&Ek.keys&&Ek.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function Lge(t){return!!iF&&iF in t}var Uge=Lge,qge=Function.prototype,Fge=qge.toString;function Hge(t){if(t!=null){try{return Fge.call(t)}catch{}try{return t+""}catch{}}return""}var Bge=Hge,Wge=/[\\^$.*+?()[\]{}|]/g,Zge=/^\[object .+?Constructor\]$/,Gge=Function.prototype,Vge=Object.prototype,Kge=Gge.toString,Jge=Vge.hasOwnProperty,Qge=RegExp("^"+Kge.call(Jge).replace(Wge,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Yge(t){if(!h8(t)||Uge(t))return!1;var e=zge(t)?Qge:Zge;return e.test(Bge(t))}var Xge=Yge;function eve(t,e){return t?.[e]}var tve=eve;function rve(t,e){var r=tve(t,e);return Xge(r)?r:void 0}var g8=rve,nve=g8(Object,"create"),Nd=nve;function sve(){this.__data__=Nd?Nd(null):{},this.size=0}var ive=sve;function ave(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var ove=ave,cve="__lodash_hash_undefined__",lve=Object.prototype,uve=lve.hasOwnProperty;function pve(t){var e=this.__data__;if(Nd){var r=e[t];return r===cve?void 0:r}return uve.call(e,t)?e[t]:void 0}var dve=pve,mve=Object.prototype,fve=mve.hasOwnProperty;function hve(t){var e=this.__data__;return Nd?e[t]!==void 0:fve.call(e,t)}var gve=hve,vve="__lodash_hash_undefined__";function yve(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Nd&&e===void 0?vve:e,this}var bve=yve;function hl(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var Ave=Ove;function jve(t,e){var r=this.__data__,n=gy(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var Nve=jve;function gl(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e(process.env.CLAUDE_CONFIG_DIR??(0,b8.join)((0,y8.homedir)(),".claude")).normalize("NFC"),()=>process.env.CLAUDE_CONFIG_DIR);function eo(t){if(!t)return!1;if(typeof t=="boolean")return t;let e=t.toLowerCase().trim();return["1","true","yes","on"].includes(e)}function ae(t,e,r,n,s){if(n==="m")throw TypeError("Private method is not writable");if(n==="a"&&!s)throw TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!s:!e.has(t))throw TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(t,r):s?s.value=r:e.set(t,r),r}function D(t,e,r,n){if(r==="a"&&!n)throw TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}var _8=function(){let{crypto:t}=globalThis;if(t?.randomUUID)return _8=t.randomUUID.bind(t),t.randomUUID();let e=new Uint8Array(1),r=t?()=>t.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^r()&15>>+n/4).toString(16))};function Dd(t){return typeof t=="object"&&t!==null&&("name"in t&&t.name==="AbortError"||"message"in t&&String(t.message).includes("FetchRequestCanceledException"))}var zk=t=>{if(t instanceof Error)return t;if(typeof t=="object"&&t!==null){try{if(Object.prototype.toString.call(t)==="[object Error]"){let e=Error(t.message,t.cause?{cause:t.cause}:{});return t.stack&&(e.stack=t.stack),t.cause&&!e.cause&&(e.cause=t.cause),t.name&&(e.name=t.name),e}}catch{}try{return Error(JSON.stringify(t))}catch{}}return Error(t)},Ee=class extends Error{},Jr=class t extends Ee{constructor(e,r,n,s){super(`${t.makeMessage(e,r,n)}`),this.status=e,this.headers=s,this.requestID=s?.get("request-id"),this.error=r}static makeMessage(e,r,n){let s=r?.message?typeof r.message=="string"?r.message:JSON.stringify(r.message):r?JSON.stringify(r):n;return e&&s?`${e} ${s}`:e?`${e} status code (no body)`:s||"(no status code or body)"}static generate(e,r,n,s){if(!e||!s)return new Qc({message:n,cause:zk(r)});let i=r;return e===400?new Rv(e,i,n,s):e===401?new Pv(e,i,n,s):e===403?new Iv(e,i,n,s):e===404?new Cv(e,i,n,s):e===409?new Ov(e,i,n,s):e===422?new Av(e,i,n,s):e===429?new jv(e,i,n,s):e>=500?new Nv(e,i,n,s):new t(e,i,n,s)}},Tn=class extends Jr{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}},Qc=class extends Jr{constructor({message:e,cause:r}){super(void 0,void 0,e||"Connection error.",void 0),r&&(this.cause=r)}},Tv=class extends Qc{constructor({message:e}={}){super({message:e??"Request timed out."})}},Rv=class extends Jr{},Pv=class extends Jr{},Iv=class extends Jr{},Cv=class extends Jr{},Ov=class extends Jr{},Av=class extends Jr{},jv=class extends Jr{},Nv=class extends Jr{},Yve=/^[a-z][a-z0-9+.-]*:/i,Xve=t=>Yve.test(t),$k=t=>($k=Array.isArray,$k(t)),oF=$k;function Lk(t){return typeof t!="object"?{}:t??{}}function eye(t){if(!t)return!0;for(let e in t)return!1;return!0}function tye(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var rye=(t,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new Ee(`${t} must be an integer`);if(e<0)throw new Ee(`${t} must be a positive integer`);return e},w8=t=>{try{return JSON.parse(t)}catch{return}},nye=t=>new Promise(e=>setTimeout(e,t)),Hc="0.74.0",sye=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function iye(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}var aye=()=>{let t=iye();if(t==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Hc,"X-Stainless-OS":lF(Deno.build.os),"X-Stainless-Arch":cF(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Hc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(t==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Hc,"X-Stainless-OS":lF(globalThis.process.platform??"unknown"),"X-Stainless-Arch":cF(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let e=oye();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Hc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Hc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function oye(){if(typeof navigator>"u"||!navigator)return null;let t=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:e,pattern:r}of t){let n=r.exec(navigator.userAgent);if(n){let s=n[1]||0,i=n[2]||0,a=n[3]||0;return{browser:e,version:`${s}.${i}.${a}`}}}return null}var cF=t=>t==="x32"?"x32":t==="x86_64"||t==="x64"?"x64":t==="arm"?"arm":t==="aarch64"||t==="arm64"?"arm64":t?`other:${t}`:"unknown",lF=t=>(t=t.toLowerCase(),t.includes("ios")?"iOS":t==="android"?"Android":t==="darwin"?"MacOS":t==="win32"?"Windows":t==="freebsd"?"FreeBSD":t==="openbsd"?"OpenBSD":t==="linux"?"Linux":t?`Other:${t}`:"Unknown"),uF,cye=()=>uF??(uF=aye());function lye(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function S8(...t){let e=globalThis.ReadableStream;if(typeof e>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...t)}function E8(t){let e=Symbol.asyncIterator in t?t[Symbol.asyncIterator]():t[Symbol.iterator]();return S8({start(){},async pull(r){let{done:n,value:s}=await e.next();n?r.close():r.enqueue(s)},async cancel(){await e.return?.()}})}function yT(t){if(t[Symbol.asyncIterator])return t;let e=t.getReader();return{async next(){try{let r=await e.read();return r?.done&&e.releaseLock(),r}catch(r){throw e.releaseLock(),r}},async return(){let r=e.cancel();return e.releaseLock(),await r,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function uye(t){if(t===null||typeof t!="object")return;if(t[Symbol.asyncIterator]){await t[Symbol.asyncIterator]().return?.();return}let e=t.getReader(),r=e.cancel();e.releaseLock(),await r}var pye=({headers:t,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)});function dye(t){let e=0;for(let s of t)e+=s.length;let r=new Uint8Array(e),n=0;for(let s of t)r.set(s,n),n+=s.length;return r}var pF;function bT(t){let e;return(pF??(e=new globalThis.TextEncoder,pF=e.encode.bind(e)))(t)}var dF;function mF(t){let e;return(dF??(e=new globalThis.TextDecoder,dF=e.decode.bind(e)))(t)}var Sn,En,ro=class{constructor(){Sn.set(this,void 0),En.set(this,void 0),ae(this,Sn,new Uint8Array,"f"),ae(this,En,null,"f")}decode(e){if(e==null)return[];let r=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?bT(e):e;ae(this,Sn,dye([D(this,Sn,"f"),r]),"f");let n=[],s;for(;(s=mye(D(this,Sn,"f"),D(this,En,"f")))!=null;){if(s.carriage&&D(this,En,"f")==null){ae(this,En,s.index,"f");continue}if(D(this,En,"f")!=null&&(s.index!==D(this,En,"f")+1||s.carriage)){n.push(mF(D(this,Sn,"f").subarray(0,D(this,En,"f")-1))),ae(this,Sn,D(this,Sn,"f").subarray(D(this,En,"f")),"f"),ae(this,En,null,"f");continue}let i=D(this,En,"f")!==null?s.preceding-1:s.preceding,a=mF(D(this,Sn,"f").subarray(0,i));n.push(a),ae(this,Sn,D(this,Sn,"f").subarray(s.index),"f"),ae(this,En,null,"f")}return n}flush(){return D(this,Sn,"f").length?this.decode(` +`):[]}};Sn=new WeakMap,En=new WeakMap;ro.NEWLINE_CHARS=new Set([` +`,"\r"]);ro.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function mye(t,e){for(let r=e??0;r{if(t){if(tye(Dv,t))return t;Vr(r).warn(`${e} was set to ${JSON.stringify(t)}, expected one of ${JSON.stringify(Object.keys(Dv))}`)}};function Id(){}function ev(t,e,r){return!e||Dv[t]>Dv[r]?Id:e[t].bind(e)}var hye={error:Id,warn:Id,info:Id,debug:Id},hF=new WeakMap;function Vr(t){let e=t.logger,r=t.logLevel??"off";if(!e)return hye;let n=hF.get(e);if(n&&n[0]===r)return n[1];let s={error:ev("error",e,r),warn:ev("warn",e,r),info:ev("info",e,r),debug:ev("debug",e,r)};return hF.set(e,[r,s]),s}var Xa=t=>(t.options&&(t.options={...t.options},delete t.options.headers),t.headers&&(t.headers=Object.fromEntries((t.headers instanceof Headers?[...t.headers]:Object.entries(t.headers)).map(([e,r])=>[e,e.toLowerCase()==="x-api-key"||e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":r]))),"retryOfRequestLogID"in t&&(t.retryOfRequestLogID&&(t.retryOf=t.retryOfRequestLogID),delete t.retryOfRequestLogID),t),md,no=class t{constructor(e,r,n){this.iterator=e,md.set(this,void 0),this.controller=r,ae(this,md,n,"f")}static fromSSEResponse(e,r,n){let s=!1,i=n?Vr(n):console;async function*a(){if(s)throw new Ee("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let o=!1;try{for await(let c of gye(e,r)){if(c.event==="completion")try{yield JSON.parse(c.data)}catch(l){throw i.error("Could not parse message into JSON:",c.data),i.error("From chunk:",c.raw),l}if(c.event==="message_start"||c.event==="message_delta"||c.event==="message_stop"||c.event==="content_block_start"||c.event==="content_block_delta"||c.event==="content_block_stop")try{yield JSON.parse(c.data)}catch(l){throw i.error("Could not parse message into JSON:",c.data),i.error("From chunk:",c.raw),l}if(c.event!=="ping"&&c.event==="error")throw new Jr(void 0,w8(c.data)??c.data,void 0,e.headers)}o=!0}catch(c){if(Dd(c))return;throw c}finally{o||r.abort()}}return new t(a,r,n)}static fromReadableStream(e,r,n){let s=!1;async function*i(){let o=new ro,c=yT(e);for await(let l of c)for(let u of o.decode(l))yield u;for(let l of o.flush())yield l}async function*a(){if(s)throw new Ee("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let o=!1;try{for await(let c of i())o||c&&(yield JSON.parse(c));o=!0}catch(c){if(Dd(c))return;throw c}finally{o||r.abort()}}return new t(a,r,n)}[(md=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let e=[],r=[],n=this.iterator(),s=i=>({next:()=>{if(i.length===0){let a=n.next();e.push(a),r.push(a)}return i.shift()}});return[new t(()=>s(e),this.controller,D(this,md,"f")),new t(()=>s(r),this.controller,D(this,md,"f"))]}toReadableStream(){let e=this,r;return S8({async start(){r=e[Symbol.asyncIterator]()},async pull(n){try{let{value:s,done:i}=await r.next();if(i)return n.close();let a=bT(JSON.stringify(s)+` +`);n.enqueue(a)}catch(s){n.error(s)}},async cancel(){await r.return?.()}})}};async function*gye(t,e){if(!t.body)throw e.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new Ee("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new Ee("Attempted to iterate over a response with no body");let r=new Uk,n=new ro,s=yT(t.body);for await(let i of vye(s))for(let a of n.decode(i)){let o=r.decode(a);o&&(yield o)}for(let i of n.flush()){let a=r.decode(i);a&&(yield a)}}async function*vye(t){let e=new Uint8Array;for await(let r of t){if(r==null)continue;let n=r instanceof ArrayBuffer?new Uint8Array(r):typeof r=="string"?bT(r):r,s=new Uint8Array(e.length+n.length);s.set(e),s.set(n,e.length),e=s;let i;for(;(i=fye(e))!==-1;)yield e.slice(0,i),e=e.slice(i)}e.length>0&&(yield e)}var Uk=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let i={event:this.event,data:this.data.join(` +`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],i}if(this.chunks.push(e),e.startsWith(":"))return null;let[r,n,s]=yye(e,":");return s.startsWith(" ")&&(s=s.substring(1)),r==="event"?this.event=s:r==="data"&&this.data.push(s),null}};function yye(t,e){let r=t.indexOf(e);return r!==-1?[t.substring(0,r),e,t.substring(r+e.length)]:[t,"",""]}async function k8(t,e){let{response:r,requestLogID:n,retryOfRequestLogID:s,startTime:i}=e,a=await(async()=>{if(e.options.stream)return Vr(t).debug("response",r.status,r.url,r.headers,r.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(r,e.controller):no.fromSSEResponse(r,e.controller);if(r.status===204)return null;if(e.options.__binaryResponse)return r;let o=r.headers.get("content-type")?.split(";")[0]?.trim();if(o?.includes("application/json")||o?.endsWith("+json")){if(r.headers.get("content-length")==="0")return;let c=await r.json();return T8(c,r)}return await r.text()})();return Vr(t).debug(`[${n}] response parsed`,Xa({retryOfRequestLogID:s,url:r.url,status:r.status,body:a,durationMs:Date.now()-i})),a}function T8(t,e){return!t||typeof t!="object"||Array.isArray(t)?t:Object.defineProperty(t,"_request_id",{value:e.headers.get("request-id"),enumerable:!1})}var Cd,Mv=class t extends Promise{constructor(e,r,n=k8){super(s=>{s(null)}),this.responsePromise=r,this.parseResponse=n,Cd.set(this,void 0),ae(this,Cd,e,"f")}_thenUnwrap(e){return new t(D(this,Cd,"f"),this.responsePromise,async(r,n)=>T8(e(await this.parseResponse(r,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,r]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:r,request_id:r.headers.get("request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(D(this,Cd,"f"),e))),this.parsedPromise}then(e,r){return this.parse().then(e,r)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}};Cd=new WeakMap;var tv,zv=class{constructor(e,r,n,s){tv.set(this,void 0),ae(this,tv,e,"f"),this.options=s,this.response=r,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new Ee("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await D(this,tv,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(tv=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let r of e.getPaginatedItems())yield r}},qk=class extends Mv{constructor(e,r,n){super(e,r,async(s,i)=>new n(s,i.response,await k8(s,i),i.options))}async*[Symbol.asyncIterator](){let e=await this;for await(let r of e)yield r}},so=class extends zv{constructor(e,r,n,s){super(e,r,n,s),this.data=n.data||[],this.has_more=n.has_more||!1,this.first_id=n.first_id||null,this.last_id=n.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let r=this.first_id;return r?{...this.options,query:{...Lk(this.options.query),before_id:r}}:null}let e=this.last_id;return e?{...this.options,query:{...Lk(this.options.query),after_id:e}}:null}},$v=class extends zv{constructor(e,r,n,s){super(e,r,n,s),this.data=n.data||[],this.has_more=n.has_more||!1,this.next_page=n.next_page||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){let e=this.next_page;return e?{...this.options,query:{...Lk(this.options.query),page:e}}:null}},R8=()=>{if(typeof File>"u"){let{process:t}=globalThis,e=typeof t?.versions?.node=="string"&&parseInt(t.versions.node.split("."))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(e?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Vc(t,e,r){return R8(),new File(t,e??"unknown_file",r)}function bv(t,e){let r=typeof t=="object"&&t!==null&&("name"in t&&t.name&&String(t.name)||"url"in t&&t.url&&String(t.url)||"filename"in t&&t.filename&&String(t.filename)||"path"in t&&t.path&&String(t.path))||"";return e?r.split(/[\\/]/).pop()||void 0:r}var P8=t=>t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function",xT=async(t,e,r=!0)=>({...t,body:await xye(t.body,e,r)}),gF=new WeakMap;function bye(t){let e=typeof t=="function"?t:t.fetch,r=gF.get(e);if(r)return r;let n=(async()=>{try{let s="Response"in e?e.Response:(await e("data:,")).constructor,i=new FormData;return i.toString()!==await new s(i).text()}catch{return!0}})();return gF.set(e,n),n}var xye=async(t,e,r=!0)=>{if(!await bye(e))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let n=new FormData;return await Promise.all(Object.entries(t||{}).map(([s,i])=>Fk(n,s,i,r))),n},_ye=t=>t instanceof Blob&&"name"in t,Fk=async(t,e,r,n)=>{if(r!==void 0){if(r==null)throw TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")t.append(e,String(r));else if(r instanceof Response){let s={},i=r.headers.get("Content-Type");i&&(s={type:i}),t.append(e,Vc([await r.blob()],bv(r,n),s))}else if(P8(r))t.append(e,Vc([await new Response(E8(r)).blob()],bv(r,n)));else if(_ye(r))t.append(e,Vc([r],bv(r,n),{type:r.type}));else if(Array.isArray(r))await Promise.all(r.map(s=>Fk(t,e+"[]",s,n)));else if(typeof r=="object")await Promise.all(Object.entries(r).map(([s,i])=>Fk(t,`${e}[${s}]`,i,n)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${r} instead`)}},I8=t=>t!=null&&typeof t=="object"&&typeof t.size=="number"&&typeof t.type=="string"&&typeof t.text=="function"&&typeof t.slice=="function"&&typeof t.arrayBuffer=="function",wye=t=>t!=null&&typeof t=="object"&&typeof t.name=="string"&&typeof t.lastModified=="number"&&I8(t),Sye=t=>t!=null&&typeof t=="object"&&typeof t.url=="string"&&typeof t.blob=="function";async function Eye(t,e,r){if(R8(),t=await t,e||(e=bv(t,!0)),wye(t))return t instanceof File&&e==null&&r==null?t:Vc([await t.arrayBuffer()],e??t.name,{type:t.type,lastModified:t.lastModified,...r});if(Sye(t)){let s=await t.blob();return e||(e=new URL(t.url).pathname.split(/[\\/]/).pop()),Vc(await Hk(s),e,r)}let n=await Hk(t);if(!r?.type){let s=n.find(i=>typeof i=="object"&&"type"in i&&i.type);typeof s=="string"&&(r={...r,type:s})}return Vc(n,e,r)}async function Hk(t){let e=[];if(typeof t=="string"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer)e.push(t);else if(I8(t))e.push(t instanceof Blob?t:await t.arrayBuffer());else if(P8(t))for await(let r of t)e.push(...await Hk(r));else{let r=t?.constructor?.name;throw Error(`Unexpected data type: ${typeof t}${r?`; constructor: ${r}`:""}${kye(t)}`)}return e}function kye(t){return typeof t!="object"||t===null?"":`; props: [${Object.getOwnPropertyNames(t).map(e=>`"${e}"`).join(", ")}]`}var Rn=class{constructor(e){this._client=e}},C8=Symbol.for("brand.privateNullableHeaders");function*Tye(t){if(!t)return;if(C8 in t){let{values:n,nulls:s}=t;yield*n.entries();for(let i of s)yield[i,null];return}let e=!1,r;t instanceof Headers?r=t.entries():oF(t)?r=t:(e=!0,r=Object.entries(t??{}));for(let n of r){let s=n[0];if(typeof s!="string")throw TypeError("expected header name to be a string");let i=oF(n[1])?n[1]:[n[1]],a=!1;for(let o of i)o!==void 0&&(e&&!a&&(a=!0,yield[s,null]),yield[s,o])}}var Ve=t=>{let e=new Headers,r=new Set;for(let n of t){let s=new Set;for(let[i,a]of Tye(n)){let o=i.toLowerCase();s.has(o)||(e.delete(i),s.add(o)),a===null?(e.delete(i),r.add(o)):(e.append(i,a),r.delete(o))}}return{[C8]:!0,values:e,nulls:r}},jd=Symbol("anthropic.sdk.stainlessHelper");function xv(t){return typeof t=="object"&&t!==null&&jd in t}function O8(t,e){let r=new Set;if(t)for(let n of t)xv(n)&&r.add(n[jd]);if(e){for(let n of e)if(xv(n)&&r.add(n[jd]),Array.isArray(n.content))for(let s of n.content)xv(s)&&r.add(s[jd])}return Array.from(r)}function A8(t,e){let r=O8(t,e);return r.length===0?{}:{"x-stainless-helper":r.join(", ")}}function Rye(t){return xv(t)?{"x-stainless-helper":t[jd]}:{}}function j8(t){return t.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var vF=Object.freeze(Object.create(null)),Pye=(t=j8)=>function(e,...r){if(e.length===1)return e[0];let n=!1,s=[],i=e.reduce((l,u,p)=>{/[?#]/.test(u)&&(n=!0);let d=r[p],m=(n?encodeURIComponent:t)(""+d);return p!==r.length&&(d==null||typeof d=="object"&&d.toString===Object.getPrototypeOf(Object.getPrototypeOf(d.hasOwnProperty??vF)??vF)?.toString)&&(m=d+"",s.push({start:l.length+u.length,length:m.length,error:`Value of type ${Object.prototype.toString.call(d).slice(8,-1)} is not a valid path parameter`})),l+u+(p===r.length?"":m)},""),a=i.split(/[?#]/,1)[0],o=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,c;for(;(c=o.exec(a))!==null;)s.push({start:c.index,length:c[0].length,error:`Value "${c[0]}" can't be safely passed as a path parameter`});if(s.sort((l,u)=>l.start-u.start),s.length>0){let l=0,u=s.reduce((p,d)=>{let m=" ".repeat(d.start-l),f="^".repeat(d.length);return l=d.start+d.length,p+m+f},"");throw new Ee(`Path parameters result in path with invalid segments: ${s.map(p=>p.error).join(` `)} ${i} -${u}`)}return i},Tr=Nye(z8),qv=class extends Rn{list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/files",io,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"files-api-2025-04-14"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/files/${e}`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},n?.headers])})}download(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/files/${e}/content`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},n?.headers]),__binaryResponse:!0})}retrieveMetadata(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/files/${e}`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},n?.headers])})}upload(e,r){let{betas:n,...s}=e;return this._client.post("/v1/files",ST({body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"files-api-2025-04-14"].toString()},jye(s.file),r?.headers])},this._client))}},Fv=class extends Rn{retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/models/${e}?beta=true`,{...n,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/models?beta=true",io,{query:s,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers])})}},$8={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function L8(t){return t?.output_format??t?.output_config?.format}function wF(t,e,r){let n=L8(e);return!e||!("parse"in(n??{}))?{...t,content:t.content.map(s=>{if(s.type==="text"){let i=Object.defineProperty({...s},"parsed_output",{value:null,enumerable:!1});return Object.defineProperty(i,"parsed",{get(){return r.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null},enumerable:!1})}return s}),parsed_output:null}:U8(t,e,r)}function U8(t,e,r){let n=null,s=t.content.map(i=>{if(i.type==="text"){let a=Dye(e,i.text);n===null&&(n=a);let o=Object.defineProperty({...i},"parsed_output",{value:a,enumerable:!1});return Object.defineProperty(o,"parsed",{get(){return r.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),a},enumerable:!1})}return i});return{...t,content:s,parsed_output:n}}function Dye(t,e){let r=L8(t);if(r?.type!=="json_schema")return null;try{return"parse"in r?r.parse(e):JSON.parse(e)}catch(n){throw new ke(`Failed to parse structured output: ${n}`)}}var Mye=t=>{let e=0,r=[];for(;e{if(t.length===0)return t;let e=t[t.length-1];switch(e.type){case"separator":return t=t.slice(0,t.length-1),Wc(t);case"number":let r=e.value[e.value.length-1];if(r==="."||r==="-")return t=t.slice(0,t.length-1),Wc(t);case"string":let n=t[t.length-2];if(n?.type==="delimiter")return t=t.slice(0,t.length-1),Wc(t);if(n?.type==="brace"&&n.value==="{")return t=t.slice(0,t.length-1),Wc(t);break;case"delimiter":return t=t.slice(0,t.length-1),Wc(t)}return t},zye=t=>{let e=[];return t.map(r=>{r.type==="brace"&&(r.value==="{"?e.push("}"):e.splice(e.lastIndexOf("}"),1)),r.type==="paren"&&(r.value==="["?e.push("]"):e.splice(e.lastIndexOf("]"),1))}),e.length>0&&e.reverse().map(r=>{r==="}"?t.push({type:"brace",value:"}"}):r==="]"&&t.push({type:"paren",value:"]"})}),t},$ye=t=>{let e="";return t.map(r=>{r.type==="string"?e+='"'+r.value+'"':e+=r.value}),e},q8=t=>JSON.parse($ye(zye(Wc(Mye(t))))),Zn,Hi,Uc,hd,sv,gd,vd,iv,yd,oi,bd,av,ov,Qa,cv,lv,xd,PE,SF,uv,IE,CE,OE,kF,EF="__json_buf";function TF(t){return t.type==="tool_use"||t.type==="server_tool_use"||t.type==="mcp_tool_use"}var GE=class t{constructor(e,r){Zn.add(this),this.messages=[],this.receivedMessages=[],Hi.set(this,void 0),Uc.set(this,null),this.controller=new AbortController,hd.set(this,void 0),sv.set(this,()=>{}),gd.set(this,()=>{}),vd.set(this,void 0),iv.set(this,()=>{}),yd.set(this,()=>{}),oi.set(this,{}),bd.set(this,!1),av.set(this,!1),ov.set(this,!1),Qa.set(this,!1),cv.set(this,void 0),lv.set(this,void 0),xd.set(this,void 0),uv.set(this,n=>{if(ae(this,av,!0,"f"),Md(n)&&(n=new Tn),n instanceof Tn)return ae(this,ov,!0,"f"),this._emit("abort",n);if(n instanceof ke)return this._emit("error",n);if(n instanceof Error){let s=new ke(n.message);return s.cause=n,this._emit("error",s)}return this._emit("error",new ke(String(n)))}),ae(this,hd,new Promise((n,s)=>{ae(this,sv,n,"f"),ae(this,gd,s,"f")}),"f"),ae(this,vd,new Promise((n,s)=>{ae(this,iv,n,"f"),ae(this,yd,s,"f")}),"f"),D(this,hd,"f").catch(()=>{}),D(this,vd,"f").catch(()=>{}),ae(this,Uc,e,"f"),ae(this,xd,r?.logger??console,"f")}get response(){return D(this,cv,"f")}get request_id(){return D(this,lv,"f")}async withResponse(){ae(this,Qa,!0,"f");let e=await D(this,hd,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let r=new t(null);return r._run(()=>r._fromReadableStream(e)),r}static createMessage(e,r,n,{logger:s}={}){let i=new t(r,{logger:s});for(let a of r.messages)i._addMessageParam(a);return ae(i,Uc,{...r,stream:!0},"f"),i._run(()=>i._createMessage(e,{...r,stream:!0},{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),i}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},D(this,uv,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,r=!0){this.receivedMessages.push(e),r&&this._emit("message",e)}async _createMessage(e,r,n){let s=n?.signal,i;s&&(s.aborted&&this.controller.abort(),i=this.controller.abort.bind(this.controller),s.addEventListener("abort",i));try{D(this,Zn,"m",IE).call(this);let{response:a,data:o}=await e.create({...r,stream:!0},{...n,signal:this.controller.signal}).withResponse();this._connected(a);for await(let c of o)D(this,Zn,"m",CE).call(this,c);if(o.controller.signal?.aborted)throw new Tn;D(this,Zn,"m",OE).call(this)}finally{s&&i&&s.removeEventListener("abort",i)}}_connected(e){this.ended||(ae(this,cv,e,"f"),ae(this,lv,e?.headers.get("request-id"),"f"),D(this,sv,"f").call(this,e),this._emit("connect"))}get ended(){return D(this,bd,"f")}get errored(){return D(this,av,"f")}get aborted(){return D(this,ov,"f")}abort(){this.controller.abort()}on(e,r){return(D(this,oi,"f")[e]||(D(this,oi,"f")[e]=[])).push({listener:r}),this}off(e,r){let n=D(this,oi,"f")[e];if(!n)return this;let s=n.findIndex(i=>i.listener===r);return s>=0&&n.splice(s,1),this}once(e,r){return(D(this,oi,"f")[e]||(D(this,oi,"f")[e]=[])).push({listener:r,once:!0}),this}emitted(e){return new Promise((r,n)=>{ae(this,Qa,!0,"f"),e!=="error"&&this.once("error",n),this.once(e,r)})}async done(){ae(this,Qa,!0,"f"),await D(this,vd,"f")}get currentMessage(){return D(this,Hi,"f")}async finalMessage(){return await this.done(),D(this,Zn,"m",PE).call(this)}async finalText(){return await this.done(),D(this,Zn,"m",SF).call(this)}_emit(e,...r){if(D(this,bd,"f"))return;e==="end"&&(ae(this,bd,!0,"f"),D(this,iv,"f").call(this));let n=D(this,oi,"f")[e];if(n&&(D(this,oi,"f")[e]=n.filter(s=>!s.once),n.forEach(({listener:s})=>s(...r))),e==="abort"){let s=r[0];!D(this,Qa,"f")&&!n?.length&&Promise.reject(s),D(this,gd,"f").call(this,s),D(this,yd,"f").call(this,s),this._emit("end");return}if(e==="error"){let s=r[0];!D(this,Qa,"f")&&!n?.length&&Promise.reject(s),D(this,gd,"f").call(this,s),D(this,yd,"f").call(this,s),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",D(this,Zn,"m",PE).call(this))}async _fromReadableStream(e,r){let n=r?.signal,s;n&&(n.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),n.addEventListener("abort",s));try{D(this,Zn,"m",IE).call(this),this._connected(null);let i=so.fromReadableStream(e,this.controller);for await(let a of i)D(this,Zn,"m",CE).call(this,a);if(i.controller.signal?.aborted)throw new Tn;D(this,Zn,"m",OE).call(this)}finally{n&&s&&n.removeEventListener("abort",s)}}[(Hi=new WeakMap,Uc=new WeakMap,hd=new WeakMap,sv=new WeakMap,gd=new WeakMap,vd=new WeakMap,iv=new WeakMap,yd=new WeakMap,oi=new WeakMap,bd=new WeakMap,av=new WeakMap,ov=new WeakMap,Qa=new WeakMap,cv=new WeakMap,lv=new WeakMap,xd=new WeakMap,uv=new WeakMap,Zn=new WeakSet,PE=function(){if(this.receivedMessages.length===0)throw new ke("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},SF=function(){if(this.receivedMessages.length===0)throw new ke("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(r=>r.type==="text").map(r=>r.text);if(e.length===0)throw new ke("stream ended without producing a content block with type=text");return e.join(" ")},IE=function(){this.ended||ae(this,Hi,void 0,"f")},CE=function(e){if(this.ended)return;let r=D(this,Zn,"m",kF).call(this,e);switch(this._emit("streamEvent",e,r),e.type){case"content_block_delta":{let n=r.content.at(-1);switch(e.delta.type){case"text_delta":{n.type==="text"&&this._emit("text",e.delta.text,n.text||"");break}case"citations_delta":{n.type==="text"&&this._emit("citation",e.delta.citation,n.citations??[]);break}case"input_json_delta":{TF(n)&&n.input&&this._emit("inputJson",e.delta.partial_json,n.input);break}case"thinking_delta":{n.type==="thinking"&&this._emit("thinking",e.delta.thinking,n.thinking);break}case"signature_delta":{n.type==="thinking"&&this._emit("signature",n.signature);break}case"compaction_delta":{n.type==="compaction"&&n.content&&this._emit("compaction",n.content);break}default:e.delta}break}case"message_stop":{this._addMessageParam(r),this._addMessage(wF(r,D(this,Uc,"f"),{logger:D(this,xd,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",r.content.at(-1));break}case"message_start":{ae(this,Hi,r,"f");break}case"content_block_start":case"message_delta":break}},OE=function(){if(this.ended)throw new ke("stream has ended, this shouldn't happen");let e=D(this,Hi,"f");if(!e)throw new ke("request ended without sending any chunks");return ae(this,Hi,void 0,"f"),wF(e,D(this,Uc,"f"),{logger:D(this,xd,"f")})},kF=function(e){let r=D(this,Hi,"f");if(e.type==="message_start"){if(r)throw new ke(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!r)throw new ke(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":return r;case"message_delta":return r.container=e.delta.container,r.stop_reason=e.delta.stop_reason,r.stop_sequence=e.delta.stop_sequence,r.usage.output_tokens=e.usage.output_tokens,r.context_management=e.context_management,e.usage.input_tokens!=null&&(r.usage.input_tokens=e.usage.input_tokens),e.usage.cache_creation_input_tokens!=null&&(r.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),e.usage.cache_read_input_tokens!=null&&(r.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),e.usage.server_tool_use!=null&&(r.usage.server_tool_use=e.usage.server_tool_use),e.usage.iterations!=null&&(r.usage.iterations=e.usage.iterations),r;case"content_block_start":return r.content.push(e.content_block),r;case"content_block_delta":{let n=r.content.at(e.index);switch(e.delta.type){case"text_delta":{n?.type==="text"&&(r.content[e.index]={...n,text:(n.text||"")+e.delta.text});break}case"citations_delta":{n?.type==="text"&&(r.content[e.index]={...n,citations:[...n.citations??[],e.delta.citation]});break}case"input_json_delta":{if(n&&TF(n)){let s=n[EF]||"";s+=e.delta.partial_json;let i={...n};if(Object.defineProperty(i,EF,{value:s,enumerable:!1,writable:!0}),s)try{i.input=q8(s)}catch(a){let o=new ke(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${a}. JSON: ${s}`);D(this,uv,"f").call(this,o)}r.content[e.index]=i}break}case"thinking_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,thinking:n.thinking+e.delta.thinking});break}case"signature_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,signature:e.delta.signature});break}case"compaction_delta":{n?.type==="compaction"&&(r.content[e.index]={...n,content:(n.content||"")+e.delta.content});break}default:e.delta}return r}case"content_block_stop":return r}},Symbol.asyncIterator)](){let e=[],r=[],n=!1;return this.on("streamEvent",s=>{let i=r.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of r)s.resolve(void 0);r.length=0}),this.on("abort",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),this.on("error",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((s,i)=>r.push({resolve:s,reject:i})).then(s=>s?{value:s,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new so(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};var Hv=class extends Error{constructor(e){let r=typeof e=="string"?e:e.map(n=>n.type==="text"?n.text:`[${n.type}]`).join(" ");super(r),this.name="ToolError",this.content=e}},Lye=1e5,Uye=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include: +${u}`)}return i},Tr=Pye(j8),Lv=class extends Rn{list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/files",so,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"files-api-2025-04-14"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/files/${e}`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},n?.headers])})}download(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/files/${e}/content`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},n?.headers]),__binaryResponse:!0})}retrieveMetadata(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/files/${e}`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},n?.headers])})}upload(e,r){let{betas:n,...s}=e;return this._client.post("/v1/files",xT({body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"files-api-2025-04-14"].toString()},Rye(s.file),r?.headers])},this._client))}},Uv=class extends Rn{retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/models/${e}?beta=true`,{...n,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/models?beta=true",so,{query:s,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers])})}},N8={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function D8(t){return t?.output_format??t?.output_config?.format}function yF(t,e,r){let n=D8(e);return!e||!("parse"in(n??{}))?{...t,content:t.content.map(s=>{if(s.type==="text"){let i=Object.defineProperty({...s},"parsed_output",{value:null,enumerable:!1});return Object.defineProperty(i,"parsed",{get(){return r.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null},enumerable:!1})}return s}),parsed_output:null}:M8(t,e,r)}function M8(t,e,r){let n=null,s=t.content.map(i=>{if(i.type==="text"){let a=Iye(e,i.text);n===null&&(n=a);let o=Object.defineProperty({...i},"parsed_output",{value:a,enumerable:!1});return Object.defineProperty(o,"parsed",{get(){return r.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),a},enumerable:!1})}return i});return{...t,content:s,parsed_output:n}}function Iye(t,e){let r=D8(t);if(r?.type!=="json_schema")return null;try{return"parse"in r?r.parse(e):JSON.parse(e)}catch(n){throw new Ee(`Failed to parse structured output: ${n}`)}}var Cye=t=>{let e=0,r=[];for(;e{if(t.length===0)return t;let e=t[t.length-1];switch(e.type){case"separator":return t=t.slice(0,t.length-1),Bc(t);case"number":let r=e.value[e.value.length-1];if(r==="."||r==="-")return t=t.slice(0,t.length-1),Bc(t);case"string":let n=t[t.length-2];if(n?.type==="delimiter")return t=t.slice(0,t.length-1),Bc(t);if(n?.type==="brace"&&n.value==="{")return t=t.slice(0,t.length-1),Bc(t);break;case"delimiter":return t=t.slice(0,t.length-1),Bc(t)}return t},Oye=t=>{let e=[];return t.map(r=>{r.type==="brace"&&(r.value==="{"?e.push("}"):e.splice(e.lastIndexOf("}"),1)),r.type==="paren"&&(r.value==="["?e.push("]"):e.splice(e.lastIndexOf("]"),1))}),e.length>0&&e.reverse().map(r=>{r==="}"?t.push({type:"brace",value:"}"}):r==="]"&&t.push({type:"paren",value:"]"})}),t},Aye=t=>{let e="";return t.map(r=>{r.type==="string"?e+='"'+r.value+'"':e+=r.value}),e},z8=t=>JSON.parse(Aye(Oye(Bc(Cye(t))))),Zn,Hi,Lc,fd,rv,hd,gd,nv,vd,oi,yd,sv,iv,Ja,av,ov,bd,kk,bF,cv,Tk,Rk,Pk,xF,_F="__json_buf";function wF(t){return t.type==="tool_use"||t.type==="server_tool_use"||t.type==="mcp_tool_use"}var Bk=class t{constructor(e,r){Zn.add(this),this.messages=[],this.receivedMessages=[],Hi.set(this,void 0),Lc.set(this,null),this.controller=new AbortController,fd.set(this,void 0),rv.set(this,()=>{}),hd.set(this,()=>{}),gd.set(this,void 0),nv.set(this,()=>{}),vd.set(this,()=>{}),oi.set(this,{}),yd.set(this,!1),sv.set(this,!1),iv.set(this,!1),Ja.set(this,!1),av.set(this,void 0),ov.set(this,void 0),bd.set(this,void 0),cv.set(this,n=>{if(ae(this,sv,!0,"f"),Dd(n)&&(n=new Tn),n instanceof Tn)return ae(this,iv,!0,"f"),this._emit("abort",n);if(n instanceof Ee)return this._emit("error",n);if(n instanceof Error){let s=new Ee(n.message);return s.cause=n,this._emit("error",s)}return this._emit("error",new Ee(String(n)))}),ae(this,fd,new Promise((n,s)=>{ae(this,rv,n,"f"),ae(this,hd,s,"f")}),"f"),ae(this,gd,new Promise((n,s)=>{ae(this,nv,n,"f"),ae(this,vd,s,"f")}),"f"),D(this,fd,"f").catch(()=>{}),D(this,gd,"f").catch(()=>{}),ae(this,Lc,e,"f"),ae(this,bd,r?.logger??console,"f")}get response(){return D(this,av,"f")}get request_id(){return D(this,ov,"f")}async withResponse(){ae(this,Ja,!0,"f");let e=await D(this,fd,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let r=new t(null);return r._run(()=>r._fromReadableStream(e)),r}static createMessage(e,r,n,{logger:s}={}){let i=new t(r,{logger:s});for(let a of r.messages)i._addMessageParam(a);return ae(i,Lc,{...r,stream:!0},"f"),i._run(()=>i._createMessage(e,{...r,stream:!0},{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),i}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},D(this,cv,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,r=!0){this.receivedMessages.push(e),r&&this._emit("message",e)}async _createMessage(e,r,n){let s=n?.signal,i;s&&(s.aborted&&this.controller.abort(),i=this.controller.abort.bind(this.controller),s.addEventListener("abort",i));try{D(this,Zn,"m",Tk).call(this);let{response:a,data:o}=await e.create({...r,stream:!0},{...n,signal:this.controller.signal}).withResponse();this._connected(a);for await(let c of o)D(this,Zn,"m",Rk).call(this,c);if(o.controller.signal?.aborted)throw new Tn;D(this,Zn,"m",Pk).call(this)}finally{s&&i&&s.removeEventListener("abort",i)}}_connected(e){this.ended||(ae(this,av,e,"f"),ae(this,ov,e?.headers.get("request-id"),"f"),D(this,rv,"f").call(this,e),this._emit("connect"))}get ended(){return D(this,yd,"f")}get errored(){return D(this,sv,"f")}get aborted(){return D(this,iv,"f")}abort(){this.controller.abort()}on(e,r){return(D(this,oi,"f")[e]||(D(this,oi,"f")[e]=[])).push({listener:r}),this}off(e,r){let n=D(this,oi,"f")[e];if(!n)return this;let s=n.findIndex(i=>i.listener===r);return s>=0&&n.splice(s,1),this}once(e,r){return(D(this,oi,"f")[e]||(D(this,oi,"f")[e]=[])).push({listener:r,once:!0}),this}emitted(e){return new Promise((r,n)=>{ae(this,Ja,!0,"f"),e!=="error"&&this.once("error",n),this.once(e,r)})}async done(){ae(this,Ja,!0,"f"),await D(this,gd,"f")}get currentMessage(){return D(this,Hi,"f")}async finalMessage(){return await this.done(),D(this,Zn,"m",kk).call(this)}async finalText(){return await this.done(),D(this,Zn,"m",bF).call(this)}_emit(e,...r){if(D(this,yd,"f"))return;e==="end"&&(ae(this,yd,!0,"f"),D(this,nv,"f").call(this));let n=D(this,oi,"f")[e];if(n&&(D(this,oi,"f")[e]=n.filter(s=>!s.once),n.forEach(({listener:s})=>s(...r))),e==="abort"){let s=r[0];!D(this,Ja,"f")&&!n?.length&&Promise.reject(s),D(this,hd,"f").call(this,s),D(this,vd,"f").call(this,s),this._emit("end");return}if(e==="error"){let s=r[0];!D(this,Ja,"f")&&!n?.length&&Promise.reject(s),D(this,hd,"f").call(this,s),D(this,vd,"f").call(this,s),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",D(this,Zn,"m",kk).call(this))}async _fromReadableStream(e,r){let n=r?.signal,s;n&&(n.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),n.addEventListener("abort",s));try{D(this,Zn,"m",Tk).call(this),this._connected(null);let i=no.fromReadableStream(e,this.controller);for await(let a of i)D(this,Zn,"m",Rk).call(this,a);if(i.controller.signal?.aborted)throw new Tn;D(this,Zn,"m",Pk).call(this)}finally{n&&s&&n.removeEventListener("abort",s)}}[(Hi=new WeakMap,Lc=new WeakMap,fd=new WeakMap,rv=new WeakMap,hd=new WeakMap,gd=new WeakMap,nv=new WeakMap,vd=new WeakMap,oi=new WeakMap,yd=new WeakMap,sv=new WeakMap,iv=new WeakMap,Ja=new WeakMap,av=new WeakMap,ov=new WeakMap,bd=new WeakMap,cv=new WeakMap,Zn=new WeakSet,kk=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},bF=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(r=>r.type==="text").map(r=>r.text);if(e.length===0)throw new Ee("stream ended without producing a content block with type=text");return e.join(" ")},Tk=function(){this.ended||ae(this,Hi,void 0,"f")},Rk=function(e){if(this.ended)return;let r=D(this,Zn,"m",xF).call(this,e);switch(this._emit("streamEvent",e,r),e.type){case"content_block_delta":{let n=r.content.at(-1);switch(e.delta.type){case"text_delta":{n.type==="text"&&this._emit("text",e.delta.text,n.text||"");break}case"citations_delta":{n.type==="text"&&this._emit("citation",e.delta.citation,n.citations??[]);break}case"input_json_delta":{wF(n)&&n.input&&this._emit("inputJson",e.delta.partial_json,n.input);break}case"thinking_delta":{n.type==="thinking"&&this._emit("thinking",e.delta.thinking,n.thinking);break}case"signature_delta":{n.type==="thinking"&&this._emit("signature",n.signature);break}case"compaction_delta":{n.type==="compaction"&&n.content&&this._emit("compaction",n.content);break}default:e.delta}break}case"message_stop":{this._addMessageParam(r),this._addMessage(yF(r,D(this,Lc,"f"),{logger:D(this,bd,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",r.content.at(-1));break}case"message_start":{ae(this,Hi,r,"f");break}case"content_block_start":case"message_delta":break}},Pk=function(){if(this.ended)throw new Ee("stream has ended, this shouldn't happen");let e=D(this,Hi,"f");if(!e)throw new Ee("request ended without sending any chunks");return ae(this,Hi,void 0,"f"),yF(e,D(this,Lc,"f"),{logger:D(this,bd,"f")})},xF=function(e){let r=D(this,Hi,"f");if(e.type==="message_start"){if(r)throw new Ee(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!r)throw new Ee(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":return r;case"message_delta":return r.container=e.delta.container,r.stop_reason=e.delta.stop_reason,r.stop_sequence=e.delta.stop_sequence,r.usage.output_tokens=e.usage.output_tokens,r.context_management=e.context_management,e.usage.input_tokens!=null&&(r.usage.input_tokens=e.usage.input_tokens),e.usage.cache_creation_input_tokens!=null&&(r.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),e.usage.cache_read_input_tokens!=null&&(r.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),e.usage.server_tool_use!=null&&(r.usage.server_tool_use=e.usage.server_tool_use),e.usage.iterations!=null&&(r.usage.iterations=e.usage.iterations),r;case"content_block_start":return r.content.push(e.content_block),r;case"content_block_delta":{let n=r.content.at(e.index);switch(e.delta.type){case"text_delta":{n?.type==="text"&&(r.content[e.index]={...n,text:(n.text||"")+e.delta.text});break}case"citations_delta":{n?.type==="text"&&(r.content[e.index]={...n,citations:[...n.citations??[],e.delta.citation]});break}case"input_json_delta":{if(n&&wF(n)){let s=n[_F]||"";s+=e.delta.partial_json;let i={...n};if(Object.defineProperty(i,_F,{value:s,enumerable:!1,writable:!0}),s)try{i.input=z8(s)}catch(a){let o=new Ee(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${a}. JSON: ${s}`);D(this,cv,"f").call(this,o)}r.content[e.index]=i}break}case"thinking_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,thinking:n.thinking+e.delta.thinking});break}case"signature_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,signature:e.delta.signature});break}case"compaction_delta":{n?.type==="compaction"&&(r.content[e.index]={...n,content:(n.content||"")+e.delta.content});break}default:e.delta}return r}case"content_block_stop":return r}},Symbol.asyncIterator)](){let e=[],r=[],n=!1;return this.on("streamEvent",s=>{let i=r.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of r)s.resolve(void 0);r.length=0}),this.on("abort",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),this.on("error",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((s,i)=>r.push({resolve:s,reject:i})).then(s=>s?{value:s,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new no(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};var qv=class extends Error{constructor(e){let r=typeof e=="string"?e:e.map(n=>n.type==="text"?n.text:`[${n.type}]`).join(" ");super(r),this.name="ToolError",this.content=e}},jye=1e5,Nye=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include: 1. Task Overview The user's core request and success criteria Any clarifications or constraints they specified @@ -1311,28 +1311,28 @@ User preferences or style requirements Domain-specific details that aren't obvious Any promises made to the user Be concise but complete\u2014err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task. -Wrap your summary in tags.`,_d,qc,Ya,sr,wd,wn,ui,Bi,Sd,RF,VE;function PF(){let t,e;return{promise:new Promise((r,n)=>{t=r,e=n}),resolve:t,reject:e}}var Bv=class{constructor(e,r,n){_d.add(this),this.client=e,qc.set(this,!1),Ya.set(this,!1),sr.set(this,void 0),wd.set(this,void 0),wn.set(this,void 0),ui.set(this,void 0),Bi.set(this,void 0),Sd.set(this,0),ae(this,sr,{params:{...r,messages:structuredClone(r.messages)}},"f");let s=["BetaToolRunner",...D8(r.tools,r.messages)].join(", ");ae(this,wd,{...n,headers:Ve([{"x-stainless-helper":s},n?.headers])},"f"),ae(this,Bi,PF(),"f")}async*[(qc=new WeakMap,Ya=new WeakMap,sr=new WeakMap,wd=new WeakMap,wn=new WeakMap,ui=new WeakMap,Bi=new WeakMap,Sd=new WeakMap,_d=new WeakSet,RF=async function(){let e=D(this,sr,"f").params.compactionControl;if(!e||!e.enabled)return!1;let r=0;if(D(this,wn,"f")!==void 0)try{let c=await D(this,wn,"f");r=c.usage.input_tokens+(c.usage.cache_creation_input_tokens??0)+(c.usage.cache_read_input_tokens??0)+c.usage.output_tokens}catch{return!1}let n=e.contextTokenThreshold??Lye;if(ru.type!=="tool_use");l.length===0?a.pop():c.content=l}}let o=await this.client.beta.messages.create({model:s,messages:[...a,{role:"user",content:[{type:"text",text:i}]}],max_tokens:D(this,sr,"f").params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(o.content[0]?.type!=="text")throw new ke("Expected text response for compaction");return D(this,sr,"f").params.messages=[{role:"user",content:o.content}],!0},Symbol.asyncIterator)](){var e;if(D(this,qc,"f"))throw new ke("Cannot iterate over a consumed stream");ae(this,qc,!0,"f"),ae(this,Ya,!0,"f"),ae(this,ui,void 0,"f");try{for(;;){let r;try{if(D(this,sr,"f").params.max_iterations&&D(this,Sd,"f")>=D(this,sr,"f").params.max_iterations)break;ae(this,Ya,!1,"f"),ae(this,ui,void 0,"f"),ae(this,Sd,(e=D(this,Sd,"f"),e++,e),"f"),ae(this,wn,void 0,"f");let{max_iterations:n,compactionControl:s,...i}=D(this,sr,"f").params;if(i.stream?(r=this.client.beta.messages.stream({...i},D(this,wd,"f")),ae(this,wn,r.finalMessage(),"f"),D(this,wn,"f").catch(()=>{}),yield r):(ae(this,wn,this.client.beta.messages.create({...i,stream:!1},D(this,wd,"f")),"f"),yield D(this,wn,"f")),!await D(this,_d,"m",RF).call(this)){if(!D(this,Ya,"f")){let{role:o,content:c}=await D(this,wn,"f");D(this,sr,"f").params.messages.push({role:o,content:c})}let a=await D(this,_d,"m",VE).call(this,D(this,sr,"f").params.messages.at(-1));if(a)D(this,sr,"f").params.messages.push(a);else if(!D(this,Ya,"f"))break}}finally{r&&r.abort()}}if(!D(this,wn,"f"))throw new ke("ToolRunner concluded without a message from the server");D(this,Bi,"f").resolve(await D(this,wn,"f"))}catch(r){throw ae(this,qc,!1,"f"),D(this,Bi,"f").promise.catch(()=>{}),D(this,Bi,"f").reject(r),ae(this,Bi,PF(),"f"),r}}setMessagesParams(e){typeof e=="function"?D(this,sr,"f").params=e(D(this,sr,"f").params):D(this,sr,"f").params=e,ae(this,Ya,!0,"f"),ae(this,ui,void 0,"f")}async generateToolResponse(){let e=await D(this,wn,"f")??this.params.messages.at(-1);return e?D(this,_d,"m",VE).call(this,e):null}done(){return D(this,Bi,"f").promise}async runUntilDone(){if(!D(this,qc,"f"))for await(let e of this);return this.done()}get params(){return D(this,sr,"f").params}pushMessages(...e){this.setMessagesParams(r=>({...r,messages:[...r.messages,...e]}))}then(e,r){return this.runUntilDone().then(e,r)}};VE=async function(t){return D(this,ui,"f")!==void 0?D(this,ui,"f"):(ae(this,ui,qye(D(this,sr,"f").params,t),"f"),D(this,ui,"f"))};async function qye(t,e=t.messages.at(-1)){if(!e||e.role!=="assistant"||!e.content||typeof e.content=="string")return null;let r=e.content.filter(n=>n.type==="tool_use");return r.length===0?null:{role:"user",content:await Promise.all(r.map(async n=>{let s=t.tools.find(i=>("name"in i?i.name:i.mcp_server_name)===n.name);if(!s||!("run"in s))return{type:"tool_result",tool_use_id:n.id,content:`Error: Tool '${n.name}' not found`,is_error:!0};try{let i=n.input;"parse"in s&&s.parse&&(i=s.parse(i));let a=await s.run(i);return{type:"tool_result",tool_use_id:n.id,content:a}}catch(i){return{type:"tool_result",tool_use_id:n.id,content:i instanceof Hv?i.content:`Error: ${i instanceof Error?i.message:String(i)}`,is_error:!0}}}))}}var Wv=class t{constructor(e,r){this.iterator=e,this.controller=r}async*decoder(){let e=new no;for await(let r of this.iterator)for(let n of e.decode(r))yield JSON.parse(n);for(let r of e.flush())yield JSON.parse(r)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(e,r){if(!e.body)throw r.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new ke("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new ke("Attempted to iterate over a response with no body");return new t(_T(e.body),r)}},Zv=class extends Rn{create(e,r){let{betas:n,...s}=e;return this._client.post("/v1/messages/batches?beta=true",{body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"message-batches-2024-09-24"].toString()},r?.headers])})}retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/messages/batches/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/messages/batches?beta=true",io,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"message-batches-2024-09-24"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/messages/batches/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}cancel(e,r={},n){let{betas:s}=r??{};return this._client.post(Tr`/v1/messages/batches/${e}/cancel?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}async results(e,r={},n){let s=await this.retrieve(e);if(!s.results_url)throw new ke(`No batch \`results_url\`; Has it finished processing? ${s.processing_status} - ${s.id}`);let{betas:i}=r??{};return this._client.get(s.results_url,{...n,headers:Ve([{"anthropic-beta":[...i??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},n?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((a,o)=>Wv.fromResponse(o.response,o.controller))}},IF={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"},Fye=["claude-opus-4-6"],ao=class extends Rn{constructor(){super(...arguments),this.batches=new Zv(this._client)}create(e,r){let n=CF(e),{betas:s,...i}=n;i.model in IF&&console.warn(`The model '${i.model}' is deprecated and will reach end-of-life on ${IF[i.model]} -Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),i.model in Fye&&i.thinking&&i.thinking.type==="enabled"&&console.warn(`Using Claude with ${i.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let a=this._client._options.timeout;if(!i.stream&&a==null){let c=$8[i.model]??void 0;a=this._client.calculateNonstreamingTimeout(i.max_tokens,c)}let o=M8(i.tools,i.messages);return this._client.post("/v1/messages?beta=true",{body:i,timeout:a??6e5,...r,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},o,r?.headers]),stream:n.stream??!1})}parse(e,r){return r={...r,headers:Ve([{"anthropic-beta":[...e.betas??[],"structured-outputs-2025-12-15"].toString()},r?.headers])},this.create(e,r).then(n=>U8(n,e,{logger:this._client.logger??console}))}stream(e,r){return GE.createMessage(this,e,r)}countTokens(e,r){let n=CF(e),{betas:s,...i}=n;return this._client.post("/v1/messages/count_tokens?beta=true",{body:i,...r,headers:Ve([{"anthropic-beta":[...s??[],"token-counting-2024-11-01"].toString()},r?.headers])})}toolRunner(e,r){return new Bv(this._client,e,r)}};function CF(t){if(!t.output_format)return t;if(t.output_config?.format)throw new ke("Both output_format and output_config.format were provided. Please use only output_config.format (output_format is deprecated).");let{output_format:e,...r}=t;return{...r,output_config:{...t.output_config,format:e}}}ao.Batches=Zv;ao.BetaToolRunner=Bv;ao.ToolError=Hv;var Gv=class extends Rn{create(e,r={},n){let{betas:s,...i}=r??{};return this._client.post(Tr`/v1/skills/${e}/versions?beta=true`,ST({body:i,...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])},this._client))}retrieve(e,r,n){let{skill_id:s,betas:i}=r;return this._client.get(Tr`/v1/skills/${s}/versions/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...i??[],"skills-2025-10-02"].toString()},n?.headers])})}list(e,r={},n){let{betas:s,...i}=r??{};return this._client.getAPIList(Tr`/v1/skills/${e}/versions?beta=true`,Uv,{query:i,...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}delete(e,r,n){let{skill_id:s,betas:i}=r;return this._client.delete(Tr`/v1/skills/${s}/versions/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...i??[],"skills-2025-10-02"].toString()},n?.headers])})}},zd=class extends Rn{constructor(){super(...arguments),this.versions=new Gv(this._client)}create(e={},r){let{betas:n,...s}=e??{};return this._client.post("/v1/skills?beta=true",ST({body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"skills-2025-10-02"].toString()},r?.headers])},this._client,!1))}retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/skills/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/skills?beta=true",Uv,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"skills-2025-10-02"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/skills/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}};zd.Versions=Gv;var Ji=class extends Rn{constructor(){super(...arguments),this.models=new Fv(this._client),this.messages=new ao(this._client),this.files=new qv(this._client),this.skills=new zd(this._client)}};Ji.Models=Fv;Ji.Messages=ao;Ji.Files=qv;Ji.Skills=zd;var Vv=class extends Rn{create(e,r){let{betas:n,...s}=e;return this._client.post("/v1/complete",{body:s,timeout:this._client._options.timeout??6e5,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers]),stream:e.stream??!1})}};function F8(t){return t?.output_config?.format}function OF(t,e,r){let n=F8(e);return!e||!("parse"in(n??{}))?{...t,content:t.content.map(s=>s.type==="text"?Object.defineProperty({...s},"parsed_output",{value:null,enumerable:!1}):s),parsed_output:null}:H8(t,e,r)}function H8(t,e,r){let n=null,s=t.content.map(i=>{if(i.type==="text"){let a=Hye(e,i.text);return n===null&&(n=a),Object.defineProperty({...i},"parsed_output",{value:a,enumerable:!1})}return i});return{...t,content:s,parsed_output:n}}function Hye(t,e){let r=F8(t);if(r?.type!=="json_schema")return null;try{return"parse"in r?r.parse(e):JSON.parse(e)}catch(n){throw new ke(`Failed to parse structured output: ${n}`)}}var Gn,Wi,Fc,kd,pv,Ed,Td,dv,Rd,ci,Pd,mv,fv,Xa,hv,gv,Id,AE,AF,jE,NE,DE,ME,jF,NF="__json_buf";function DF(t){return t.type==="tool_use"||t.type==="server_tool_use"}var KE=class t{constructor(e,r){Gn.add(this),this.messages=[],this.receivedMessages=[],Wi.set(this,void 0),Fc.set(this,null),this.controller=new AbortController,kd.set(this,void 0),pv.set(this,()=>{}),Ed.set(this,()=>{}),Td.set(this,void 0),dv.set(this,()=>{}),Rd.set(this,()=>{}),ci.set(this,{}),Pd.set(this,!1),mv.set(this,!1),fv.set(this,!1),Xa.set(this,!1),hv.set(this,void 0),gv.set(this,void 0),Id.set(this,void 0),jE.set(this,n=>{if(ae(this,mv,!0,"f"),Md(n)&&(n=new Tn),n instanceof Tn)return ae(this,fv,!0,"f"),this._emit("abort",n);if(n instanceof ke)return this._emit("error",n);if(n instanceof Error){let s=new ke(n.message);return s.cause=n,this._emit("error",s)}return this._emit("error",new ke(String(n)))}),ae(this,kd,new Promise((n,s)=>{ae(this,pv,n,"f"),ae(this,Ed,s,"f")}),"f"),ae(this,Td,new Promise((n,s)=>{ae(this,dv,n,"f"),ae(this,Rd,s,"f")}),"f"),D(this,kd,"f").catch(()=>{}),D(this,Td,"f").catch(()=>{}),ae(this,Fc,e,"f"),ae(this,Id,r?.logger??console,"f")}get response(){return D(this,hv,"f")}get request_id(){return D(this,gv,"f")}async withResponse(){ae(this,Xa,!0,"f");let e=await D(this,kd,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let r=new t(null);return r._run(()=>r._fromReadableStream(e)),r}static createMessage(e,r,n,{logger:s}={}){let i=new t(r,{logger:s});for(let a of r.messages)i._addMessageParam(a);return ae(i,Fc,{...r,stream:!0},"f"),i._run(()=>i._createMessage(e,{...r,stream:!0},{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),i}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},D(this,jE,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,r=!0){this.receivedMessages.push(e),r&&this._emit("message",e)}async _createMessage(e,r,n){let s=n?.signal,i;s&&(s.aborted&&this.controller.abort(),i=this.controller.abort.bind(this.controller),s.addEventListener("abort",i));try{D(this,Gn,"m",NE).call(this);let{response:a,data:o}=await e.create({...r,stream:!0},{...n,signal:this.controller.signal}).withResponse();this._connected(a);for await(let c of o)D(this,Gn,"m",DE).call(this,c);if(o.controller.signal?.aborted)throw new Tn;D(this,Gn,"m",ME).call(this)}finally{s&&i&&s.removeEventListener("abort",i)}}_connected(e){this.ended||(ae(this,hv,e,"f"),ae(this,gv,e?.headers.get("request-id"),"f"),D(this,pv,"f").call(this,e),this._emit("connect"))}get ended(){return D(this,Pd,"f")}get errored(){return D(this,mv,"f")}get aborted(){return D(this,fv,"f")}abort(){this.controller.abort()}on(e,r){return(D(this,ci,"f")[e]||(D(this,ci,"f")[e]=[])).push({listener:r}),this}off(e,r){let n=D(this,ci,"f")[e];if(!n)return this;let s=n.findIndex(i=>i.listener===r);return s>=0&&n.splice(s,1),this}once(e,r){return(D(this,ci,"f")[e]||(D(this,ci,"f")[e]=[])).push({listener:r,once:!0}),this}emitted(e){return new Promise((r,n)=>{ae(this,Xa,!0,"f"),e!=="error"&&this.once("error",n),this.once(e,r)})}async done(){ae(this,Xa,!0,"f"),await D(this,Td,"f")}get currentMessage(){return D(this,Wi,"f")}async finalMessage(){return await this.done(),D(this,Gn,"m",AE).call(this)}async finalText(){return await this.done(),D(this,Gn,"m",AF).call(this)}_emit(e,...r){if(D(this,Pd,"f"))return;e==="end"&&(ae(this,Pd,!0,"f"),D(this,dv,"f").call(this));let n=D(this,ci,"f")[e];if(n&&(D(this,ci,"f")[e]=n.filter(s=>!s.once),n.forEach(({listener:s})=>s(...r))),e==="abort"){let s=r[0];!D(this,Xa,"f")&&!n?.length&&Promise.reject(s),D(this,Ed,"f").call(this,s),D(this,Rd,"f").call(this,s),this._emit("end");return}if(e==="error"){let s=r[0];!D(this,Xa,"f")&&!n?.length&&Promise.reject(s),D(this,Ed,"f").call(this,s),D(this,Rd,"f").call(this,s),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",D(this,Gn,"m",AE).call(this))}async _fromReadableStream(e,r){let n=r?.signal,s;n&&(n.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),n.addEventListener("abort",s));try{D(this,Gn,"m",NE).call(this),this._connected(null);let i=so.fromReadableStream(e,this.controller);for await(let a of i)D(this,Gn,"m",DE).call(this,a);if(i.controller.signal?.aborted)throw new Tn;D(this,Gn,"m",ME).call(this)}finally{n&&s&&n.removeEventListener("abort",s)}}[(Wi=new WeakMap,Fc=new WeakMap,kd=new WeakMap,pv=new WeakMap,Ed=new WeakMap,Td=new WeakMap,dv=new WeakMap,Rd=new WeakMap,ci=new WeakMap,Pd=new WeakMap,mv=new WeakMap,fv=new WeakMap,Xa=new WeakMap,hv=new WeakMap,gv=new WeakMap,Id=new WeakMap,jE=new WeakMap,Gn=new WeakSet,AE=function(){if(this.receivedMessages.length===0)throw new ke("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},AF=function(){if(this.receivedMessages.length===0)throw new ke("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(r=>r.type==="text").map(r=>r.text);if(e.length===0)throw new ke("stream ended without producing a content block with type=text");return e.join(" ")},NE=function(){this.ended||ae(this,Wi,void 0,"f")},DE=function(e){if(this.ended)return;let r=D(this,Gn,"m",jF).call(this,e);switch(this._emit("streamEvent",e,r),e.type){case"content_block_delta":{let n=r.content.at(-1);switch(e.delta.type){case"text_delta":{n.type==="text"&&this._emit("text",e.delta.text,n.text||"");break}case"citations_delta":{n.type==="text"&&this._emit("citation",e.delta.citation,n.citations??[]);break}case"input_json_delta":{DF(n)&&n.input&&this._emit("inputJson",e.delta.partial_json,n.input);break}case"thinking_delta":{n.type==="thinking"&&this._emit("thinking",e.delta.thinking,n.thinking);break}case"signature_delta":{n.type==="thinking"&&this._emit("signature",n.signature);break}default:e.delta}break}case"message_stop":{this._addMessageParam(r),this._addMessage(OF(r,D(this,Fc,"f"),{logger:D(this,Id,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",r.content.at(-1));break}case"message_start":{ae(this,Wi,r,"f");break}case"content_block_start":case"message_delta":break}},ME=function(){if(this.ended)throw new ke("stream has ended, this shouldn't happen");let e=D(this,Wi,"f");if(!e)throw new ke("request ended without sending any chunks");return ae(this,Wi,void 0,"f"),OF(e,D(this,Fc,"f"),{logger:D(this,Id,"f")})},jF=function(e){let r=D(this,Wi,"f");if(e.type==="message_start"){if(r)throw new ke(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!r)throw new ke(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":return r;case"message_delta":return r.stop_reason=e.delta.stop_reason,r.stop_sequence=e.delta.stop_sequence,r.usage.output_tokens=e.usage.output_tokens,e.usage.input_tokens!=null&&(r.usage.input_tokens=e.usage.input_tokens),e.usage.cache_creation_input_tokens!=null&&(r.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),e.usage.cache_read_input_tokens!=null&&(r.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),e.usage.server_tool_use!=null&&(r.usage.server_tool_use=e.usage.server_tool_use),r;case"content_block_start":return r.content.push({...e.content_block}),r;case"content_block_delta":{let n=r.content.at(e.index);switch(e.delta.type){case"text_delta":{n?.type==="text"&&(r.content[e.index]={...n,text:(n.text||"")+e.delta.text});break}case"citations_delta":{n?.type==="text"&&(r.content[e.index]={...n,citations:[...n.citations??[],e.delta.citation]});break}case"input_json_delta":{if(n&&DF(n)){let s=n[NF]||"";s+=e.delta.partial_json;let i={...n};Object.defineProperty(i,NF,{value:s,enumerable:!1,writable:!0}),s&&(i.input=q8(s)),r.content[e.index]=i}break}case"thinking_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,thinking:n.thinking+e.delta.thinking});break}case"signature_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,signature:e.delta.signature});break}default:e.delta}return r}case"content_block_stop":return r}},Symbol.asyncIterator)](){let e=[],r=[],n=!1;return this.on("streamEvent",s=>{let i=r.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of r)s.resolve(void 0);r.length=0}),this.on("abort",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),this.on("error",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((s,i)=>r.push({resolve:s,reject:i})).then(s=>s?{value:s,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new so(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};var Kv=class extends Rn{create(e,r){return this._client.post("/v1/messages/batches",{body:e,...r})}retrieve(e,r){return this._client.get(Tr`/v1/messages/batches/${e}`,r)}list(e={},r){return this._client.getAPIList("/v1/messages/batches",io,{query:e,...r})}delete(e,r){return this._client.delete(Tr`/v1/messages/batches/${e}`,r)}cancel(e,r){return this._client.post(Tr`/v1/messages/batches/${e}/cancel`,r)}async results(e,r){let n=await this.retrieve(e);if(!n.results_url)throw new ke(`No batch \`results_url\`; Has it finished processing? ${n.processing_status} - ${n.id}`);return this._client.get(n.results_url,{...r,headers:Ve([{Accept:"application/binary"},r?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((s,i)=>Wv.fromResponse(i.response,i.controller))}},$d=class extends Rn{constructor(){super(...arguments),this.batches=new Kv(this._client)}create(e,r){e.model in MF&&console.warn(`The model '${e.model}' is deprecated and will reach end-of-life on ${MF[e.model]} -Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),e.model in Bye&&e.thinking&&e.thinking.type==="enabled"&&console.warn(`Using Claude with ${e.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let n=this._client._options.timeout;if(!e.stream&&n==null){let i=$8[e.model]??void 0;n=this._client.calculateNonstreamingTimeout(e.max_tokens,i)}let s=M8(e.tools,e.messages);return this._client.post("/v1/messages",{body:e,timeout:n??6e5,...r,headers:Ve([s,r?.headers]),stream:e.stream??!1})}parse(e,r){return this.create(e,r).then(n=>H8(n,e,{logger:this._client.logger??console}))}stream(e,r){return KE.createMessage(this,e,r,{logger:this._client.logger??console})}countTokens(e,r){return this._client.post("/v1/messages/count_tokens",{body:e,...r})}},MF={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026","claude-3-5-haiku-latest":"February 19th, 2026","claude-3-5-haiku-20241022":"February 19th, 2026"},Bye=["claude-opus-4-6"];$d.Batches=Kv;var Jv=class extends Rn{retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/models/${e}`,{...n,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/models",io,{query:s,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers])})}},vv=t=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[t]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(t)?.trim()},JE,kT,Sv,B8,Wye="\\n\\nHuman:",Zye="\\n\\nAssistant:",Kt=class{constructor({baseURL:e=vv("ANTHROPIC_BASE_URL"),apiKey:r=vv("ANTHROPIC_API_KEY")??null,authToken:n=vv("ANTHROPIC_AUTH_TOKEN")??null,...s}={}){JE.add(this),Sv.set(this,void 0);let i={apiKey:r,authToken:n,...s,baseURL:e||"https://api.anthropic.com"};if(!i.dangerouslyAllowBrowser&&uye())throw new ke(`It looks like you're running in a browser-like environment. +Wrap your summary in tags.`,xd,Uc,Qa,sr,_d,wn,ui,Bi,wd,SF,Wk;function EF(){let t,e;return{promise:new Promise((r,n)=>{t=r,e=n}),resolve:t,reject:e}}var Fv=class{constructor(e,r,n){xd.add(this),this.client=e,Uc.set(this,!1),Qa.set(this,!1),sr.set(this,void 0),_d.set(this,void 0),wn.set(this,void 0),ui.set(this,void 0),Bi.set(this,void 0),wd.set(this,0),ae(this,sr,{params:{...r,messages:structuredClone(r.messages)}},"f");let s=["BetaToolRunner",...O8(r.tools,r.messages)].join(", ");ae(this,_d,{...n,headers:Ve([{"x-stainless-helper":s},n?.headers])},"f"),ae(this,Bi,EF(),"f")}async*[(Uc=new WeakMap,Qa=new WeakMap,sr=new WeakMap,_d=new WeakMap,wn=new WeakMap,ui=new WeakMap,Bi=new WeakMap,wd=new WeakMap,xd=new WeakSet,SF=async function(){let e=D(this,sr,"f").params.compactionControl;if(!e||!e.enabled)return!1;let r=0;if(D(this,wn,"f")!==void 0)try{let c=await D(this,wn,"f");r=c.usage.input_tokens+(c.usage.cache_creation_input_tokens??0)+(c.usage.cache_read_input_tokens??0)+c.usage.output_tokens}catch{return!1}let n=e.contextTokenThreshold??jye;if(ru.type!=="tool_use");l.length===0?a.pop():c.content=l}}let o=await this.client.beta.messages.create({model:s,messages:[...a,{role:"user",content:[{type:"text",text:i}]}],max_tokens:D(this,sr,"f").params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(o.content[0]?.type!=="text")throw new Ee("Expected text response for compaction");return D(this,sr,"f").params.messages=[{role:"user",content:o.content}],!0},Symbol.asyncIterator)](){var e;if(D(this,Uc,"f"))throw new Ee("Cannot iterate over a consumed stream");ae(this,Uc,!0,"f"),ae(this,Qa,!0,"f"),ae(this,ui,void 0,"f");try{for(;;){let r;try{if(D(this,sr,"f").params.max_iterations&&D(this,wd,"f")>=D(this,sr,"f").params.max_iterations)break;ae(this,Qa,!1,"f"),ae(this,ui,void 0,"f"),ae(this,wd,(e=D(this,wd,"f"),e++,e),"f"),ae(this,wn,void 0,"f");let{max_iterations:n,compactionControl:s,...i}=D(this,sr,"f").params;if(i.stream?(r=this.client.beta.messages.stream({...i},D(this,_d,"f")),ae(this,wn,r.finalMessage(),"f"),D(this,wn,"f").catch(()=>{}),yield r):(ae(this,wn,this.client.beta.messages.create({...i,stream:!1},D(this,_d,"f")),"f"),yield D(this,wn,"f")),!await D(this,xd,"m",SF).call(this)){if(!D(this,Qa,"f")){let{role:o,content:c}=await D(this,wn,"f");D(this,sr,"f").params.messages.push({role:o,content:c})}let a=await D(this,xd,"m",Wk).call(this,D(this,sr,"f").params.messages.at(-1));if(a)D(this,sr,"f").params.messages.push(a);else if(!D(this,Qa,"f"))break}}finally{r&&r.abort()}}if(!D(this,wn,"f"))throw new Ee("ToolRunner concluded without a message from the server");D(this,Bi,"f").resolve(await D(this,wn,"f"))}catch(r){throw ae(this,Uc,!1,"f"),D(this,Bi,"f").promise.catch(()=>{}),D(this,Bi,"f").reject(r),ae(this,Bi,EF(),"f"),r}}setMessagesParams(e){typeof e=="function"?D(this,sr,"f").params=e(D(this,sr,"f").params):D(this,sr,"f").params=e,ae(this,Qa,!0,"f"),ae(this,ui,void 0,"f")}async generateToolResponse(){let e=await D(this,wn,"f")??this.params.messages.at(-1);return e?D(this,xd,"m",Wk).call(this,e):null}done(){return D(this,Bi,"f").promise}async runUntilDone(){if(!D(this,Uc,"f"))for await(let e of this);return this.done()}get params(){return D(this,sr,"f").params}pushMessages(...e){this.setMessagesParams(r=>({...r,messages:[...r.messages,...e]}))}then(e,r){return this.runUntilDone().then(e,r)}};Wk=async function(t){return D(this,ui,"f")!==void 0?D(this,ui,"f"):(ae(this,ui,Dye(D(this,sr,"f").params,t),"f"),D(this,ui,"f"))};async function Dye(t,e=t.messages.at(-1)){if(!e||e.role!=="assistant"||!e.content||typeof e.content=="string")return null;let r=e.content.filter(n=>n.type==="tool_use");return r.length===0?null:{role:"user",content:await Promise.all(r.map(async n=>{let s=t.tools.find(i=>("name"in i?i.name:i.mcp_server_name)===n.name);if(!s||!("run"in s))return{type:"tool_result",tool_use_id:n.id,content:`Error: Tool '${n.name}' not found`,is_error:!0};try{let i=n.input;"parse"in s&&s.parse&&(i=s.parse(i));let a=await s.run(i);return{type:"tool_result",tool_use_id:n.id,content:a}}catch(i){return{type:"tool_result",tool_use_id:n.id,content:i instanceof qv?i.content:`Error: ${i instanceof Error?i.message:String(i)}`,is_error:!0}}}))}}var Hv=class t{constructor(e,r){this.iterator=e,this.controller=r}async*decoder(){let e=new ro;for await(let r of this.iterator)for(let n of e.decode(r))yield JSON.parse(n);for(let r of e.flush())yield JSON.parse(r)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(e,r){if(!e.body)throw r.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new Ee("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new Ee("Attempted to iterate over a response with no body");return new t(yT(e.body),r)}},Bv=class extends Rn{create(e,r){let{betas:n,...s}=e;return this._client.post("/v1/messages/batches?beta=true",{body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"message-batches-2024-09-24"].toString()},r?.headers])})}retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/messages/batches/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/messages/batches?beta=true",so,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"message-batches-2024-09-24"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/messages/batches/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}cancel(e,r={},n){let{betas:s}=r??{};return this._client.post(Tr`/v1/messages/batches/${e}/cancel?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}async results(e,r={},n){let s=await this.retrieve(e);if(!s.results_url)throw new Ee(`No batch \`results_url\`; Has it finished processing? ${s.processing_status} - ${s.id}`);let{betas:i}=r??{};return this._client.get(s.results_url,{...n,headers:Ve([{"anthropic-beta":[...i??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},n?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((a,o)=>Hv.fromResponse(o.response,o.controller))}},kF={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"},Mye=["claude-opus-4-6"],io=class extends Rn{constructor(){super(...arguments),this.batches=new Bv(this._client)}create(e,r){let n=TF(e),{betas:s,...i}=n;i.model in kF&&console.warn(`The model '${i.model}' is deprecated and will reach end-of-life on ${kF[i.model]} +Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),i.model in Mye&&i.thinking&&i.thinking.type==="enabled"&&console.warn(`Using Claude with ${i.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let a=this._client._options.timeout;if(!i.stream&&a==null){let c=N8[i.model]??void 0;a=this._client.calculateNonstreamingTimeout(i.max_tokens,c)}let o=A8(i.tools,i.messages);return this._client.post("/v1/messages?beta=true",{body:i,timeout:a??6e5,...r,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},o,r?.headers]),stream:n.stream??!1})}parse(e,r){return r={...r,headers:Ve([{"anthropic-beta":[...e.betas??[],"structured-outputs-2025-12-15"].toString()},r?.headers])},this.create(e,r).then(n=>M8(n,e,{logger:this._client.logger??console}))}stream(e,r){return Bk.createMessage(this,e,r)}countTokens(e,r){let n=TF(e),{betas:s,...i}=n;return this._client.post("/v1/messages/count_tokens?beta=true",{body:i,...r,headers:Ve([{"anthropic-beta":[...s??[],"token-counting-2024-11-01"].toString()},r?.headers])})}toolRunner(e,r){return new Fv(this._client,e,r)}};function TF(t){if(!t.output_format)return t;if(t.output_config?.format)throw new Ee("Both output_format and output_config.format were provided. Please use only output_config.format (output_format is deprecated).");let{output_format:e,...r}=t;return{...r,output_config:{...t.output_config,format:e}}}io.Batches=Bv;io.BetaToolRunner=Fv;io.ToolError=qv;var Wv=class extends Rn{create(e,r={},n){let{betas:s,...i}=r??{};return this._client.post(Tr`/v1/skills/${e}/versions?beta=true`,xT({body:i,...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])},this._client))}retrieve(e,r,n){let{skill_id:s,betas:i}=r;return this._client.get(Tr`/v1/skills/${s}/versions/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...i??[],"skills-2025-10-02"].toString()},n?.headers])})}list(e,r={},n){let{betas:s,...i}=r??{};return this._client.getAPIList(Tr`/v1/skills/${e}/versions?beta=true`,$v,{query:i,...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}delete(e,r,n){let{skill_id:s,betas:i}=r;return this._client.delete(Tr`/v1/skills/${s}/versions/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...i??[],"skills-2025-10-02"].toString()},n?.headers])})}},Md=class extends Rn{constructor(){super(...arguments),this.versions=new Wv(this._client)}create(e={},r){let{betas:n,...s}=e??{};return this._client.post("/v1/skills?beta=true",xT({body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"skills-2025-10-02"].toString()},r?.headers])},this._client,!1))}retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/skills/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/skills?beta=true",$v,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"skills-2025-10-02"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/skills/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}};Md.Versions=Wv;var Ji=class extends Rn{constructor(){super(...arguments),this.models=new Uv(this._client),this.messages=new io(this._client),this.files=new Lv(this._client),this.skills=new Md(this._client)}};Ji.Models=Uv;Ji.Messages=io;Ji.Files=Lv;Ji.Skills=Md;var Zv=class extends Rn{create(e,r){let{betas:n,...s}=e;return this._client.post("/v1/complete",{body:s,timeout:this._client._options.timeout??6e5,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers]),stream:e.stream??!1})}};function $8(t){return t?.output_config?.format}function RF(t,e,r){let n=$8(e);return!e||!("parse"in(n??{}))?{...t,content:t.content.map(s=>s.type==="text"?Object.defineProperty({...s},"parsed_output",{value:null,enumerable:!1}):s),parsed_output:null}:L8(t,e,r)}function L8(t,e,r){let n=null,s=t.content.map(i=>{if(i.type==="text"){let a=zye(e,i.text);return n===null&&(n=a),Object.defineProperty({...i},"parsed_output",{value:a,enumerable:!1})}return i});return{...t,content:s,parsed_output:n}}function zye(t,e){let r=$8(t);if(r?.type!=="json_schema")return null;try{return"parse"in r?r.parse(e):JSON.parse(e)}catch(n){throw new Ee(`Failed to parse structured output: ${n}`)}}var Gn,Wi,qc,Sd,lv,Ed,kd,uv,Td,ci,Rd,pv,dv,Ya,mv,fv,Pd,Ik,PF,Ck,Ok,Ak,jk,IF,CF="__json_buf";function OF(t){return t.type==="tool_use"||t.type==="server_tool_use"}var Zk=class t{constructor(e,r){Gn.add(this),this.messages=[],this.receivedMessages=[],Wi.set(this,void 0),qc.set(this,null),this.controller=new AbortController,Sd.set(this,void 0),lv.set(this,()=>{}),Ed.set(this,()=>{}),kd.set(this,void 0),uv.set(this,()=>{}),Td.set(this,()=>{}),ci.set(this,{}),Rd.set(this,!1),pv.set(this,!1),dv.set(this,!1),Ya.set(this,!1),mv.set(this,void 0),fv.set(this,void 0),Pd.set(this,void 0),Ck.set(this,n=>{if(ae(this,pv,!0,"f"),Dd(n)&&(n=new Tn),n instanceof Tn)return ae(this,dv,!0,"f"),this._emit("abort",n);if(n instanceof Ee)return this._emit("error",n);if(n instanceof Error){let s=new Ee(n.message);return s.cause=n,this._emit("error",s)}return this._emit("error",new Ee(String(n)))}),ae(this,Sd,new Promise((n,s)=>{ae(this,lv,n,"f"),ae(this,Ed,s,"f")}),"f"),ae(this,kd,new Promise((n,s)=>{ae(this,uv,n,"f"),ae(this,Td,s,"f")}),"f"),D(this,Sd,"f").catch(()=>{}),D(this,kd,"f").catch(()=>{}),ae(this,qc,e,"f"),ae(this,Pd,r?.logger??console,"f")}get response(){return D(this,mv,"f")}get request_id(){return D(this,fv,"f")}async withResponse(){ae(this,Ya,!0,"f");let e=await D(this,Sd,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let r=new t(null);return r._run(()=>r._fromReadableStream(e)),r}static createMessage(e,r,n,{logger:s}={}){let i=new t(r,{logger:s});for(let a of r.messages)i._addMessageParam(a);return ae(i,qc,{...r,stream:!0},"f"),i._run(()=>i._createMessage(e,{...r,stream:!0},{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),i}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},D(this,Ck,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,r=!0){this.receivedMessages.push(e),r&&this._emit("message",e)}async _createMessage(e,r,n){let s=n?.signal,i;s&&(s.aborted&&this.controller.abort(),i=this.controller.abort.bind(this.controller),s.addEventListener("abort",i));try{D(this,Gn,"m",Ok).call(this);let{response:a,data:o}=await e.create({...r,stream:!0},{...n,signal:this.controller.signal}).withResponse();this._connected(a);for await(let c of o)D(this,Gn,"m",Ak).call(this,c);if(o.controller.signal?.aborted)throw new Tn;D(this,Gn,"m",jk).call(this)}finally{s&&i&&s.removeEventListener("abort",i)}}_connected(e){this.ended||(ae(this,mv,e,"f"),ae(this,fv,e?.headers.get("request-id"),"f"),D(this,lv,"f").call(this,e),this._emit("connect"))}get ended(){return D(this,Rd,"f")}get errored(){return D(this,pv,"f")}get aborted(){return D(this,dv,"f")}abort(){this.controller.abort()}on(e,r){return(D(this,ci,"f")[e]||(D(this,ci,"f")[e]=[])).push({listener:r}),this}off(e,r){let n=D(this,ci,"f")[e];if(!n)return this;let s=n.findIndex(i=>i.listener===r);return s>=0&&n.splice(s,1),this}once(e,r){return(D(this,ci,"f")[e]||(D(this,ci,"f")[e]=[])).push({listener:r,once:!0}),this}emitted(e){return new Promise((r,n)=>{ae(this,Ya,!0,"f"),e!=="error"&&this.once("error",n),this.once(e,r)})}async done(){ae(this,Ya,!0,"f"),await D(this,kd,"f")}get currentMessage(){return D(this,Wi,"f")}async finalMessage(){return await this.done(),D(this,Gn,"m",Ik).call(this)}async finalText(){return await this.done(),D(this,Gn,"m",PF).call(this)}_emit(e,...r){if(D(this,Rd,"f"))return;e==="end"&&(ae(this,Rd,!0,"f"),D(this,uv,"f").call(this));let n=D(this,ci,"f")[e];if(n&&(D(this,ci,"f")[e]=n.filter(s=>!s.once),n.forEach(({listener:s})=>s(...r))),e==="abort"){let s=r[0];!D(this,Ya,"f")&&!n?.length&&Promise.reject(s),D(this,Ed,"f").call(this,s),D(this,Td,"f").call(this,s),this._emit("end");return}if(e==="error"){let s=r[0];!D(this,Ya,"f")&&!n?.length&&Promise.reject(s),D(this,Ed,"f").call(this,s),D(this,Td,"f").call(this,s),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",D(this,Gn,"m",Ik).call(this))}async _fromReadableStream(e,r){let n=r?.signal,s;n&&(n.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),n.addEventListener("abort",s));try{D(this,Gn,"m",Ok).call(this),this._connected(null);let i=no.fromReadableStream(e,this.controller);for await(let a of i)D(this,Gn,"m",Ak).call(this,a);if(i.controller.signal?.aborted)throw new Tn;D(this,Gn,"m",jk).call(this)}finally{n&&s&&n.removeEventListener("abort",s)}}[(Wi=new WeakMap,qc=new WeakMap,Sd=new WeakMap,lv=new WeakMap,Ed=new WeakMap,kd=new WeakMap,uv=new WeakMap,Td=new WeakMap,ci=new WeakMap,Rd=new WeakMap,pv=new WeakMap,dv=new WeakMap,Ya=new WeakMap,mv=new WeakMap,fv=new WeakMap,Pd=new WeakMap,Ck=new WeakMap,Gn=new WeakSet,Ik=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},PF=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(r=>r.type==="text").map(r=>r.text);if(e.length===0)throw new Ee("stream ended without producing a content block with type=text");return e.join(" ")},Ok=function(){this.ended||ae(this,Wi,void 0,"f")},Ak=function(e){if(this.ended)return;let r=D(this,Gn,"m",IF).call(this,e);switch(this._emit("streamEvent",e,r),e.type){case"content_block_delta":{let n=r.content.at(-1);switch(e.delta.type){case"text_delta":{n.type==="text"&&this._emit("text",e.delta.text,n.text||"");break}case"citations_delta":{n.type==="text"&&this._emit("citation",e.delta.citation,n.citations??[]);break}case"input_json_delta":{OF(n)&&n.input&&this._emit("inputJson",e.delta.partial_json,n.input);break}case"thinking_delta":{n.type==="thinking"&&this._emit("thinking",e.delta.thinking,n.thinking);break}case"signature_delta":{n.type==="thinking"&&this._emit("signature",n.signature);break}default:e.delta}break}case"message_stop":{this._addMessageParam(r),this._addMessage(RF(r,D(this,qc,"f"),{logger:D(this,Pd,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",r.content.at(-1));break}case"message_start":{ae(this,Wi,r,"f");break}case"content_block_start":case"message_delta":break}},jk=function(){if(this.ended)throw new Ee("stream has ended, this shouldn't happen");let e=D(this,Wi,"f");if(!e)throw new Ee("request ended without sending any chunks");return ae(this,Wi,void 0,"f"),RF(e,D(this,qc,"f"),{logger:D(this,Pd,"f")})},IF=function(e){let r=D(this,Wi,"f");if(e.type==="message_start"){if(r)throw new Ee(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!r)throw new Ee(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":return r;case"message_delta":return r.stop_reason=e.delta.stop_reason,r.stop_sequence=e.delta.stop_sequence,r.usage.output_tokens=e.usage.output_tokens,e.usage.input_tokens!=null&&(r.usage.input_tokens=e.usage.input_tokens),e.usage.cache_creation_input_tokens!=null&&(r.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),e.usage.cache_read_input_tokens!=null&&(r.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),e.usage.server_tool_use!=null&&(r.usage.server_tool_use=e.usage.server_tool_use),r;case"content_block_start":return r.content.push({...e.content_block}),r;case"content_block_delta":{let n=r.content.at(e.index);switch(e.delta.type){case"text_delta":{n?.type==="text"&&(r.content[e.index]={...n,text:(n.text||"")+e.delta.text});break}case"citations_delta":{n?.type==="text"&&(r.content[e.index]={...n,citations:[...n.citations??[],e.delta.citation]});break}case"input_json_delta":{if(n&&OF(n)){let s=n[CF]||"";s+=e.delta.partial_json;let i={...n};Object.defineProperty(i,CF,{value:s,enumerable:!1,writable:!0}),s&&(i.input=z8(s)),r.content[e.index]=i}break}case"thinking_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,thinking:n.thinking+e.delta.thinking});break}case"signature_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,signature:e.delta.signature});break}default:e.delta}return r}case"content_block_stop":return r}},Symbol.asyncIterator)](){let e=[],r=[],n=!1;return this.on("streamEvent",s=>{let i=r.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of r)s.resolve(void 0);r.length=0}),this.on("abort",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),this.on("error",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((s,i)=>r.push({resolve:s,reject:i})).then(s=>s?{value:s,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new no(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};var Gv=class extends Rn{create(e,r){return this._client.post("/v1/messages/batches",{body:e,...r})}retrieve(e,r){return this._client.get(Tr`/v1/messages/batches/${e}`,r)}list(e={},r){return this._client.getAPIList("/v1/messages/batches",so,{query:e,...r})}delete(e,r){return this._client.delete(Tr`/v1/messages/batches/${e}`,r)}cancel(e,r){return this._client.post(Tr`/v1/messages/batches/${e}/cancel`,r)}async results(e,r){let n=await this.retrieve(e);if(!n.results_url)throw new Ee(`No batch \`results_url\`; Has it finished processing? ${n.processing_status} - ${n.id}`);return this._client.get(n.results_url,{...r,headers:Ve([{Accept:"application/binary"},r?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((s,i)=>Hv.fromResponse(i.response,i.controller))}},zd=class extends Rn{constructor(){super(...arguments),this.batches=new Gv(this._client)}create(e,r){e.model in AF&&console.warn(`The model '${e.model}' is deprecated and will reach end-of-life on ${AF[e.model]} +Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),e.model in $ye&&e.thinking&&e.thinking.type==="enabled"&&console.warn(`Using Claude with ${e.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let n=this._client._options.timeout;if(!e.stream&&n==null){let i=N8[e.model]??void 0;n=this._client.calculateNonstreamingTimeout(e.max_tokens,i)}let s=A8(e.tools,e.messages);return this._client.post("/v1/messages",{body:e,timeout:n??6e5,...r,headers:Ve([s,r?.headers]),stream:e.stream??!1})}parse(e,r){return this.create(e,r).then(n=>L8(n,e,{logger:this._client.logger??console}))}stream(e,r){return Zk.createMessage(this,e,r,{logger:this._client.logger??console})}countTokens(e,r){return this._client.post("/v1/messages/count_tokens",{body:e,...r})}},AF={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026","claude-3-5-haiku-latest":"February 19th, 2026","claude-3-5-haiku-20241022":"February 19th, 2026"},$ye=["claude-opus-4-6"];zd.Batches=Gv;var Vv=class extends Rn{retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/models/${e}`,{...n,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/models",so,{query:s,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers])})}},hv=t=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[t]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(t)?.trim()},Gk,_T,_v,U8,Lye="\\n\\nHuman:",Uye="\\n\\nAssistant:",Kt=class{constructor({baseURL:e=hv("ANTHROPIC_BASE_URL"),apiKey:r=hv("ANTHROPIC_API_KEY")??null,authToken:n=hv("ANTHROPIC_AUTH_TOKEN")??null,...s}={}){Gk.add(this),_v.set(this,void 0);let i={apiKey:r,authToken:n,...s,baseURL:e||"https://api.anthropic.com"};if(!i.dangerouslyAllowBrowser&&sye())throw new Ee(`It looks like you're running in a browser-like environment. This is disabled by default, as it risks exposing your secret API credentials to attackers. If you understand the risks and have appropriate mitigations in place, you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g., new Anthropic({ apiKey, dangerouslyAllowBrowser: true }); -`);this.baseURL=i.baseURL,this.timeout=i.timeout??kT.DEFAULT_TIMEOUT,this.logger=i.logger??console;let a="warn";this.logLevel=a,this.logLevel=yF(i.logLevel,"ClientOptions.logLevel",this)??yF(vv("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??a,this.fetchOptions=i.fetchOptions,this.maxRetries=i.maxRetries??2,this.fetch=i.fetch??hye(),ae(this,Sv,vye,"f"),this._options=i,this.apiKey=typeof r=="string"?r:null,this.authToken=n}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,authToken:this.authToken,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:r}){if(!(e.get("x-api-key")||e.get("authorization"))&&!(this.apiKey&&e.get("x-api-key"))&&!r.has("x-api-key")&&!(this.authToken&&e.get("authorization"))&&!r.has("authorization"))throw Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}async authHeaders(e){return Ve([await this.apiKeyAuth(e),await this.bearerAuth(e)])}async apiKeyAuth(e){if(this.apiKey!=null)return Ve([{"X-Api-Key":this.apiKey}])}async bearerAuth(e){if(this.authToken!=null)return Ve([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(e){return Object.entries(e).filter(([r,n])=>typeof n<"u").map(([r,n])=>{if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return`${encodeURIComponent(r)}=${encodeURIComponent(n)}`;if(n===null)return`${encodeURIComponent(r)}=`;throw new ke(`Cannot stringify type ${typeof n}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${Bc}`}defaultIdempotencyKey(){return`stainless-node-retry-${E8()}`}makeStatusError(e,r,n,s){return Jr.generate(e,r,n,s)}buildURL(e,r,n){let s=!D(this,JE,"m",B8).call(this)&&n||this.baseURL,i=iye(e)?new URL(e):new URL(s+(s.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),a=this.defaultQuery();return aye(a)||(r={...a,...r}),typeof r=="object"&&r&&!Array.isArray(r)&&(i.search=this.stringifyQuery(r)),i.toString()}_calculateNonstreamingTimeout(e){if(3600*e/128e3>600)throw new ke("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 6e5}async prepareOptions(e){}async prepareRequest(e,{url:r,options:n}){}get(e,r){return this.methodRequest("get",e,r)}post(e,r){return this.methodRequest("post",e,r)}patch(e,r){return this.methodRequest("patch",e,r)}put(e,r){return this.methodRequest("put",e,r)}delete(e,r){return this.methodRequest("delete",e,r)}methodRequest(e,r,n){return this.request(Promise.resolve(n).then(s=>({method:e,path:r,...s})))}request(e,r=null){return new $v(this,this.makeRequest(e,r,void 0))}async makeRequest(e,r,n){let s=await e,i=s.maxRetries??this.maxRetries;r==null&&(r=i),await this.prepareOptions(s);let{req:a,url:o,timeout:c}=await this.buildRequest(s,{retryCount:i-r});await this.prepareRequest(a,{url:o,options:s});let l="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),u=n===void 0?"":`, retryOf: ${n}`,p=Date.now();if(Vr(this).debug(`[${l}] sending request`,eo({retryOfRequestLogID:n,method:s.method,url:o,options:s,headers:a.headers})),s.signal?.aborted)throw new Tn;let d=new AbortController,m=await this.fetchWithTimeout(o,a,c,d).catch(UE),f=Date.now();if(m instanceof globalThis.Error){let h=`retrying, ${r} attempts remaining`;if(s.signal?.aborted)throw new Tn;let y=Md(m)||/timed? ?out/i.test(String(m)+("cause"in m?String(m.cause):""));if(r)return Vr(this).info(`[${l}] connection ${y?"timed out":"failed"} - ${h}`),Vr(this).debug(`[${l}] connection ${y?"timed out":"failed"} (${h})`,eo({retryOfRequestLogID:n,url:o,durationMs:f-p,message:m.message})),this.retryRequest(s,r,n??l);throw Vr(this).info(`[${l}] connection ${y?"timed out":"failed"} - error; no more retries left`),Vr(this).debug(`[${l}] connection ${y?"timed out":"failed"} (error; no more retries left)`,eo({retryOfRequestLogID:n,url:o,durationMs:f-p,message:m.message})),y?new Pv:new Yc({cause:m})}let g=[...m.headers.entries()].filter(([h])=>h==="request-id").map(([h,y])=>", "+h+": "+JSON.stringify(y)).join(""),v=`[${l}${u}${g}] ${a.method} ${o} ${m.ok?"succeeded":"failed"} with status ${m.status} in ${f-p}ms`;if(!m.ok){let h=await this.shouldRetry(m);if(r&&h){let S=`retrying, ${r} attempts remaining`;return await gye(m.body),Vr(this).info(`${v} - ${S}`),Vr(this).debug(`[${l}] response error (${S})`,eo({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,durationMs:f-p})),this.retryRequest(s,r,n??l,m.headers)}let y=h?"error; no more retries left":"error; not retryable";Vr(this).info(`${v} - ${y}`);let b=await m.text().catch(S=>UE(S).message),x=T8(b),w=x?void 0:b;throw Vr(this).debug(`[${l}] response error (${y})`,eo({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,message:w,durationMs:Date.now()-p})),this.makeStatusError(m.status,x,w,m.headers)}return Vr(this).info(v),Vr(this).debug(`[${l}] response start`,eo({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,durationMs:f-p})),{response:m,options:s,controller:d,requestLogID:l,retryOfRequestLogID:n,startTime:p}}getAPIList(e,r,n){return this.requestAPIList(r,n&&"then"in n?n.then(s=>({method:"get",path:e,...s})):{method:"get",path:e,...n})}requestAPIList(e,r){let n=this.makeRequest(r,null,void 0);return new BE(this,n,e)}async fetchWithTimeout(e,r,n,s){let{signal:i,method:a,...o}=r||{},c=this._makeAbort(s);i&&i.addEventListener("abort",c,{once:!0});let l=setTimeout(c,n),u=globalThis.ReadableStream&&o.body instanceof globalThis.ReadableStream||typeof o.body=="object"&&o.body!==null&&Symbol.asyncIterator in o.body,p={signal:s.signal,...u?{duplex:"half"}:{},method:"GET",...o};a&&(p.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,p)}finally{clearTimeout(l)}}async shouldRetry(e){let r=e.headers.get("x-should-retry");return r==="true"?!0:r==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,r,n,s){let i,a=s?.get("retry-after-ms");if(a){let c=parseFloat(a);Number.isNaN(c)||(i=c)}let o=s?.get("retry-after");if(o&&!i){let c=parseFloat(o);Number.isNaN(c)?i=Date.parse(o)-Date.now():i=c*1e3}if(!(i&&0<=i&&i<6e4)){let c=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(r,c)}return await lye(i),this.makeRequest(e,r-1,n)}calculateDefaultRetryTimeoutMillis(e,r){let n=r-e,s=Math.min(.5*Math.pow(2,n),8),i=1-Math.random()*.25;return s*i*1e3}calculateNonstreamingTimeout(e,r){if(36e5*e/128e3>6e5||r!=null&&e>r)throw new ke("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 6e5}async buildRequest(e,{retryCount:r=0}={}){let n={...e},{method:s,path:i,query:a,defaultBaseURL:o}=n,c=this.buildURL(i,a,o);"timeout"in n&&cye("timeout",n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:l,body:u}=this.buildBody({options:n}),p=await this.buildHeaders({options:e,method:s,bodyHeaders:l,retryCount:r});return{req:{method:s,headers:p,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&u instanceof globalThis.ReadableStream&&{duplex:"half"},...u&&{body:u},...this.fetchOptions??{},...n.fetchOptions??{}},url:c,timeout:n.timeout}}async buildHeaders({options:e,method:r,bodyHeaders:n,retryCount:s}){let i={};this.idempotencyHeader&&r!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),i[this.idempotencyHeader]=e.idempotencyKey);let a=Ve([i,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(s),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...fye(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(a),a.values}_makeAbort(e){return()=>e.abort()}buildBody({options:{body:e,headers:r}}){if(!e)return{bodyHeaders:void 0,body:void 0};let n=Ve([r]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&n.values.has("content-type")||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:P8(e)}:D(this,Sv,"f").call(this,{body:e,headers:n})}};kT=Kt,Sv=new WeakMap,JE=new WeakSet,B8=function(){return this.baseURL!=="https://api.anthropic.com"};Kt.Anthropic=kT;Kt.HUMAN_PROMPT=Wye;Kt.AI_PROMPT=Zye;Kt.DEFAULT_TIMEOUT=6e5;Kt.AnthropicError=ke;Kt.APIError=Jr;Kt.APIConnectionError=Yc;Kt.APIConnectionTimeoutError=Pv;Kt.APIUserAbortError=Tn;Kt.NotFoundError=Av;Kt.ConflictError=jv;Kt.RateLimitError=Dv;Kt.BadRequestError=Iv;Kt.AuthenticationError=Cv;Kt.InternalServerError=Mv;Kt.PermissionDeniedError=Ov;Kt.UnprocessableEntityError=Nv;Kt.toFile=Cye;var Xc=class extends Kt{constructor(){super(...arguments),this.completions=new Vv(this),this.messages=new $d(this),this.models=new Jv(this),this.beta=new Ji(this)}};Xc.Completions=Vv;Xc.Messages=$d;Xc.Models=Jv;Xc.Beta=Ji;function QE(t){return t instanceof Error?t.message:String(t)}function kv(t){if(t&&typeof t=="object"&&"code"in t&&typeof t.code=="string")return t.code}function Gye(t){return kv(t)==="ENOENT"}var Jc,Hc=null;function Vye(){if(Hc)return Hc;if(!to(process.env.DEBUG_CLAUDE_AGENT_SDK))return Jc=null,Hc=Promise.resolve(),Hc;let t=(0,YE.join)(k8(),"debug");return Jc=(0,YE.join)(t,`sdk-${(0,W8.randomUUID)()}.txt`),process.stderr.write(`SDK debug logs: ${Jc} -`),Hc=(0,xy.mkdir)(t,{recursive:!0}).then(()=>{}).catch(()=>{}),Hc}function Fs(t){if(Jc===null)return;let e=`${new Date().toISOString()} ${t} -`;Vye().then(()=>{Jc&&(0,xy.appendFile)(Jc,e).catch(()=>{})})}function G8(){let t=new Set;return{subscribe(e){return t.add(e),()=>{t.delete(e)}},emit(...e){for(let r of t)r(...e)},clear(){t.clear()}}}function Kye(){let t="";if(typeof process<"u"&&typeof process.cwd=="function"&&typeof XE.realpathSync=="function"){let e=(0,Z8.cwd)();try{t=(0,XE.realpathSync)(e).normalize("NFC")}catch{t=e.normalize("NFC")}}return{originalCwd:t,projectRoot:t,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,turnHookDurationMs:0,turnToolDurationMs:0,turnClassifierDurationMs:0,turnToolCount:0,turnHookCount:0,turnClassifierCount:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:t,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,kairosActive:!1,strictToolResultPairing:!1,memoryToggledOff:!1,sdkAgentProgressSummariesEnabled:!1,userMsgOptIn:!1,clientType:"cli",sessionSource:void 0,questionPreviewFormat:void 0,sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,flagSettingsInline:null,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,statsStore:null,sessionId:(0,ET.randomUUID)(),parentSessionId:void 0,loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,lastAPIRequest:null,lastAPIRequestMessages:null,lastClassifierRequests:null,cachedClaudeMdContent:null,inMemoryErrorLog:[],inlinePlugins:[],chromeFlagOverride:void 0,useCoworkPlugins:!1,sessionBypassPermissionsMode:!1,scheduledTasksEnabled:!1,sessionCronTasks:[],sessionCreatedTeams:new Set,sessionTrustAccepted:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,needsAutoModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sdkBetas:void 0,mainThreadAgentType:void 0,isRemoteMode:!1,directConnectServerUrl:void 0,systemPromptSectionCache:new Map,lastEmittedDate:null,additionalDirectoriesForClaudeMd:[],allowedChannels:[],hasDevChannels:!1,sessionProjectDir:null,promptCache1hAllowlist:null,afkModeHeaderLatched:null,fastModeHeaderLatched:null,cacheEditingHeaderLatched:null,thinkingClearLatched:null,promptId:null,lastMainRequestId:void 0,lastApiCompletionTimestamp:null,pendingPostCompaction:!1}}var Jye=Kye();function Qye(){return Jye.sessionId}var Yye=G8(),r$e=Yye.subscribe,Xye=G8(),n$e=Xye.subscribe;function ebe({writeFn:t,flushIntervalMs:e=1e3,maxBufferSize:r=100,maxBufferBytes:n=1/0,immediateMode:s=!1}){let i=[],a=0,o=null,c=null;function l(){o&&(clearTimeout(o),o=null)}function u(){c&&(t(c.join("")),c=null),i.length!==0&&(t(i.join("")),i=[],a=0,l())}function p(){o||(o=setTimeout(u,e))}function d(){if(c){c.push(...i),i=[],a=0,l();return}let m=i;i=[],a=0,l(),c=m,setImmediate(()=>{let f=c;c=null,f&&t(f.join(""))})}return{write(m){if(s){t(m);return}i.push(m),a+=m.length,p(),(i.length>=r||a>=n)&&d()},flush:u,dispose(){u()}}}var zF=new Set;function tbe(t){return zF.add(t),()=>zF.delete(t)}var rbe=ea(t=>{if(!t||t.trim()==="")return null;let e=t.split(",").map(i=>i.trim()).filter(Boolean);if(e.length===0)return null;let r=e.some(i=>i.startsWith("!")),n=e.some(i=>!i.startsWith("!"));if(r&&n)return null;let s=e.map(i=>i.replace(/^!/,"").toLowerCase());return{include:r?[]:s,exclude:r?s:[],isExclusive:r}});function nbe(t){let e=[],r=t.match(/^MCP server ["']([^"']+)["']/);if(r&&r[1])e.push("mcp"),e.push(r[1].toLowerCase());else{let i=t.match(/^([^:[]+):/);i&&i[1]&&e.push(i[1].trim().toLowerCase())}let n=t.match(/^\[([^\]]+)]/);n&&n[1]&&e.push(n[1].trim().toLowerCase()),t.toLowerCase().includes("1p event:")&&e.push("1p");let s=t.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(s&&s[1]){let i=s[1].trim().toLowerCase();i.length<30&&!i.includes(" ")&&e.push(i)}return Array.from(new Set(e))}function sbe(t,e){return e?t.length===0?!1:e.isExclusive?!t.some(r=>e.exclude.includes(r)):t.some(r=>e.include.includes(r)):!0}function ibe(t,e){if(!e)return!0;let r=nbe(t);return sbe(r,e)}var abe={cwd(){return process.cwd()},existsSync(t){let e=[];try{let s=Zt(e,Vt`fs.existsSync(${t})`,0);return Re.existsSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},async stat(t){return(0,or.stat)(t)},async readdir(t){return(0,or.readdir)(t,{withFileTypes:!0})},async unlink(t){return(0,or.unlink)(t)},async rmdir(t){return(0,or.rmdir)(t)},async rm(t,e){return(0,or.rm)(t,e)},async mkdir(t,e){try{await(0,or.mkdir)(t,{recursive:!0,...e})}catch(r){if(kv(r)!=="EEXIST")throw r}},async readFile(t,e){return(0,or.readFile)(t,{encoding:e.encoding})},async rename(t,e){return(0,or.rename)(t,e)},statSync(t){let e=[];try{let s=Zt(e,Vt`fs.statSync(${t})`,0);return Re.statSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},lstatSync(t){let e=[];try{let s=Zt(e,Vt`fs.lstatSync(${t})`,0);return Re.lstatSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readFileSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.readFileSync(${t})`,0);return Re.readFileSync(t,{encoding:e.encoding})}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},readFileBytesSync(t){let e=[];try{let s=Zt(e,Vt`fs.readFileBytesSync(${t})`,0);return Re.readFileSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.readSync(${t}, ${e.length} bytes)`,0),a;try{a=Re.openSync(t,"r");let o=Buffer.alloc(e.length),c=Re.readSync(a,o,0,e.length,0);return{buffer:o,bytesRead:c}}finally{a&&Re.closeSync(a)}}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},appendFileSync(t,e,r){let n=[];try{let a=Zt(n,Vt`fs.appendFileSync(${t}, ${e.length} chars)`,0);if(r?.mode!==void 0)try{let o=Re.openSync(t,"ax",r.mode);try{Re.appendFileSync(o,e)}finally{Re.closeSync(o)}return}catch(o){if(kv(o)!=="EEXIST")throw o}Re.appendFileSync(t,e)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}},copyFileSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.copyFileSync(${t} → ${e})`,0);Re.copyFileSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},unlinkSync(t){let e=[];try{let s=Zt(e,Vt`fs.unlinkSync(${t})`,0);Re.unlinkSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},renameSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.renameSync(${t} → ${e})`,0);Re.renameSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},linkSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.linkSync(${t} → ${e})`,0);Re.linkSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},symlinkSync(t,e,r){let n=[];try{let a=Zt(n,Vt`fs.symlinkSync(${t} → ${e})`,0);Re.symlinkSync(t,e,r)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}},readlinkSync(t){let e=[];try{let s=Zt(e,Vt`fs.readlinkSync(${t})`,0);return Re.readlinkSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},realpathSync(t){let e=[];try{let s=Zt(e,Vt`fs.realpathSync(${t})`,0);return Re.realpathSync(t).normalize("NFC")}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},mkdirSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.mkdirSync(${t})`,0),a={recursive:!0};e?.mode!==void 0&&(a.mode=e.mode);try{Re.mkdirSync(t,a)}catch(o){if(kv(o)!=="EEXIST")throw o}}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},readdirSync(t){let e=[];try{let s=Zt(e,Vt`fs.readdirSync(${t})`,0);return Re.readdirSync(t,{withFileTypes:!0})}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readdirStringSync(t){let e=[];try{let s=Zt(e,Vt`fs.readdirStringSync(${t})`,0);return Re.readdirSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},isDirEmptySync(t){let e=[];try{let s=Zt(e,Vt`fs.isDirEmptySync(${t})`,0);return this.readdirSync(t).length===0}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},rmdirSync(t){let e=[];try{let s=Zt(e,Vt`fs.rmdirSync(${t})`,0);Re.rmdirSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},rmSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.rmSync(${t})`,0);Re.rmSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},createWriteStream(t){return Re.createWriteStream(t)},async readFileBytes(t,e){if(e===void 0)return(0,or.readFile)(t);let r=await(0,or.open)(t,"r");try{let{size:n}=await r.stat(),s=Math.min(n,e),i=Buffer.allocUnsafe(s),a=0;for(;a{let t=process.env.CLAUDE_CODE_DEBUG_LOG_LEVEL?.toLowerCase().trim();return t&&Object.hasOwn(eT,t)?t:"debug"}),pbe=!1,tT=ea(()=>pbe||to(process.env.DEBUG)||to(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||V8()||process.argv.some(t=>t.startsWith("--debug="))||K8()!==null),dbe=ea(()=>{let t=process.argv.find(r=>r.startsWith("--debug="));if(!t)return null;let e=t.substring(8);return rbe(e)}),V8=ea(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e")),K8=ea(()=>{for(let t=0;t"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=dbe();return ibe(t,e)}var fbe=!1,yv=null,zE=Promise.resolve();async function hbe(t,e,r,n){t&&await(0,ta.mkdir)(e,{recursive:!0}).catch(()=>{}),await(0,ta.appendFile)(r,n),Q8()}function gbe(){}function vbe(){if(!yv){let t=null;yv=ebe({writeFn:e=>{let r=J8(),n=(0,bl.dirname)(r),s=t!==n;if(t=n,tT()){if(s)try{$F().mkdirSync(n)}catch{}$F().appendFileSync(r,e),Q8();return}zE=zE.then(hbe.bind(null,s,n,r,e)).catch(gbe)},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:tT()}),tbe(async()=>{yv?.dispose(),await zE})}return yv}function Zi(t,{level:e}={level:"debug"}){if(eT[e]typeof n<"u").map(([r,n])=>{if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return`${encodeURIComponent(r)}=${encodeURIComponent(n)}`;if(n===null)return`${encodeURIComponent(r)}=`;throw new Ee(`Cannot stringify type ${typeof n}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${Hc}`}defaultIdempotencyKey(){return`stainless-node-retry-${_8()}`}makeStatusError(e,r,n,s){return Jr.generate(e,r,n,s)}buildURL(e,r,n){let s=!D(this,Gk,"m",U8).call(this)&&n||this.baseURL,i=Xve(e)?new URL(e):new URL(s+(s.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),a=this.defaultQuery();return eye(a)||(r={...a,...r}),typeof r=="object"&&r&&!Array.isArray(r)&&(i.search=this.stringifyQuery(r)),i.toString()}_calculateNonstreamingTimeout(e){if(3600*e/128e3>600)throw new Ee("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 6e5}async prepareOptions(e){}async prepareRequest(e,{url:r,options:n}){}get(e,r){return this.methodRequest("get",e,r)}post(e,r){return this.methodRequest("post",e,r)}patch(e,r){return this.methodRequest("patch",e,r)}put(e,r){return this.methodRequest("put",e,r)}delete(e,r){return this.methodRequest("delete",e,r)}methodRequest(e,r,n){return this.request(Promise.resolve(n).then(s=>({method:e,path:r,...s})))}request(e,r=null){return new Mv(this,this.makeRequest(e,r,void 0))}async makeRequest(e,r,n){let s=await e,i=s.maxRetries??this.maxRetries;r==null&&(r=i),await this.prepareOptions(s);let{req:a,url:o,timeout:c}=await this.buildRequest(s,{retryCount:i-r});await this.prepareRequest(a,{url:o,options:s});let l="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),u=n===void 0?"":`, retryOf: ${n}`,p=Date.now();if(Vr(this).debug(`[${l}] sending request`,Xa({retryOfRequestLogID:n,method:s.method,url:o,options:s,headers:a.headers})),s.signal?.aborted)throw new Tn;let d=new AbortController,m=await this.fetchWithTimeout(o,a,c,d).catch(zk),f=Date.now();if(m instanceof globalThis.Error){let h=`retrying, ${r} attempts remaining`;if(s.signal?.aborted)throw new Tn;let y=Dd(m)||/timed? ?out/i.test(String(m)+("cause"in m?String(m.cause):""));if(r)return Vr(this).info(`[${l}] connection ${y?"timed out":"failed"} - ${h}`),Vr(this).debug(`[${l}] connection ${y?"timed out":"failed"} (${h})`,Xa({retryOfRequestLogID:n,url:o,durationMs:f-p,message:m.message})),this.retryRequest(s,r,n??l);throw Vr(this).info(`[${l}] connection ${y?"timed out":"failed"} - error; no more retries left`),Vr(this).debug(`[${l}] connection ${y?"timed out":"failed"} (error; no more retries left)`,Xa({retryOfRequestLogID:n,url:o,durationMs:f-p,message:m.message})),y?new Tv:new Qc({cause:m})}let g=[...m.headers.entries()].filter(([h])=>h==="request-id").map(([h,y])=>", "+h+": "+JSON.stringify(y)).join(""),v=`[${l}${u}${g}] ${a.method} ${o} ${m.ok?"succeeded":"failed"} with status ${m.status} in ${f-p}ms`;if(!m.ok){let h=await this.shouldRetry(m);if(r&&h){let S=`retrying, ${r} attempts remaining`;return await uye(m.body),Vr(this).info(`${v} - ${S}`),Vr(this).debug(`[${l}] response error (${S})`,Xa({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,durationMs:f-p})),this.retryRequest(s,r,n??l,m.headers)}let y=h?"error; no more retries left":"error; not retryable";Vr(this).info(`${v} - ${y}`);let b=await m.text().catch(S=>zk(S).message),x=w8(b),w=x?void 0:b;throw Vr(this).debug(`[${l}] response error (${y})`,Xa({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,message:w,durationMs:Date.now()-p})),this.makeStatusError(m.status,x,w,m.headers)}return Vr(this).info(v),Vr(this).debug(`[${l}] response start`,Xa({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,durationMs:f-p})),{response:m,options:s,controller:d,requestLogID:l,retryOfRequestLogID:n,startTime:p}}getAPIList(e,r,n){return this.requestAPIList(r,n&&"then"in n?n.then(s=>({method:"get",path:e,...s})):{method:"get",path:e,...n})}requestAPIList(e,r){let n=this.makeRequest(r,null,void 0);return new qk(this,n,e)}async fetchWithTimeout(e,r,n,s){let{signal:i,method:a,...o}=r||{},c=this._makeAbort(s);i&&i.addEventListener("abort",c,{once:!0});let l=setTimeout(c,n),u=globalThis.ReadableStream&&o.body instanceof globalThis.ReadableStream||typeof o.body=="object"&&o.body!==null&&Symbol.asyncIterator in o.body,p={signal:s.signal,...u?{duplex:"half"}:{},method:"GET",...o};a&&(p.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,p)}finally{clearTimeout(l)}}async shouldRetry(e){let r=e.headers.get("x-should-retry");return r==="true"?!0:r==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,r,n,s){let i,a=s?.get("retry-after-ms");if(a){let c=parseFloat(a);Number.isNaN(c)||(i=c)}let o=s?.get("retry-after");if(o&&!i){let c=parseFloat(o);Number.isNaN(c)?i=Date.parse(o)-Date.now():i=c*1e3}if(!(i&&0<=i&&i<6e4)){let c=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(r,c)}return await nye(i),this.makeRequest(e,r-1,n)}calculateDefaultRetryTimeoutMillis(e,r){let n=r-e,s=Math.min(.5*Math.pow(2,n),8),i=1-Math.random()*.25;return s*i*1e3}calculateNonstreamingTimeout(e,r){if(36e5*e/128e3>6e5||r!=null&&e>r)throw new Ee("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 6e5}async buildRequest(e,{retryCount:r=0}={}){let n={...e},{method:s,path:i,query:a,defaultBaseURL:o}=n,c=this.buildURL(i,a,o);"timeout"in n&&rye("timeout",n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:l,body:u}=this.buildBody({options:n}),p=await this.buildHeaders({options:e,method:s,bodyHeaders:l,retryCount:r});return{req:{method:s,headers:p,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&u instanceof globalThis.ReadableStream&&{duplex:"half"},...u&&{body:u},...this.fetchOptions??{},...n.fetchOptions??{}},url:c,timeout:n.timeout}}async buildHeaders({options:e,method:r,bodyHeaders:n,retryCount:s}){let i={};this.idempotencyHeader&&r!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),i[this.idempotencyHeader]=e.idempotencyKey);let a=Ve([i,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(s),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...cye(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(a),a.values}_makeAbort(e){return()=>e.abort()}buildBody({options:{body:e,headers:r}}){if(!e)return{bodyHeaders:void 0,body:void 0};let n=Ve([r]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&n.values.has("content-type")||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:E8(e)}:D(this,_v,"f").call(this,{body:e,headers:n})}};_T=Kt,_v=new WeakMap,Gk=new WeakSet,U8=function(){return this.baseURL!=="https://api.anthropic.com"};Kt.Anthropic=_T;Kt.HUMAN_PROMPT=Lye;Kt.AI_PROMPT=Uye;Kt.DEFAULT_TIMEOUT=6e5;Kt.AnthropicError=Ee;Kt.APIError=Jr;Kt.APIConnectionError=Qc;Kt.APIConnectionTimeoutError=Tv;Kt.APIUserAbortError=Tn;Kt.NotFoundError=Cv;Kt.ConflictError=Ov;Kt.RateLimitError=jv;Kt.BadRequestError=Rv;Kt.AuthenticationError=Pv;Kt.InternalServerError=Nv;Kt.PermissionDeniedError=Iv;Kt.UnprocessableEntityError=Av;Kt.toFile=Eye;var Yc=class extends Kt{constructor(){super(...arguments),this.completions=new Zv(this),this.messages=new zd(this),this.models=new Vv(this),this.beta=new Ji(this)}};Yc.Completions=Zv;Yc.Messages=zd;Yc.Models=Vv;Yc.Beta=Ji;function Vk(t){return t instanceof Error?t.message:String(t)}function wv(t){if(t&&typeof t=="object"&&"code"in t&&typeof t.code=="string")return t.code}function qye(t){return wv(t)==="ENOENT"}var Kc,Fc=null;function Fye(){if(Fc)return Fc;if(!eo(process.env.DEBUG_CLAUDE_AGENT_SDK))return Kc=null,Fc=Promise.resolve(),Fc;let t=(0,Kk.join)(x8(),"debug");return Kc=(0,Kk.join)(t,`sdk-${(0,q8.randomUUID)()}.txt`),process.stderr.write(`SDK debug logs: ${Kc} +`),Fc=(0,yy.mkdir)(t,{recursive:!0}).then(()=>{}).catch(()=>{}),Fc}function Fs(t){if(Kc===null)return;let e=`${new Date().toISOString()} ${t} +`;Fye().then(()=>{Kc&&(0,yy.appendFile)(Kc,e).catch(()=>{})})}function H8(){let t=new Set;return{subscribe(e){return t.add(e),()=>{t.delete(e)}},emit(...e){for(let r of t)r(...e)},clear(){t.clear()}}}function Hye(){let t="";if(typeof process<"u"&&typeof process.cwd=="function"&&typeof Jk.realpathSync=="function"){let e=(0,F8.cwd)();try{t=(0,Jk.realpathSync)(e).normalize("NFC")}catch{t=e.normalize("NFC")}}return{originalCwd:t,projectRoot:t,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,turnHookDurationMs:0,turnToolDurationMs:0,turnClassifierDurationMs:0,turnToolCount:0,turnHookCount:0,turnClassifierCount:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:t,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,kairosActive:!1,strictToolResultPairing:!1,memoryToggledOff:!1,sdkAgentProgressSummariesEnabled:!1,userMsgOptIn:!1,clientType:"cli",sessionSource:void 0,questionPreviewFormat:void 0,sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,flagSettingsInline:null,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,statsStore:null,sessionId:(0,wT.randomUUID)(),parentSessionId:void 0,loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,lastAPIRequest:null,lastAPIRequestMessages:null,lastClassifierRequests:null,cachedClaudeMdContent:null,inMemoryErrorLog:[],inlinePlugins:[],chromeFlagOverride:void 0,useCoworkPlugins:!1,sessionBypassPermissionsMode:!1,scheduledTasksEnabled:!1,sessionCronTasks:[],sessionCreatedTeams:new Set,sessionTrustAccepted:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,needsAutoModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sdkBetas:void 0,mainThreadAgentType:void 0,isRemoteMode:!1,directConnectServerUrl:void 0,systemPromptSectionCache:new Map,lastEmittedDate:null,additionalDirectoriesForClaudeMd:[],allowedChannels:[],hasDevChannels:!1,sessionProjectDir:null,promptCache1hAllowlist:null,afkModeHeaderLatched:null,fastModeHeaderLatched:null,cacheEditingHeaderLatched:null,thinkingClearLatched:null,promptId:null,lastMainRequestId:void 0,lastApiCompletionTimestamp:null,pendingPostCompaction:!1}}var Bye=Hye();function Wye(){return Bye.sessionId}var Zye=H8(),K4e=Zye.subscribe,Gye=H8(),J4e=Gye.subscribe;function Vye({writeFn:t,flushIntervalMs:e=1e3,maxBufferSize:r=100,maxBufferBytes:n=1/0,immediateMode:s=!1}){let i=[],a=0,o=null,c=null;function l(){o&&(clearTimeout(o),o=null)}function u(){c&&(t(c.join("")),c=null),i.length!==0&&(t(i.join("")),i=[],a=0,l())}function p(){o||(o=setTimeout(u,e))}function d(){if(c){c.push(...i),i=[],a=0,l();return}let m=i;i=[],a=0,l(),c=m,setImmediate(()=>{let f=c;c=null,f&&t(f.join(""))})}return{write(m){if(s){t(m);return}i.push(m),a+=m.length,p(),(i.length>=r||a>=n)&&d()},flush:u,dispose(){u()}}}var jF=new Set;function Kye(t){return jF.add(t),()=>jF.delete(t)}var Jye=ea(t=>{if(!t||t.trim()==="")return null;let e=t.split(",").map(i=>i.trim()).filter(Boolean);if(e.length===0)return null;let r=e.some(i=>i.startsWith("!")),n=e.some(i=>!i.startsWith("!"));if(r&&n)return null;let s=e.map(i=>i.replace(/^!/,"").toLowerCase());return{include:r?[]:s,exclude:r?s:[],isExclusive:r}});function Qye(t){let e=[],r=t.match(/^MCP server ["']([^"']+)["']/);if(r&&r[1])e.push("mcp"),e.push(r[1].toLowerCase());else{let i=t.match(/^([^:[]+):/);i&&i[1]&&e.push(i[1].trim().toLowerCase())}let n=t.match(/^\[([^\]]+)]/);n&&n[1]&&e.push(n[1].trim().toLowerCase()),t.toLowerCase().includes("1p event:")&&e.push("1p");let s=t.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(s&&s[1]){let i=s[1].trim().toLowerCase();i.length<30&&!i.includes(" ")&&e.push(i)}return Array.from(new Set(e))}function Yye(t,e){return e?t.length===0?!1:e.isExclusive?!t.some(r=>e.exclude.includes(r)):t.some(r=>e.include.includes(r)):!0}function Xye(t,e){if(!e)return!0;let r=Qye(t);return Yye(r,e)}var ebe={cwd(){return process.cwd()},existsSync(t){let e=[];try{let s=Zt(e,Vt`fs.existsSync(${t})`,0);return Re.existsSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},async stat(t){return(0,or.stat)(t)},async readdir(t){return(0,or.readdir)(t,{withFileTypes:!0})},async unlink(t){return(0,or.unlink)(t)},async rmdir(t){return(0,or.rmdir)(t)},async rm(t,e){return(0,or.rm)(t,e)},async mkdir(t,e){try{await(0,or.mkdir)(t,{recursive:!0,...e})}catch(r){if(wv(r)!=="EEXIST")throw r}},async readFile(t,e){return(0,or.readFile)(t,{encoding:e.encoding})},async rename(t,e){return(0,or.rename)(t,e)},statSync(t){let e=[];try{let s=Zt(e,Vt`fs.statSync(${t})`,0);return Re.statSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},lstatSync(t){let e=[];try{let s=Zt(e,Vt`fs.lstatSync(${t})`,0);return Re.lstatSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readFileSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.readFileSync(${t})`,0);return Re.readFileSync(t,{encoding:e.encoding})}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},readFileBytesSync(t){let e=[];try{let s=Zt(e,Vt`fs.readFileBytesSync(${t})`,0);return Re.readFileSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.readSync(${t}, ${e.length} bytes)`,0),a;try{a=Re.openSync(t,"r");let o=Buffer.alloc(e.length),c=Re.readSync(a,o,0,e.length,0);return{buffer:o,bytesRead:c}}finally{a&&Re.closeSync(a)}}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},appendFileSync(t,e,r){let n=[];try{let a=Zt(n,Vt`fs.appendFileSync(${t}, ${e.length} chars)`,0);if(r?.mode!==void 0)try{let o=Re.openSync(t,"ax",r.mode);try{Re.appendFileSync(o,e)}finally{Re.closeSync(o)}return}catch(o){if(wv(o)!=="EEXIST")throw o}Re.appendFileSync(t,e)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}},copyFileSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.copyFileSync(${t} → ${e})`,0);Re.copyFileSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},unlinkSync(t){let e=[];try{let s=Zt(e,Vt`fs.unlinkSync(${t})`,0);Re.unlinkSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},renameSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.renameSync(${t} → ${e})`,0);Re.renameSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},linkSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.linkSync(${t} → ${e})`,0);Re.linkSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},symlinkSync(t,e,r){let n=[];try{let a=Zt(n,Vt`fs.symlinkSync(${t} → ${e})`,0);Re.symlinkSync(t,e,r)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}},readlinkSync(t){let e=[];try{let s=Zt(e,Vt`fs.readlinkSync(${t})`,0);return Re.readlinkSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},realpathSync(t){let e=[];try{let s=Zt(e,Vt`fs.realpathSync(${t})`,0);return Re.realpathSync(t).normalize("NFC")}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},mkdirSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.mkdirSync(${t})`,0),a={recursive:!0};e?.mode!==void 0&&(a.mode=e.mode);try{Re.mkdirSync(t,a)}catch(o){if(wv(o)!=="EEXIST")throw o}}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},readdirSync(t){let e=[];try{let s=Zt(e,Vt`fs.readdirSync(${t})`,0);return Re.readdirSync(t,{withFileTypes:!0})}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readdirStringSync(t){let e=[];try{let s=Zt(e,Vt`fs.readdirStringSync(${t})`,0);return Re.readdirSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},isDirEmptySync(t){let e=[];try{let s=Zt(e,Vt`fs.isDirEmptySync(${t})`,0);return this.readdirSync(t).length===0}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},rmdirSync(t){let e=[];try{let s=Zt(e,Vt`fs.rmdirSync(${t})`,0);Re.rmdirSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},rmSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.rmSync(${t})`,0);Re.rmSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},createWriteStream(t){return Re.createWriteStream(t)},async readFileBytes(t,e){if(e===void 0)return(0,or.readFile)(t);let r=await(0,or.open)(t,"r");try{let{size:n}=await r.stat(),s=Math.min(n,e),i=Buffer.allocUnsafe(s),a=0;for(;a{let t=process.env.CLAUDE_CODE_DEBUG_LOG_LEVEL?.toLowerCase().trim();return t&&Object.hasOwn(Qk,t)?t:"debug"}),ibe=!1,Yk=ea(()=>ibe||eo(process.env.DEBUG)||eo(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||B8()||process.argv.some(t=>t.startsWith("--debug="))||W8()!==null),abe=ea(()=>{let t=process.argv.find(r=>r.startsWith("--debug="));if(!t)return null;let e=t.substring(8);return Jye(e)}),B8=ea(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e")),W8=ea(()=>{for(let t=0;t"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=abe();return Xye(t,e)}var cbe=!1,gv=null,Nk=Promise.resolve();async function lbe(t,e,r,n){t&&await(0,ta.mkdir)(e,{recursive:!0}).catch(()=>{}),await(0,ta.appendFile)(r,n),G8()}function ube(){}function pbe(){if(!gv){let t=null;gv=Vye({writeFn:e=>{let r=Z8(),n=(0,yl.dirname)(r),s=t!==n;if(t=n,Yk()){if(s)try{NF().mkdirSync(n)}catch{}NF().appendFileSync(r,e),G8();return}Nk=Nk.then(lbe.bind(null,s,n,r,e)).catch(ube)},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Yk()}),Kye(async()=>{gv?.dispose(),await Nk})}return gv}function Zi(t,{level:e}={level:"debug"}){if(Qk[e]{try{let t=J8(),e=(0,bl.dirname)(t),r=(0,bl.join)(e,"latest");await(0,ta.unlink)(r).catch(()=>{}),await(0,ta.symlink)(t,r)}catch{}}),s$e=(()=>{let t=process.env.CLAUDE_CODE_SLOW_OPERATION_THRESHOLD_MS;if(t!==void 0){let e=Number(t);if(!Number.isNaN(e)&&e>=0)return e}return 1/0})(),ybe={[Symbol.dispose](){}};function bbe(){return ybe}var Vt=bbe;function pi(t,e,r){let n=[];try{let a=Zt(n,Vt`JSON.stringify(${t})`,0);return JSON.stringify(t,e,r)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}}var Y8=(t,e)=>{let r=[];try{let i=Zt(r,Vt`JSON.parse(${t})`,0);return typeof e>"u"?JSON.parse(t):JSON.parse(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}};function xbe(t){let e=t.trim();return e.startsWith("{")&&e.endsWith("}")}function _be(t,e){let r={...t};if(e){let n=r.settings;if(n&&!xbe(n))throw Error("Cannot use both a settings file path and the sandbox option. Include the sandbox configuration in your settings file instead.");let s={sandbox:e};if(n)try{s={...Y8(n),sandbox:e}}catch{}r.settings=pi(s)}return r}var wbe=2e3,rT=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(e){this.options=e,this.abortController=e.abortController||f8(),this.initialize()}getDefaultExecutable(){return v8()?"bun":"node"}spawnLocalProcess(e){let{command:r,args:n,cwd:s,env:i,signal:a}=e,o=to(i.DEBUG_CLAUDE_AGENT_SDK)||this.options.stderr?"pipe":"ignore",c=(0,h8.spawn)(r,n,{cwd:s,stdio:["pipe","pipe",o],signal:a,env:i,windowsHide:!0});return(to(i.DEBUG_CLAUDE_AGENT_SDK)||this.options.stderr)&&c.stderr.on("data",l=>{let u=l.toString();Fs(u),this.options.stderr&&this.options.stderr(u)}),{stdin:c.stdin,stdout:c.stdout,get killed(){return c.killed},get exitCode(){return c.exitCode},kill:c.kill.bind(c),on:c.on.bind(c),once:c.once.bind(c),off:c.off.bind(c)}}initialize(){try{let{additionalDirectories:e=[],agent:r,betas:n,cwd:s,executable:i=this.getDefaultExecutable(),executableArgs:a=[],extraArgs:o={},pathToClaudeCodeExecutable:c,env:l={...process.env},thinkingConfig:u,maxTurns:p,maxBudgetUsd:d,taskBudget:m,model:f,fallbackModel:g,jsonSchema:v,permissionMode:h,allowDangerouslySkipPermissions:y,permissionPromptToolName:b,continueConversation:x,resume:w,settingSources:S,allowedTools:k=[],disallowedTools:E=[],tools:R,mcpServers:O,strictMcpConfig:C,canUseTool:U,includePartialMessages:q,plugins:Z,sandbox:se}=this.options,K=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u)switch(u.type){case"enabled":u.budgetTokens===void 0?K.push("--thinking","adaptive"):K.push("--max-thinking-tokens",u.budgetTokens.toString());break;case"disabled":K.push("--thinking","disabled");break;case"adaptive":K.push("--thinking","adaptive");break}if(this.options.effort&&K.push("--effort",this.options.effort),p&&K.push("--max-turns",p.toString()),d!==void 0&&K.push("--max-budget-usd",d.toString()),m&&K.push("--task-budget",m.total.toString()),f&&K.push("--model",f),r&&K.push("--agent",r),n&&n.length>0&&K.push("--betas",n.join(",")),v&&K.push("--json-schema",pi(v)),this.options.debugFile?K.push("--debug-file",this.options.debugFile):this.options.debug&&K.push("--debug"),to(l.DEBUG_CLAUDE_AGENT_SDK)&&K.push("--debug-to-stderr"),U){if(b)throw Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");K.push("--permission-prompt-tool","stdio")}else b&&K.push("--permission-prompt-tool",b);if(x&&K.push("--continue"),w&&K.push("--resume",w),this.options.proactive&&K.push("--proactive"),this.options.assistant&&K.push("--assistant"),this.options.channels&&this.options.channels.length>0&&K.push("--channels",...this.options.channels),k.length>0&&K.push("--allowedTools",k.join(",")),E.length>0&&K.push("--disallowedTools",E.join(",")),R!==void 0&&(Array.isArray(R)?R.length===0?K.push("--tools",""):K.push("--tools",R.join(",")):K.push("--tools","default")),O&&Object.keys(O).length>0&&K.push("--mcp-config",pi({mcpServers:O})),S!==void 0&&K.push(`--setting-sources=${S.join(",")}`),C&&K.push("--strict-mcp-config"),h&&K.push("--permission-mode",h),y&&K.push("--allow-dangerously-skip-permissions"),g){if(f&&g===f)throw Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");K.push("--fallback-model",g)}this.options.includeHookEvents&&K.push("--include-hook-events"),q&&K.push("--include-partial-messages");for(let T of e)K.push("--add-dir",T);if(Z&&Z.length>0)for(let T of Z)if(T.type==="local")K.push("--plugin-dir",T.path);else throw Error(`Unsupported plugin type: ${T.type}`);this.options.forkSession&&K.push("--fork-session"),this.options.resumeSessionAt&&K.push("--resume-session-at",this.options.resumeSessionAt),this.options.sessionId&&K.push("--session-id",this.options.sessionId),this.options.persistSession===!1&&K.push("--no-session-persistence");let yt={...o??{}};this.options.settings&&(yt.settings=this.options.settings);let Cr=_be(yt,se);for(let[T,I]of Object.entries(Cr))I===null?K.push(`--${T}`):K.push(`--${T}`,I);l.CLAUDE_CODE_ENTRYPOINT||(l.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete l.NODE_OPTIONS,to(l.DEBUG_CLAUDE_AGENT_SDK)?l.DEBUG="1":delete l.DEBUG;let Fe=Sbe(c),V=Fe?c:i,A=Fe?[...a,...K]:[...a,c,...K],B={command:V,args:A,cwd:s,env:l,signal:this.abortController.signal};this.options.spawnClaudeCodeProcess?(Fs(`Spawning Claude Code (custom): ${V} ${A.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(B)):(Fs(`Spawning Claude Code: ${V} ${A.join(" ")}`),this.process=this.spawnLocalProcess(B)),this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let z=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=z,this.abortHandler=z,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",T=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new Vi("Claude Code process aborted by user");else if(Gye(T)){let I=Fe?`Claude Code native binary not found at ${c}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${c}. Is options.pathToClaudeCodeExecutable set?`;this.exitError=ReferenceError(I),Fs(this.exitError.message)}else this.exitError=Error(`Failed to spawn Claude Code process: ${T.message}`),Fs(this.exitError.message)}),this.process.on("exit",(T,I)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new Vi("Claude Code process aborted by user");else{let H=this.getProcessExitError(T,I);H&&(this.exitError=H,Fs(H.message))}}),this.ready=!0}catch(e){throw this.ready=!1,e}}getProcessExitError(e,r){if(e!==0&&e!==null)return Error(`Claude Code process exited with code ${e}`);if(r)return Error(`Claude Code process terminated by signal ${r}`)}write(e){if(this.abortController.signal.aborted)throw new Vi("Operation aborted");if(!this.ready||!this.processStdin)throw Error("ProcessTransport is not ready for writing");if(this.processStdin.writableEnded){Fs("[ProcessTransport] Dropping write to ended stdin stream");return}if(this.process?.killed||this.process?.exitCode!==null)throw Error("Cannot write to terminated process");if(this.exitError)throw Error(`Cannot write to process that exited with error: ${this.exitError.message}`);Fs(`[ProcessTransport] Writing to stdin: ${e.substring(0,100)}`);try{this.processStdin.write(e)||Fs("[ProcessTransport] Write buffer full, data queued")}catch(r){throw this.ready=!1,Error(`Failed to write to process stdin: ${QE(r)}`)}}close(){this.processStdin&&(this.processStdin.end(),this.processStdin=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:r}of this.exitListeners)this.process?.off("exit",r);this.exitListeners=[];let e=this.process;e&&!e.killed&&e.exitCode===null?(setTimeout(r=>{r.killed||r.exitCode!==null||(r.kill("SIGTERM"),setTimeout(n=>{n.exitCode===null&&n.kill("SIGKILL")},5e3,r).unref())},wbe,e).unref(),e.once("exit",()=>{this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)})):this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0),this.ready=!1}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw Error("ProcessTransport output stream not available");let e=(0,g8.createInterface)({input:this.processStdout});try{for await(let r of e)if(r.trim()){let n;try{n=Y8(r)}catch{Fs(`Non-JSON stdout: ${r}`);continue}yield n}await this.waitForExit()}catch(r){throw r}finally{e.close()}}endInput(){this.processStdin&&this.processStdin.end()}getInputStream(){return this.processStdin}onExit(e){if(!this.process)return()=>{};let r=(n,s)=>{let i=this.getProcessExitError(n,s);e(i)};return this.process.on("exit",r),this.exitListeners.push({callback:e,handler:r}),()=>{this.process&&this.process.off("exit",r);let n=this.exitListeners.findIndex(s=>s.handler===r);n!==-1&&this.exitListeners.splice(n,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((e,r)=>{let n=(i,a)=>{if(this.abortController.signal.aborted){r(new Vi("Operation aborted"));return}let o=this.getProcessExitError(i,a);o?r(o):e()};this.process.once("exit",n);let s=i=>{this.process.off("exit",n),r(i)};this.process.once("error",s),this.process.once("exit",()=>{this.process.off("error",s)})})}};function Sbe(t){return![".js",".mjs",".tsx",".ts",".jsx"].some(e=>t.endsWith(e))}var Qv=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(e){this.returned=e}[Symbol.asyncIterator](){if(this.started)throw Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((e,r)=>{this.readResolve=e,this.readReject=r})}enqueue(e){if(this.readResolve){let r=this.readResolve;this.readResolve=void 0,this.readReject=void 0,r({done:!1,value:e})}else this.queue.push(e)}done(){if(this.isDone=!0,this.readResolve){let e=this.readResolve;this.readResolve=void 0,this.readReject=void 0,e({done:!0,value:void 0})}}error(e){if(this.hasError=e,this.readReject){let r=this.readReject;this.readResolve=void 0,this.readReject=void 0,r(e)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},nT=class{sendMcpMessage;isClosed=!1;constructor(e){this.sendMcpMessage=e}onclose;onerror;onmessage;async start(){}async send(e){if(this.isClosed)throw Error("Transport is closed");this.sendMcpMessage(e)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},sT=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;onElicitation;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new Qv;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;lastErrorResultText;setIsSingleUserTurn(e){this.isSingleUserTurn=e}hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0||this.onElicitation!==void 0}constructor(e,r,n,s,i,a=new Map,o,c,l){this.transport=e,this.isSingleUserTurn=r,this.canUseTool=n,this.hooks=s,this.abortController=i,this.jsonSchema=o,this.initConfig=c,this.onElicitation=l;for(let[u,p]of a)this.connectSdkMcpServer(u,p);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(e){this.inputStream.error(e)}async stopTask(e){await this.request({subtype:"stop_task",task_id:e})}close(){this.cleanup()}cleanup(e){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{for(let n of this.cancelControllers.values())n.abort();this.cancelControllers.clear(),this.transport.close();let r=Error("Query closed before response received");for(let{reject:n}of this.pendingControlResponses.values())n(r);this.pendingControlResponses.clear();for(let{reject:n}of this.pendingMcpResponses.values())n(r);this.pendingMcpResponses.clear(),this.hookCallbacks.clear();for(let n of this.sdkMcpTransports.values())try{n.close()}catch{}this.sdkMcpTransports.clear(),e?this.inputStream.error(e):this.inputStream.done()}catch{}}}next(...[e]){return this.sdkMessages.next(e)}return(e){return this.sdkMessages.return(e)}throw(e){return this.sdkMessages.throw(e)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let e of this.transport.readMessages()){if(e.type==="control_response"){let r=this.pendingControlResponses.get(e.response.request_id);r&&r.handler(e.response);continue}else if(e.type==="control_request"){this.handleControlRequest(e);continue}else if(e.type==="control_cancel_request"){this.handleControlCancelRequest(e);continue}else if(e.type==="keep_alive")continue;e.type==="system"&&e.subtype==="post_turn_summary"||(e.type==="result"?(this.lastErrorResultText=e.is_error?e.subtype==="success"?e.result:e.errors.join("; "):void 0,this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(Zi("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())):e.type==="system"&&e.subtype==="session_state_changed"||(this.lastErrorResultText=void 0),this.inputStream.enqueue(e))}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(e){if(this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.lastErrorResultText!==void 0&&!(e instanceof Vi)){let r=Error(`Claude Code returned an error result: ${this.lastErrorResultText}`);Zi(`[Query.readMessages] Replacing exit error with result text. Original: ${QE(e)}`),this.inputStream.error(r),this.cleanup(r);return}this.inputStream.error(e),this.cleanup(e)}}async handleControlRequest(e){let r=new AbortController;this.cancelControllers.set(e.request_id,r);try{let n=await this.processControlRequest(e,r.signal);if(this.cleanupPerformed)return;let s={type:"control_response",response:{subtype:"success",request_id:e.request_id,response:n}};await Promise.resolve(this.transport.write(pi(s)+` -`))}catch(n){if(this.cleanupPerformed)return;let s={type:"control_response",response:{subtype:"error",request_id:e.request_id,error:QE(n)}};await Promise.resolve(this.transport.write(pi(s)+` +`;if(B8()){nbe(r);return}pbe().write(r)}function Z8(){return W8()??process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??(0,yl.join)(x8(),"debug",`${Wye()}.txt`)}var G8=ea(async()=>{try{let t=Z8(),e=(0,yl.dirname)(t),r=(0,yl.join)(e,"latest");await(0,ta.unlink)(r).catch(()=>{}),await(0,ta.symlink)(t,r)}catch{}}),Q4e=(()=>{let t=process.env.CLAUDE_CODE_SLOW_OPERATION_THRESHOLD_MS;if(t!==void 0){let e=Number(t);if(!Number.isNaN(e)&&e>=0)return e}return 1/0})(),dbe={[Symbol.dispose](){}};function mbe(){return dbe}var Vt=mbe;function pi(t,e,r){let n=[];try{let a=Zt(n,Vt`JSON.stringify(${t})`,0);return JSON.stringify(t,e,r)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}}var V8=(t,e)=>{let r=[];try{let i=Zt(r,Vt`JSON.parse(${t})`,0);return typeof e>"u"?JSON.parse(t):JSON.parse(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}};function fbe(t){let e=t.trim();return e.startsWith("{")&&e.endsWith("}")}function hbe(t,e){let r={...t};if(e){let n=r.settings;if(n&&!fbe(n))throw Error("Cannot use both a settings file path and the sandbox option. Include the sandbox configuration in your settings file instead.");let s={sandbox:e};if(n)try{s={...V8(n),sandbox:e}}catch{}r.settings=pi(s)}return r}var gbe=2e3,Xk=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(e){this.options=e,this.abortController=e.abortController||u8(),this.initialize()}getDefaultExecutable(){return m8()?"bun":"node"}spawnLocalProcess(e){let{command:r,args:n,cwd:s,env:i,signal:a}=e,o=eo(i.DEBUG_CLAUDE_AGENT_SDK)||this.options.stderr?"pipe":"ignore",c=(0,p8.spawn)(r,n,{cwd:s,stdio:["pipe","pipe",o],signal:a,env:i,windowsHide:!0});return(eo(i.DEBUG_CLAUDE_AGENT_SDK)||this.options.stderr)&&c.stderr.on("data",l=>{let u=l.toString();Fs(u),this.options.stderr&&this.options.stderr(u)}),{stdin:c.stdin,stdout:c.stdout,get killed(){return c.killed},get exitCode(){return c.exitCode},kill:c.kill.bind(c),on:c.on.bind(c),once:c.once.bind(c),off:c.off.bind(c)}}initialize(){try{let{additionalDirectories:e=[],agent:r,betas:n,cwd:s,executable:i=this.getDefaultExecutable(),executableArgs:a=[],extraArgs:o={},pathToClaudeCodeExecutable:c,env:l={...process.env},thinkingConfig:u,maxTurns:p,maxBudgetUsd:d,taskBudget:m,model:f,fallbackModel:g,jsonSchema:v,permissionMode:h,allowDangerouslySkipPermissions:y,permissionPromptToolName:b,continueConversation:x,resume:w,settingSources:S,allowedTools:E=[],disallowedTools:k=[],tools:R,mcpServers:O,strictMcpConfig:C,canUseTool:U,includePartialMessages:q,plugins:Z,sandbox:se}=this.options,K=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u)switch(u.type){case"enabled":u.budgetTokens===void 0?K.push("--thinking","adaptive"):K.push("--max-thinking-tokens",u.budgetTokens.toString());break;case"disabled":K.push("--thinking","disabled");break;case"adaptive":K.push("--thinking","adaptive");break}if(this.options.effort&&K.push("--effort",this.options.effort),p&&K.push("--max-turns",p.toString()),d!==void 0&&K.push("--max-budget-usd",d.toString()),m&&K.push("--task-budget",m.total.toString()),f&&K.push("--model",f),r&&K.push("--agent",r),n&&n.length>0&&K.push("--betas",n.join(",")),v&&K.push("--json-schema",pi(v)),this.options.debugFile?K.push("--debug-file",this.options.debugFile):this.options.debug&&K.push("--debug"),eo(l.DEBUG_CLAUDE_AGENT_SDK)&&K.push("--debug-to-stderr"),U){if(b)throw Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");K.push("--permission-prompt-tool","stdio")}else b&&K.push("--permission-prompt-tool",b);if(x&&K.push("--continue"),w&&K.push("--resume",w),this.options.proactive&&K.push("--proactive"),this.options.assistant&&K.push("--assistant"),this.options.channels&&this.options.channels.length>0&&K.push("--channels",...this.options.channels),E.length>0&&K.push("--allowedTools",E.join(",")),k.length>0&&K.push("--disallowedTools",k.join(",")),R!==void 0&&(Array.isArray(R)?R.length===0?K.push("--tools",""):K.push("--tools",R.join(",")):K.push("--tools","default")),O&&Object.keys(O).length>0&&K.push("--mcp-config",pi({mcpServers:O})),S!==void 0&&K.push(`--setting-sources=${S.join(",")}`),C&&K.push("--strict-mcp-config"),h&&K.push("--permission-mode",h),y&&K.push("--allow-dangerously-skip-permissions"),g){if(f&&g===f)throw Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");K.push("--fallback-model",g)}this.options.includeHookEvents&&K.push("--include-hook-events"),q&&K.push("--include-partial-messages");for(let T of e)K.push("--add-dir",T);if(Z&&Z.length>0)for(let T of Z)if(T.type==="local")K.push("--plugin-dir",T.path);else throw Error(`Unsupported plugin type: ${T.type}`);this.options.forkSession&&K.push("--fork-session"),this.options.resumeSessionAt&&K.push("--resume-session-at",this.options.resumeSessionAt),this.options.sessionId&&K.push("--session-id",this.options.sessionId),this.options.persistSession===!1&&K.push("--no-session-persistence");let yt={...o??{}};this.options.settings&&(yt.settings=this.options.settings);let Cr=hbe(yt,se);for(let[T,I]of Object.entries(Cr))I===null?K.push(`--${T}`):K.push(`--${T}`,I);l.CLAUDE_CODE_ENTRYPOINT||(l.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete l.NODE_OPTIONS,eo(l.DEBUG_CLAUDE_AGENT_SDK)?l.DEBUG="1":delete l.DEBUG;let Fe=vbe(c),V=Fe?c:i,A=Fe?[...a,...K]:[...a,c,...K],B={command:V,args:A,cwd:s,env:l,signal:this.abortController.signal};this.options.spawnClaudeCodeProcess?(Fs(`Spawning Claude Code (custom): ${V} ${A.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(B)):(Fs(`Spawning Claude Code: ${V} ${A.join(" ")}`),this.process=this.spawnLocalProcess(B)),this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let z=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=z,this.abortHandler=z,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",T=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new Vi("Claude Code process aborted by user");else if(qye(T)){let I=Fe?`Claude Code native binary not found at ${c}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${c}. Is options.pathToClaudeCodeExecutable set?`;this.exitError=ReferenceError(I),Fs(this.exitError.message)}else this.exitError=Error(`Failed to spawn Claude Code process: ${T.message}`),Fs(this.exitError.message)}),this.process.on("exit",(T,I)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new Vi("Claude Code process aborted by user");else{let H=this.getProcessExitError(T,I);H&&(this.exitError=H,Fs(H.message))}}),this.ready=!0}catch(e){throw this.ready=!1,e}}getProcessExitError(e,r){if(e!==0&&e!==null)return Error(`Claude Code process exited with code ${e}`);if(r)return Error(`Claude Code process terminated by signal ${r}`)}write(e){if(this.abortController.signal.aborted)throw new Vi("Operation aborted");if(!this.ready||!this.processStdin)throw Error("ProcessTransport is not ready for writing");if(this.processStdin.writableEnded){Fs("[ProcessTransport] Dropping write to ended stdin stream");return}if(this.process?.killed||this.process?.exitCode!==null)throw Error("Cannot write to terminated process");if(this.exitError)throw Error(`Cannot write to process that exited with error: ${this.exitError.message}`);Fs(`[ProcessTransport] Writing to stdin: ${e.substring(0,100)}`);try{this.processStdin.write(e)||Fs("[ProcessTransport] Write buffer full, data queued")}catch(r){throw this.ready=!1,Error(`Failed to write to process stdin: ${Vk(r)}`)}}close(){this.processStdin&&(this.processStdin.end(),this.processStdin=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:r}of this.exitListeners)this.process?.off("exit",r);this.exitListeners=[];let e=this.process;e&&!e.killed&&e.exitCode===null?(setTimeout(r=>{r.killed||r.exitCode!==null||(r.kill("SIGTERM"),setTimeout(n=>{n.exitCode===null&&n.kill("SIGKILL")},5e3,r).unref())},gbe,e).unref(),e.once("exit",()=>{this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)})):this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0),this.ready=!1}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw Error("ProcessTransport output stream not available");let e=(0,d8.createInterface)({input:this.processStdout});try{for await(let r of e)if(r.trim()){let n;try{n=V8(r)}catch{Fs(`Non-JSON stdout: ${r}`);continue}yield n}await this.waitForExit()}catch(r){throw r}finally{e.close()}}endInput(){this.processStdin&&this.processStdin.end()}getInputStream(){return this.processStdin}onExit(e){if(!this.process)return()=>{};let r=(n,s)=>{let i=this.getProcessExitError(n,s);e(i)};return this.process.on("exit",r),this.exitListeners.push({callback:e,handler:r}),()=>{this.process&&this.process.off("exit",r);let n=this.exitListeners.findIndex(s=>s.handler===r);n!==-1&&this.exitListeners.splice(n,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((e,r)=>{let n=(i,a)=>{if(this.abortController.signal.aborted){r(new Vi("Operation aborted"));return}let o=this.getProcessExitError(i,a);o?r(o):e()};this.process.once("exit",n);let s=i=>{this.process.off("exit",n),r(i)};this.process.once("error",s),this.process.once("exit",()=>{this.process.off("error",s)})})}};function vbe(t){return![".js",".mjs",".tsx",".ts",".jsx"].some(e=>t.endsWith(e))}var Kv=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(e){this.returned=e}[Symbol.asyncIterator](){if(this.started)throw Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((e,r)=>{this.readResolve=e,this.readReject=r})}enqueue(e){if(this.readResolve){let r=this.readResolve;this.readResolve=void 0,this.readReject=void 0,r({done:!1,value:e})}else this.queue.push(e)}done(){if(this.isDone=!0,this.readResolve){let e=this.readResolve;this.readResolve=void 0,this.readReject=void 0,e({done:!0,value:void 0})}}error(e){if(this.hasError=e,this.readReject){let r=this.readReject;this.readResolve=void 0,this.readReject=void 0,r(e)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},eT=class{sendMcpMessage;isClosed=!1;constructor(e){this.sendMcpMessage=e}onclose;onerror;onmessage;async start(){}async send(e){if(this.isClosed)throw Error("Transport is closed");this.sendMcpMessage(e)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},tT=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;onElicitation;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new Kv;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;lastErrorResultText;setIsSingleUserTurn(e){this.isSingleUserTurn=e}hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0||this.onElicitation!==void 0}constructor(e,r,n,s,i,a=new Map,o,c,l){this.transport=e,this.isSingleUserTurn=r,this.canUseTool=n,this.hooks=s,this.abortController=i,this.jsonSchema=o,this.initConfig=c,this.onElicitation=l;for(let[u,p]of a)this.connectSdkMcpServer(u,p);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(e){this.inputStream.error(e)}async stopTask(e){await this.request({subtype:"stop_task",task_id:e})}close(){this.cleanup()}cleanup(e){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{for(let n of this.cancelControllers.values())n.abort();this.cancelControllers.clear(),this.transport.close();let r=Error("Query closed before response received");for(let{reject:n}of this.pendingControlResponses.values())n(r);this.pendingControlResponses.clear();for(let{reject:n}of this.pendingMcpResponses.values())n(r);this.pendingMcpResponses.clear(),this.hookCallbacks.clear();for(let n of this.sdkMcpTransports.values())try{n.close()}catch{}this.sdkMcpTransports.clear(),e?this.inputStream.error(e):this.inputStream.done()}catch{}}}next(...[e]){return this.sdkMessages.next(e)}return(e){return this.sdkMessages.return(e)}throw(e){return this.sdkMessages.throw(e)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let e of this.transport.readMessages()){if(e.type==="control_response"){let r=this.pendingControlResponses.get(e.response.request_id);r&&r.handler(e.response);continue}else if(e.type==="control_request"){this.handleControlRequest(e);continue}else if(e.type==="control_cancel_request"){this.handleControlCancelRequest(e);continue}else if(e.type==="keep_alive")continue;e.type==="system"&&e.subtype==="post_turn_summary"||(e.type==="result"?(this.lastErrorResultText=e.is_error?e.subtype==="success"?e.result:e.errors.join("; "):void 0,this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(Zi("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())):e.type==="system"&&e.subtype==="session_state_changed"||(this.lastErrorResultText=void 0),this.inputStream.enqueue(e))}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(e){if(this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.lastErrorResultText!==void 0&&!(e instanceof Vi)){let r=Error(`Claude Code returned an error result: ${this.lastErrorResultText}`);Zi(`[Query.readMessages] Replacing exit error with result text. Original: ${Vk(e)}`),this.inputStream.error(r),this.cleanup(r);return}this.inputStream.error(e),this.cleanup(e)}}async handleControlRequest(e){let r=new AbortController;this.cancelControllers.set(e.request_id,r);try{let n=await this.processControlRequest(e,r.signal);if(this.cleanupPerformed)return;let s={type:"control_response",response:{subtype:"success",request_id:e.request_id,response:n}};await Promise.resolve(this.transport.write(pi(s)+` +`))}catch(n){if(this.cleanupPerformed)return;let s={type:"control_response",response:{subtype:"error",request_id:e.request_id,error:Vk(n)}};await Promise.resolve(this.transport.write(pi(s)+` `))}finally{this.cancelControllers.delete(e.request_id)}}handleControlCancelRequest(e){let r=this.cancelControllers.get(e.request_id);r&&(r.abort(),this.cancelControllers.delete(e.request_id))}async processControlRequest(e,r){if(e.request.subtype==="can_use_tool"){if(!this.canUseTool)throw Error("canUseTool callback is not provided.");return{...await this.canUseTool(e.request.tool_name,e.request.input,{signal:r,suggestions:e.request.permission_suggestions,blockedPath:e.request.blocked_path,decisionReason:e.request.decision_reason,title:e.request.title,displayName:e.request.display_name,description:e.request.description,toolUseID:e.request.tool_use_id,agentID:e.request.agent_id}),toolUseID:e.request.tool_use_id}}else{if(e.request.subtype==="hook_callback")return await this.handleHookCallbacks(e.request.callback_id,e.request.input,e.request.tool_use_id,r);if(e.request.subtype==="mcp_message"){let n=e.request,s=this.sdkMcpTransports.get(n.server_name);if(!s)throw Error(`SDK MCP server not found: ${n.server_name}`);return"method"in n.message&&"id"in n.message&&n.message.id!==null?{mcp_response:await this.handleMcpControlRequest(n.server_name,n,s)}:(s.onmessage&&s.onmessage(n.message),{mcp_response:{jsonrpc:"2.0",result:{},id:0}})}else if(e.request.subtype==="elicitation"){let n=e.request;return this.onElicitation?await this.onElicitation({serverName:n.mcp_server_name,message:n.message,mode:n.mode,url:n.url,elicitationId:n.elicitation_id,requestedSchema:n.requested_schema},{signal:r}):{action:"decline"}}}throw Error("Unsupported control request subtype: "+e.request.subtype)}async*readSdkMessages(){for await(let e of this.inputStream)yield e}async initialize(){let e;if(this.hooks){e={};for(let[s,i]of Object.entries(this.hooks))i.length>0&&(e[s]=i.map(a=>{let o=[];for(let c of a.hooks){let l=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(l,c),o.push(l)}return{matcher:a.matcher,hookCallbackIds:o,timeout:a.timeout}}))}let r=this.sdkMcpTransports.size>0?Array.from(this.sdkMcpTransports.keys()):void 0,n={subtype:"initialize",hooks:e,sdkMcpServers:r,jsonSchema:this.jsonSchema,systemPrompt:this.initConfig?.systemPrompt,appendSystemPrompt:this.initConfig?.appendSystemPrompt,agents:this.initConfig?.agents,promptSuggestions:this.initConfig?.promptSuggestions,agentProgressSummaries:this.initConfig?.agentProgressSummaries};return(await this.request(n)).response}async interrupt(){await this.request({subtype:"interrupt"})}async setPermissionMode(e){await this.request({subtype:"set_permission_mode",mode:e})}async setModel(e){await this.request({subtype:"set_model",model:e})}async setMaxThinkingTokens(e){await this.request({subtype:"set_max_thinking_tokens",max_thinking_tokens:e})}async applyFlagSettings(e){await this.request({subtype:"apply_flag_settings",settings:e})}async getSettings(){return(await this.request({subtype:"get_settings"})).response}async rewindFiles(e,r){return(await this.request({subtype:"rewind_files",user_message_id:e,dry_run:r?.dryRun})).response}async cancelAsyncMessage(e){return(await this.request({subtype:"cancel_async_message",message_uuid:e})).response.cancelled}async seedReadState(e,r){await this.request({subtype:"seed_read_state",path:e,mtime:r})}async enableRemoteControl(e){return(await this.request({subtype:"remote_control",enabled:e})).response}async setProactive(e){await this.request({subtype:"set_proactive",enabled:e})}async generateSessionTitle(e,r){return(await this.request({subtype:"generate_session_title",description:e,persist:r?.persist})).response.title}async askSideQuestion(e){return(await this.request({subtype:"side_question",question:e})).response.response}async processPendingPermissionRequests(e){for(let r of e)r.request.subtype==="can_use_tool"&&this.handleControlRequest(r).catch(()=>{})}request(e){let r=Math.random().toString(36).substring(2,15),n={request_id:r,type:"control_request",request:e};return new Promise((s,i)=>{this.pendingControlResponses.set(r,{handler:a=>{this.pendingControlResponses.delete(r),a.subtype==="success"?s(a):(i(Error(a.error)),a.pending_permission_requests&&this.processPendingPermissionRequests(a.pending_permission_requests))},reject:i}),Promise.resolve(this.transport.write(pi(n)+` `))})}async initializationResult(){return this.initialization}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async supportedAgents(){return(await this.initialization).agents}async reconnectMcpServer(e){await this.request({subtype:"mcp_reconnect",serverName:e})}async toggleMcpServer(e,r){await this.request({subtype:"mcp_toggle",serverName:e,enabled:r})}async enableChannel(e){await this.request({subtype:"channel_enable",serverName:e})}async mcpAuthenticate(e){return(await this.request({subtype:"mcp_authenticate",serverName:e})).response}async mcpClearAuth(e){return(await this.request({subtype:"mcp_clear_auth",serverName:e})).response}async mcpSubmitOAuthCallbackUrl(e,r){return(await this.request({subtype:"mcp_oauth_callback_url",serverName:e,callbackUrl:r})).response}async claudeAuthenticate(e){return(await this.request({subtype:"claude_authenticate",loginWithClaudeAi:e})).response}async claudeOAuthCallback(e,r){return(await this.request({subtype:"claude_oauth_callback",authorizationCode:e,state:r})).response}async claudeOAuthWaitForCompletion(){return(await this.request({subtype:"claude_oauth_wait_for_completion"})).response}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async getContextUsage(){return(await this.request({subtype:"get_context_usage"})).response}async reloadPlugins(){return(await this.request({subtype:"reload_plugins"})).response}async setMcpServers(e){let r={},n={};for(let[o,c]of Object.entries(e))c.type==="sdk"&&"instance"in c?r[o]=c.instance:n[o]=c;let s=new Set(this.sdkMcpServerInstances.keys()),i=new Set(Object.keys(r));for(let o of s)i.has(o)||await this.disconnectSdkMcpServer(o);for(let[o,c]of Object.entries(r))s.has(o)||this.connectSdkMcpServer(o,c);let a={};for(let o of Object.keys(r))a[o]={type:"sdk",name:o};return(await this.request({subtype:"mcp_set_servers",servers:{...n,...a}})).response}async accountInfo(){return(await this.initialization).account}async streamInput(e){Zi("[Query.streamInput] Starting to process input stream");try{let r=0;for await(let n of e){if(r++,Zi(`[Query.streamInput] Processing message ${r}: ${n.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(pi(n)+` -`))}Zi(`[Query.streamInput] Finished processing ${r} messages from input stream`),r>0&&this.hasBidirectionalNeeds()&&(Zi("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),Zi("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(r){if(!(r instanceof Vi))throw r}}waitForFirstResult(){return this.firstResultReceived?(Zi("[Query.waitForFirstResult] Result already received, returning immediately"),Promise.resolve()):new Promise(e=>{if(this.abortController?.signal.aborted){e();return}this.abortController?.signal.addEventListener("abort",()=>e(),{once:!0}),this.firstResultReceivedResolve=e})}handleHookCallbacks(e,r,n,s){let i=this.hookCallbacks.get(e);if(!i)throw Error(`No hook callback found for ID: ${e}`);return i(r,n,{signal:s})}connectSdkMcpServer(e,r){let n=new nT(s=>this.sendMcpServerMessageToCli(e,s));this.sdkMcpTransports.set(e,n),this.sdkMcpServerInstances.set(e,r),r.connect(n)}async disconnectSdkMcpServer(e){let r=this.sdkMcpTransports.get(e);r&&(await r.close(),this.sdkMcpTransports.delete(e)),this.sdkMcpServerInstances.delete(e)}sendMcpServerMessageToCli(e,r){if("id"in r&&r.id!==null&&r.id!==void 0){let s=`${e}:${r.id}`,i=this.pendingMcpResponses.get(s);if(i){i.resolve(r),this.pendingMcpResponses.delete(s);return}}let n={type:"control_request",request_id:(0,ET.randomUUID)(),request:{subtype:"mcp_message",server_name:e,message:r}};this.transport.write(pi(n)+` -`)}handleMcpControlRequest(e,r,n){let s="id"in r.message?r.message.id:null,i=`${e}:${s}`;return new Promise((a,o)=>{let c=()=>{this.pendingMcpResponses.delete(i)},l=p=>{c(),a(p)},u=p=>{c(),o(p)};if(this.pendingMcpResponses.set(i,{resolve:l,reject:u}),n.onmessage)n.onmessage(r.message);else{c(),o(Error("No message handler registered"));return}})}},kbe=5e3,aT=class{closed=!1;inputStream;query;queryIterator=null;abortController;_sessionId=null;get sessionId(){if(this._sessionId===null)throw Error("Session ID not available until after receiving messages");return this._sessionId}constructor(e){e.resume&&(this._sessionId=e.resume),this.inputStream=new Qv;let r=e.pathToClaudeCodeExecutable;if(!r){let i=(0,X8.fileURLToPath)(vke.url),a=(0,iT.join)(i,"..");r=(0,iT.join)(a,"cli.js")}let n={...e.env??process.env};n.CLAUDE_CODE_ENTRYPOINT||(n.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=f8();let s=new rT({abortController:this.abortController,pathToClaudeCodeExecutable:r,env:n,executable:e.executable??(v8()?"bun":"node"),executableArgs:e.executableArgs??[],extraArgs:{},thinkingConfig:void 0,maxTurns:void 0,maxBudgetUsd:void 0,model:e.model,fallbackModel:void 0,permissionMode:e.permissionMode??"default",allowDangerouslySkipPermissions:!1,continueConversation:!1,resume:e.resume,settingSources:[],allowedTools:e.allowedTools??[],disallowedTools:e.disallowedTools??[],mcpServers:{},strictMcpConfig:!1,canUseTool:!!e.canUseTool,hooks:!!e.hooks,includePartialMessages:!1,forkSession:!1,resumeSessionAt:void 0});this.query=new sT(s,!1,e.canUseTool,e.hooks,this.abortController,new Map),this.query.streamInput(this.inputStream).catch(i=>this.abortController.abort(i))}async send(e){if(this.closed)throw Error("Cannot send to closed session");let r=typeof e=="string"?{type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null}:e;this.inputStream.enqueue(r)}async*stream(){for(this.queryIterator||(this.queryIterator=this.query[Symbol.asyncIterator]());;){let{value:e,done:r}=await this.queryIterator.next();if(r||(e.type==="system"&&e.subtype==="init"&&(this._sessionId=e.session_id),yield e,e.type==="result"))return}}close(){this.closed||(this.closed=!0,this.inputStream.done(),setTimeout(()=>{this.abortController.signal.aborted||this.abortController.abort()},kbe).unref())}async[Symbol.asyncDispose](){this.close()}};function Ebe(t){return new aT(t)}var i$e=(0,t9.promisify)(e9.execFile);var a$e=Buffer.from('{"type":"attribution-snapshot"'),o$e=Buffer.from('{"type":"system"'),Tbe=10,c$e=Buffer.from([Tbe]);var tt;(function(t){t.assertEqual=s=>{};function e(s){}t.assertIs=e;function r(s){throw Error()}t.assertNever=r,t.arrayToEnum=s=>{let i={};for(let a of s)i[a]=a;return i},t.getValidEnumValues=s=>{let i=t.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),a={};for(let o of i)a[o]=s[o];return t.objectValues(a)},t.objectValues=s=>t.objectKeys(s).map(function(i){return s[i]}),t.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let a in s)Object.prototype.hasOwnProperty.call(s,a)&&i.push(a);return i},t.find=(s,i)=>{for(let a of s)if(i(a))return a},t.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function n(s,i=" | "){return s.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}t.joinValues=n,t.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(tt||(tt={}));var LF;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(LF||(LF={}));var ce=tt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Gi=t=>{switch(typeof t){case"undefined":return ce.undefined;case"string":return ce.string;case"number":return Number.isNaN(t)?ce.nan:ce.number;case"boolean":return ce.boolean;case"function":return ce.function;case"bigint":return ce.bigint;case"symbol":return ce.symbol;case"object":return Array.isArray(t)?ce.array:t===null?ce.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ce.promise:typeof Map<"u"&&t instanceof Map?ce.map:typeof Set<"u"&&t instanceof Set?ce.set:typeof Date<"u"&&t instanceof Date?ce.date:ce.object;default:return ce.unknown}},G=tt.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Kn=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(s);else if(a.code==="invalid_return_type")s(a.returnTypeError);else if(a.code==="invalid_arguments")s(a.argumentsError);else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;cr.message){let r={},n=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];r[i]=r[i]||[],r[i].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Kn.create=t=>new Kn(t);var Rbe=(t,e)=>{let r;switch(t.code){case G.invalid_type:t.received===ce.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case G.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,tt.jsonStringifyReplacer)}`;break;case G.unrecognized_keys:r=`Unrecognized key(s) in object: ${tt.joinValues(t.keys,", ")}`;break;case G.invalid_union:r="Invalid input";break;case G.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${tt.joinValues(t.options)}`;break;case G.invalid_enum_value:r=`Invalid enum value. Expected ${tt.joinValues(t.options)}, received '${t.received}'`;break;case G.invalid_arguments:r="Invalid function arguments";break;case G.invalid_return_type:r="Invalid function return type";break;case G.invalid_date:r="Invalid date";break;case G.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:tt.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case G.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case G.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case G.custom:r="Invalid input";break;case G.invalid_intersection_types:r="Intersection results could not be merged";break;case G.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case G.not_finite:r="Number must be finite";break;default:r=e.defaultError,tt.assertNever(t)}return{message:r}},Ld=Rbe,Pbe=Ld;function oT(){return Pbe}var cT=t=>{let{data:e,path:r,errorMaps:n,issueData:s}=t,i=[...r,...s.path||[]],a={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let o="",c=n.filter(l=>!!l).slice().reverse();for(let l of c)o=l(a,{data:e,defaultError:o}).message;return{...s,path:i,message:o}};function te(t,e){let r=oT(),n=cT({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ld?void 0:Ld].filter(s=>!!s)});t.common.issues.push(n)}var Qr=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let s of r){if(s.status==="aborted")return _e;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let s of r){let i=await s.key,a=await s.value;n.push({key:i,value:a})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let s of r){let{key:i,value:a}=s;if(i.status==="aborted"||a.status==="aborted")return _e;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||s.alwaysSet)&&(n[i.value]=a.value)}return{status:e.value,value:n}}},_e=Object.freeze({status:"aborted"}),Ad=t=>({status:"dirty",value:t}),gn=t=>({status:"valid",value:t}),UF=t=>t.status==="aborted",qF=t=>t.status==="dirty",el=t=>t.status==="valid",Yv=t=>typeof Promise<"u"&&t instanceof Promise,ue;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(ue||(ue={}));var Jn=class{constructor(e,r,n,s){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},FF=(t,e)=>{if(el(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Kn(t.common.issues);return this._error=r,this._error}}};function Ie(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:s}=t;if(e&&(r||n))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(i,a)=>{let{message:o}=t;return i.code==="invalid_enum_value"?{message:o??a.defaultError}:typeof a.data>"u"?{message:o??n??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:o??r??a.defaultError}},description:s}}var Me=class{get description(){return this._def.description}_getType(e){return Gi(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Gi(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Qr,ctx:{common:e.parent.common,data:e.data,parsedType:Gi(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Yv(r))throw Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)},s=this._parseSync({data:e,path:n.path,parent:n});return FF(n,s)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return el(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>el(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)},s=this._parse({data:e,path:n.path,parent:n}),i=await(Yv(s)?s:Promise.resolve(s));return FF(n,i)}refine(e,r){let n=s=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(s):r;return this._refinement((s,i)=>{let a=e(s),o=()=>i.addIssue({code:G.custom,...n(s)});return typeof Promise<"u"&&a instanceof Promise?a.then(c=>c?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(e,r){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof r=="function"?r(n,s):r),!1))}_refinement(e){return new bs({schema:this,typeName:we.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return vs.create(this,this._def)}nullable(){return fi.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Qi.create(this)}promise(){return oo.create(this,this._def)}or(e){return sl.create([this,e],this._def)}and(e){return il.create(this,e,this._def)}transform(e){return new bs({...Ie(this._def),schema:this,typeName:we.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new ul({...Ie(this._def),innerType:this,defaultValue:r,typeName:we.ZodDefault})}brand(){return new Xv({typeName:we.ZodBranded,type:this,...Ie(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new pl({...Ie(this._def),innerType:this,catchValue:r,typeName:we.ZodCatch})}describe(e){return new this.constructor({...this._def,description:e})}pipe(e){return ey.create(this,e)}readonly(){return dl.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Ibe=/^c[^\s-]{8,}$/i,Cbe=/^[0-9a-z]+$/,Obe=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Abe=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,jbe=/^[a-z0-9_-]{21}$/i,Nbe=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Dbe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Mbe=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,zbe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",$E,$be=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Lbe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Ube=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,qbe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Fbe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Hbe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,r9="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Bbe=new RegExp(`^${r9}$`);function n9(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function Wbe(t){return new RegExp(`^${n9(t)}$`)}function Zbe(t){let e=`${r9}T${n9(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function Gbe(t,e){return!!((e==="v4"||!e)&&$be.test(t)||(e==="v6"||!e)&&Ube.test(t))}function Vbe(t,e){if(!Nbe.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function Kbe(t,e){return!!((e==="v4"||!e)&&Lbe.test(t)||(e==="v6"||!e)&&qbe.test(t))}var tl=class t extends Me{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ce.string){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_type,expected:ce.string,received:s.parsedType}),_e}let r=new Qr,n;for(let s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(n=this._getOrReturnCtx(e,n),te(n,{code:G.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let i=e.data.length>s.value,a=e.data.lengthe.test(s),{validation:r,code:G.invalid_string,...ue.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...ue.errToObj(e)})}url(e){return this._addCheck({kind:"url",...ue.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...ue.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...ue.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...ue.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...ue.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...ue.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...ue.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...ue.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...ue.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...ue.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...ue.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...ue.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...ue.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...ue.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...ue.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...ue.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...ue.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...ue.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...ue.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...ue.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...ue.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...ue.errToObj(r)})}nonempty(e){return this.min(1,ue.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew tl({checks:[],typeName:we.ZodString,coerce:t?.coerce??!1,...Ie(t)});function Jbe(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}var Ud=class t extends Me{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==ce.number){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_type,expected:ce.number,received:s.parsedType}),_e}let r,n=new Qr;for(let s of this._def.checks)s.kind==="int"?tt.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),te(r,{code:G.invalid_type,expected:"integer",received:"float",message:s.message}),n.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:G.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),n.dirty()):s.kind==="multipleOf"?Jbe(e.data,s.value)!==0&&(r=this._getOrReturnCtx(e,r),te(r,{code:G.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),te(r,{code:G.not_finite,message:s.message}),n.dirty()):tt.assertNever(s);return{status:n.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,ue.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ue.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ue.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ue.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ue.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:ue.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ue.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ue.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:ue.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ue.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ue.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&tt.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.valuenew Ud({checks:[],typeName:we.ZodNumber,coerce:t?.coerce||!1,...Ie(t)});var qd=class t extends Me{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==ce.bigint)return this._getInvalidInput(e);let r,n=new Qr;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:G.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),n.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),te(r,{code:G.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):tt.assertNever(s);return{status:n.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.bigint,received:r.parsedType}),_e}gte(e,r){return this.setLimit("min",e,!0,ue.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ue.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ue.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ue.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ue.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ue.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ue.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew qd({checks:[],typeName:we.ZodBigInt,coerce:t?.coerce??!1,...Ie(t)});var Fd=class extends Me{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ce.boolean){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.boolean,received:r.parsedType}),_e}return gn(e.data)}};Fd.create=t=>new Fd({typeName:we.ZodBoolean,coerce:t?.coerce||!1,...Ie(t)});var Hd=class t extends Me{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ce.date){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_type,expected:ce.date,received:s.parsedType}),_e}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_date}),_e}let r=new Qr,n;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(n=this._getOrReturnCtx(e,n),te(n,{code:G.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):tt.assertNever(s);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:ue.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:ue.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Hd({checks:[],coerce:t?.coerce||!1,typeName:we.ZodDate,...Ie(t)});var Bd=class extends Me{_parse(e){if(this._getType(e)!==ce.symbol){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.symbol,received:r.parsedType}),_e}return gn(e.data)}};Bd.create=t=>new Bd({typeName:we.ZodSymbol,...Ie(t)});var rl=class extends Me{_parse(e){if(this._getType(e)!==ce.undefined){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.undefined,received:r.parsedType}),_e}return gn(e.data)}};rl.create=t=>new rl({typeName:we.ZodUndefined,...Ie(t)});var nl=class extends Me{_parse(e){if(this._getType(e)!==ce.null){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.null,received:r.parsedType}),_e}return gn(e.data)}};nl.create=t=>new nl({typeName:we.ZodNull,...Ie(t)});var Wd=class extends Me{constructor(){super(...arguments),this._any=!0}_parse(e){return gn(e.data)}};Wd.create=t=>new Wd({typeName:we.ZodAny,...Ie(t)});var Ki=class extends Me{constructor(){super(...arguments),this._unknown=!0}_parse(e){return gn(e.data)}};Ki.create=t=>new Ki({typeName:we.ZodUnknown,...Ie(t)});var Hs=class extends Me{_parse(e){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.never,received:r.parsedType}),_e}};Hs.create=t=>new Hs({typeName:we.ZodNever,...Ie(t)});var Zd=class extends Me{_parse(e){if(this._getType(e)!==ce.undefined){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.void,received:r.parsedType}),_e}return gn(e.data)}};Zd.create=t=>new Zd({typeName:we.ZodVoid,...Ie(t)});var Qi=class t extends Me{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),s=this._def;if(r.parsedType!==ce.array)return te(r,{code:G.invalid_type,expected:ce.array,received:r.parsedType}),_e;if(s.exactLength!==null){let a=r.data.length>s.exactLength.value,o=r.data.lengths.maxLength.value&&(te(r,{code:G.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((a,o)=>s.type._parseAsync(new Jn(r,a,r.path,o)))).then(a=>Qr.mergeArray(n,a));let i=[...r.data].map((a,o)=>s.type._parseSync(new Jn(r,a,r.path,o)));return Qr.mergeArray(n,i)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:ue.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:ue.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:ue.toString(r)}})}nonempty(e){return this.min(1,e)}};Qi.create=(t,e)=>new Qi({type:t,minLength:null,maxLength:null,exactLength:null,typeName:we.ZodArray,...Ie(e)});function Zc(t){if(t instanceof Pn){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=vs.create(Zc(n))}return new Pn({...t._def,shape:()=>e})}else return t instanceof Qi?new Qi({...t._def,type:Zc(t.element)}):t instanceof vs?vs.create(Zc(t.unwrap())):t instanceof fi?fi.create(Zc(t.unwrap())):t instanceof mi?mi.create(t.items.map(e=>Zc(e))):t}var Pn=class t extends Me{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=tt.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==ce.object){let c=this._getOrReturnCtx(e);return te(c,{code:G.invalid_type,expected:ce.object,received:c.parsedType}),_e}let{status:r,ctx:n}=this._processInputParams(e),{shape:s,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Hs&&this._def.unknownKeys==="strip"))for(let c in n.data)i.includes(c)||a.push(c);let o=[];for(let c of i){let l=s[c],u=n.data[c];o.push({key:{status:"valid",value:c},value:l._parse(new Jn(n,u,n.path,c)),alwaysSet:c in n.data})}if(this._def.catchall instanceof Hs){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)o.push({key:{status:"valid",value:l},value:{status:"valid",value:n.data[l]}});else if(c==="strict")a.length>0&&(te(n,{code:G.unrecognized_keys,keys:a}),r.dirty());else if(c!=="strip")throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let u=n.data[l];o.push({key:{status:"valid",value:l},value:c._parse(new Jn(n,u,n.path,l)),alwaysSet:l in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of o){let u=await l.key,p=await l.value;c.push({key:u,value:p,alwaysSet:l.alwaysSet})}return c}).then(c=>Qr.mergeObjectSync(r,c)):Qr.mergeObjectSync(r,o)}get shape(){return this._def.shape()}strict(e){return ue.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let s=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:ue.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:we.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of tt.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of tt.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Zc(this)}partial(e){let r={};for(let n of tt.objectKeys(this.shape)){let s=this.shape[n];e&&!e[n]?r[n]=s:r[n]=s.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of tt.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof vs;)s=s._def.innerType;r[n]=s}return new t({...this._def,shape:()=>r})}keyof(){return s9(tt.objectKeys(this.shape))}};Pn.create=(t,e)=>new Pn({shape:()=>t,unknownKeys:"strip",catchall:Hs.create(),typeName:we.ZodObject,...Ie(e)});Pn.strictCreate=(t,e)=>new Pn({shape:()=>t,unknownKeys:"strict",catchall:Hs.create(),typeName:we.ZodObject,...Ie(e)});Pn.lazycreate=(t,e)=>new Pn({shape:t,unknownKeys:"strip",catchall:Hs.create(),typeName:we.ZodObject,...Ie(e)});var sl=class extends Me{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function s(i){for(let o of i)if(o.result.status==="valid")return o.result;for(let o of i)if(o.result.status==="dirty")return r.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(o=>new Kn(o.ctx.common.issues));return te(r,{code:G.invalid_union,unionErrors:a}),_e}if(r.common.async)return Promise.all(n.map(async i=>{let a={...r,common:{...r.common,issues:[]},parent:null};return{result:await i._parseAsync({data:r.data,path:r.path,parent:a}),ctx:a}})).then(s);{let i,a=[];for(let c of n){let l={...r,common:{...r.common,issues:[]},parent:null},u=c._parseSync({data:r.data,path:r.path,parent:l});if(u.status==="valid")return u;u.status==="dirty"&&!i&&(i={result:u,ctx:l}),l.common.issues.length&&a.push(l.common.issues)}if(i)return r.common.issues.push(...i.ctx.common.issues),i.result;let o=a.map(c=>new Kn(c));return te(r,{code:G.invalid_union,unionErrors:o}),_e}}get options(){return this._def.options}};sl.create=(t,e)=>new sl({options:t,typeName:we.ZodUnion,...Ie(e)});var li=t=>t instanceof al?li(t.schema):t instanceof bs?li(t.innerType()):t instanceof ol?[t.value]:t instanceof cl?t.options:t instanceof ll?tt.objectValues(t.enum):t instanceof ul?li(t._def.innerType):t instanceof rl?[void 0]:t instanceof nl?[null]:t instanceof vs?[void 0,...li(t.unwrap())]:t instanceof fi?[null,...li(t.unwrap())]:t instanceof Xv||t instanceof dl?li(t.unwrap()):t instanceof pl?li(t._def.innerType):[],lT=class t extends Me{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.object)return te(r,{code:G.invalid_type,expected:ce.object,received:r.parsedType}),_e;let n=this.discriminator,s=r.data[n],i=this.optionsMap.get(s);return i?r.common.async?i._parseAsync({data:r.data,path:r.path,parent:r}):i._parseSync({data:r.data,path:r.path,parent:r}):(te(r,{code:G.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),_e)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let s=new Map;for(let i of r){let a=li(i.shape[e]);if(!a.length)throw Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of a){if(s.has(o))throw Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);s.set(o,i)}}return new t({typeName:we.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:s,...Ie(n)})}};function uT(t,e){let r=Gi(t),n=Gi(e);if(t===e)return{valid:!0,data:t};if(r===ce.object&&n===ce.object){let s=tt.objectKeys(e),i=tt.objectKeys(t).filter(o=>s.indexOf(o)!==-1),a={...t,...e};for(let o of i){let c=uT(t[o],e[o]);if(!c.valid)return{valid:!1};a[o]=c.data}return{valid:!0,data:a}}else if(r===ce.array&&n===ce.array){if(t.length!==e.length)return{valid:!1};let s=[];for(let i=0;i{if(UF(i)||UF(a))return _e;let o=uT(i.value,a.value);return o.valid?((qF(i)||qF(a))&&r.dirty(),{status:r.value,value:o.data}):(te(n,{code:G.invalid_intersection_types}),_e)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,a])=>s(i,a)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};il.create=(t,e,r)=>new il({left:t,right:e,typeName:we.ZodIntersection,...Ie(r)});var mi=class t extends Me{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.array)return te(n,{code:G.invalid_type,expected:ce.array,received:n.parsedType}),_e;if(n.data.lengththis._def.items.length&&(te(n,{code:G.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((i,a)=>{let o=this._def.items[a]||this._def.rest;return o?o._parse(new Jn(n,i,n.path,a)):null}).filter(i=>!!i);return n.common.async?Promise.all(s).then(i=>Qr.mergeArray(r,i)):Qr.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};mi.create=(t,e)=>{if(!Array.isArray(t))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new mi({items:t,typeName:we.ZodTuple,rest:null,...Ie(e)})};var pT=class t extends Me{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.object)return te(n,{code:G.invalid_type,expected:ce.object,received:n.parsedType}),_e;let s=[],i=this._def.keyType,a=this._def.valueType;for(let o in n.data)s.push({key:i._parse(new Jn(n,o,n.path,o)),value:a._parse(new Jn(n,n.data[o],n.path,o)),alwaysSet:o in n.data});return n.common.async?Qr.mergeObjectAsync(r,s):Qr.mergeObjectSync(r,s)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof Me?new t({keyType:e,valueType:r,typeName:we.ZodRecord,...Ie(n)}):new t({keyType:tl.create(),valueType:e,typeName:we.ZodRecord,...Ie(r)})}},Gd=class extends Me{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.map)return te(n,{code:G.invalid_type,expected:ce.map,received:n.parsedType}),_e;let s=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([o,c],l)=>({key:s._parse(new Jn(n,o,n.path,[l,"key"])),value:i._parse(new Jn(n,c,n.path,[l,"value"]))}));if(n.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let c of a){let l=await c.key,u=await c.value;if(l.status==="aborted"||u.status==="aborted")return _e;(l.status==="dirty"||u.status==="dirty")&&r.dirty(),o.set(l.value,u.value)}return{status:r.value,value:o}})}else{let o=new Map;for(let c of a){let{key:l,value:u}=c;if(l.status==="aborted"||u.status==="aborted")return _e;(l.status==="dirty"||u.status==="dirty")&&r.dirty(),o.set(l.value,u.value)}return{status:r.value,value:o}}}};Gd.create=(t,e,r)=>new Gd({valueType:e,keyType:t,typeName:we.ZodMap,...Ie(r)});var Vd=class t extends Me{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.set)return te(n,{code:G.invalid_type,expected:ce.set,received:n.parsedType}),_e;let s=this._def;s.minSize!==null&&n.data.sizes.maxSize.value&&(te(n,{code:G.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),r.dirty());let i=this._def.valueType;function a(c){let l=new Set;for(let u of c){if(u.status==="aborted")return _e;u.status==="dirty"&&r.dirty(),l.add(u.value)}return{status:r.value,value:l}}let o=[...n.data.values()].map((c,l)=>i._parse(new Jn(n,c,n.path,l)));return n.common.async?Promise.all(o).then(c=>a(c)):a(o)}min(e,r){return new t({...this._def,minSize:{value:e,message:ue.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:ue.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Vd.create=(t,e)=>new Vd({valueType:t,minSize:null,maxSize:null,typeName:we.ZodSet,...Ie(e)});var dT=class t extends Me{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.function)return te(r,{code:G.invalid_type,expected:ce.function,received:r.parsedType}),_e;function n(o,c){return cT({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,oT(),Ld].filter(l=>!!l),issueData:{code:G.invalid_arguments,argumentsError:c}})}function s(o,c){return cT({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,oT(),Ld].filter(l=>!!l),issueData:{code:G.invalid_return_type,returnTypeError:c}})}let i={errorMap:r.common.contextualErrorMap},a=r.data;if(this._def.returns instanceof oo){let o=this;return gn(async function(...c){let l=new Kn([]),u=await o._def.args.parseAsync(c,i).catch(d=>{throw l.addIssue(n(c,d)),l}),p=await Reflect.apply(a,this,u);return await o._def.returns._def.type.parseAsync(p,i).catch(d=>{throw l.addIssue(s(p,d)),l})})}else{let o=this;return gn(function(...c){let l=o._def.args.safeParse(c,i);if(!l.success)throw new Kn([n(c,l.error)]);let u=Reflect.apply(a,this,l.data),p=o._def.returns.safeParse(u,i);if(!p.success)throw new Kn([s(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:mi.create(e).rest(Ki.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||mi.create([]).rest(Ki.create()),returns:r||Ki.create(),typeName:we.ZodFunction,...Ie(n)})}},al=class extends Me{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};al.create=(t,e)=>new al({getter:t,typeName:we.ZodLazy,...Ie(e)});var ol=class extends Me{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return te(r,{received:r.data,code:G.invalid_literal,expected:this._def.value}),_e}return{status:"valid",value:e.data}}get value(){return this._def.value}};ol.create=(t,e)=>new ol({value:t,typeName:we.ZodLiteral,...Ie(e)});function s9(t,e){return new cl({values:t,typeName:we.ZodEnum,...Ie(e)})}var cl=class t extends Me{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return te(r,{expected:tt.joinValues(n),received:r.parsedType,code:G.invalid_type}),_e}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return te(r,{received:r.data,code:G.invalid_enum_value,options:n}),_e}return gn(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};cl.create=s9;var ll=class extends Me{_parse(e){let r=tt.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==ce.string&&n.parsedType!==ce.number){let s=tt.objectValues(r);return te(n,{expected:tt.joinValues(s),received:n.parsedType,code:G.invalid_type}),_e}if(this._cache||(this._cache=new Set(tt.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=tt.objectValues(r);return te(n,{received:n.data,code:G.invalid_enum_value,options:s}),_e}return gn(e.data)}get enum(){return this._def.values}};ll.create=(t,e)=>new ll({values:t,typeName:we.ZodNativeEnum,...Ie(e)});var oo=class extends Me{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.promise&&r.common.async===!1)return te(r,{code:G.invalid_type,expected:ce.promise,received:r.parsedType}),_e;let n=r.parsedType===ce.promise?r.data:Promise.resolve(r.data);return gn(n.then(s=>this._def.type.parseAsync(s,{path:r.path,errorMap:r.common.contextualErrorMap})))}};oo.create=(t,e)=>new oo({type:t,typeName:we.ZodPromise,...Ie(e)});var bs=class extends Me{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===we.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:a=>{te(n,a),a.fatal?r.abort():r.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let a=s.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async o=>{if(r.value==="aborted")return _e;let c=await this._def.schema._parseAsync({data:o,path:n.path,parent:n});return c.status==="aborted"?_e:c.status==="dirty"||r.value==="dirty"?Ad(c.value):c});{if(r.value==="aborted")return _e;let o=this._def.schema._parseSync({data:a,path:n.path,parent:n});return o.status==="aborted"?_e:o.status==="dirty"||r.value==="dirty"?Ad(o.value):o}}if(s.type==="refinement"){let a=o=>{let c=s.refinement(o,i);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?_e:(o.status==="dirty"&&r.dirty(),a(o.value),{status:r.value,value:o.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>o.status==="aborted"?_e:(o.status==="dirty"&&r.dirty(),a(o.value).then(()=>({status:r.value,value:o.value}))))}if(s.type==="transform")if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!el(a))return _e;let o=s.transform(a.value,i);if(o instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:o}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>el(a)?Promise.resolve(s.transform(a.value,i)).then(o=>({status:r.value,value:o})):_e);tt.assertNever(s)}};bs.create=(t,e,r)=>new bs({schema:t,typeName:we.ZodEffects,effect:e,...Ie(r)});bs.createWithPreprocess=(t,e,r)=>new bs({schema:e,effect:{type:"preprocess",transform:t},typeName:we.ZodEffects,...Ie(r)});var vs=class extends Me{_parse(e){return this._getType(e)===ce.undefined?gn(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};vs.create=(t,e)=>new vs({innerType:t,typeName:we.ZodOptional,...Ie(e)});var fi=class extends Me{_parse(e){return this._getType(e)===ce.null?gn(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};fi.create=(t,e)=>new fi({innerType:t,typeName:we.ZodNullable,...Ie(e)});var ul=class extends Me{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===ce.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};ul.create=(t,e)=>new ul({innerType:t,typeName:we.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Ie(e)});var pl=class extends Me{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Yv(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Kn(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Kn(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};pl.create=(t,e)=>new pl({innerType:t,typeName:we.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Ie(e)});var Kd=class extends Me{_parse(e){if(this._getType(e)!==ce.nan){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.nan,received:r.parsedType}),_e}return{status:"valid",value:e.data}}};Kd.create=t=>new Kd({typeName:we.ZodNaN,...Ie(t)});var Xv=class extends Me{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},ey=class t extends Me{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?_e:s.status==="dirty"?(r.dirty(),Ad(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?_e:s.status==="dirty"?(r.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:we.ZodPipeline})}},dl=class extends Me{_parse(e){let r=this._def.innerType._parse(e),n=s=>(el(s)&&(s.value=Object.freeze(s.value)),s);return Yv(r)?r.then(s=>n(s)):n(r)}unwrap(){return this._def.innerType}};dl.create=(t,e)=>new dl({innerType:t,typeName:we.ZodReadonly,...Ie(e)});var l$e={object:Pn.lazycreate},we;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(we||(we={}));var u$e=tl.create,p$e=Ud.create,d$e=Kd.create,m$e=qd.create,f$e=Fd.create,h$e=Hd.create,g$e=Bd.create,v$e=rl.create,y$e=nl.create,b$e=Wd.create,x$e=Ki.create,_$e=Hs.create,w$e=Zd.create,S$e=Qi.create,k$e=Pn.create,E$e=Pn.strictCreate,T$e=sl.create,R$e=lT.create,P$e=il.create,I$e=mi.create,C$e=pT.create,O$e=Gd.create,A$e=Vd.create,j$e=dT.create,N$e=al.create,D$e=ol.create,M$e=cl.create,z$e=ll.create,$$e=oo.create,L$e=bs.create,U$e=vs.create,q$e=fi.create,F$e=bs.createWithPreprocess,H$e=ey.create,i9={};uo(i9,{version:()=>g5,util:()=>Be,treeifyError:()=>v9,toJSONSchema:()=>lB,toDotPath:()=>y9,safeParseAsync:()=>zT,safeParse:()=>DT,registry:()=>YT,regexes:()=>$T,prettifyError:()=>b9,parseAsync:()=>sy,parse:()=>ny,locales:()=>QT,isValidJWT:()=>U5,isValidBase64URL:()=>z5,isValidBase64:()=>FT,globalRegistry:()=>ro,globalConfig:()=>ty,function:()=>cB,formatError:()=>OT,flattenError:()=>CT,config:()=>Yr,clone:()=>ws,_xid:()=>uR,_void:()=>GH,_uuidv7:()=>nR,_uuidv6:()=>rR,_uuidv4:()=>tR,_uuid:()=>eR,_url:()=>sR,_uppercase:()=>SR,_unknown:()=>cy,_union:()=>Q_e,_undefined:()=>HH,_ulid:()=>lR,_uint64:()=>qH,_uint32:()=>DH,_tuple:()=>rB,_trim:()=>IR,_transform:()=>a0e,_toUpperCase:()=>OR,_toLowerCase:()=>CR,_templateLiteral:()=>h0e,_symbol:()=>FH,_success:()=>p0e,_stringbool:()=>aB,_stringFormat:()=>oB,_string:()=>wH,_startsWith:()=>ER,_size:()=>xR,_set:()=>r0e,_safeParseAsync:()=>MT,_safeParse:()=>NT,_regex:()=>_R,_refine:()=>iB,_record:()=>e0e,_readonly:()=>f0e,_property:()=>tB,_promise:()=>v0e,_positive:()=>QH,_pipe:()=>m0e,_parseAsync:()=>jT,_parse:()=>AT,_overwrite:()=>fo,_optional:()=>o0e,_number:()=>IH,_nullable:()=>c0e,_null:()=>BH,_normalize:()=>PR,_nonpositive:()=>XH,_nonoptional:()=>u0e,_nonnegative:()=>eB,_never:()=>ZH,_negative:()=>YH,_nativeEnum:()=>s0e,_nanoid:()=>aR,_nan:()=>JH,_multipleOf:()=>Xd,_minSize:()=>em,_minLength:()=>fl,_min:()=>En,_mime:()=>RR,_maxSize:()=>Ty,_maxLength:()=>Ry,_max:()=>ys,_map:()=>t0e,_lte:()=>ys,_lt:()=>co,_lowercase:()=>wR,_literal:()=>i0e,_length:()=>Py,_lazy:()=>g0e,_ksuid:()=>pR,_jwt:()=>bR,_isoTime:()=>RH,_isoDuration:()=>PH,_isoDateTime:()=>EH,_isoDate:()=>TH,_ipv6:()=>mR,_ipv4:()=>dR,_intersection:()=>X_e,_int64:()=>UH,_int32:()=>NH,_int:()=>OH,_includes:()=>kR,_guid:()=>oy,_gte:()=>En,_gt:()=>lo,_float64:()=>jH,_float32:()=>AH,_file:()=>nB,_enum:()=>n0e,_endsWith:()=>TR,_emoji:()=>iR,_email:()=>XT,_e164:()=>yR,_discriminatedUnion:()=>Y_e,_default:()=>l0e,_date:()=>VH,_custom:()=>sB,_cuid2:()=>cR,_cuid:()=>oR,_coercedString:()=>SH,_coercedNumber:()=>CH,_coercedDate:()=>KH,_coercedBoolean:()=>zH,_coercedBigint:()=>LH,_cidrv6:()=>hR,_cidrv4:()=>fR,_catch:()=>d0e,_boolean:()=>MH,_bigint:()=>$H,_base64url:()=>vR,_base64:()=>gR,_array:()=>AR,_any:()=>WH,TimePrecision:()=>kH,NEVER:()=>a9,JSONSchemaGenerator:()=>tm,JSONSchema:()=>y0e,Doc:()=>iy,$output:()=>xH,$input:()=>_H,$constructor:()=>j,$brand:()=>o9,$ZodXID:()=>T5,$ZodVoid:()=>J5,$ZodUnknown:()=>ay,$ZodUnion:()=>VT,$ZodUndefined:()=>Z5,$ZodUUID:()=>y5,$ZodURL:()=>x5,$ZodULID:()=>E5,$ZodType:()=>Pe,$ZodTuple:()=>Ey,$ZodTransform:()=>KT,$ZodTemplateLiteral:()=>hH,$ZodSymbol:()=>W5,$ZodSuccess:()=>pH,$ZodStringFormat:()=>Et,$ZodString:()=>im,$ZodSet:()=>rH,$ZodRegistry:()=>Yd,$ZodRecord:()=>eH,$ZodRealError:()=>nm,$ZodReadonly:()=>fH,$ZodPromise:()=>gH,$ZodPrefault:()=>lH,$ZodPipe:()=>JT,$ZodOptional:()=>aH,$ZodObject:()=>GT,$ZodNumberFormat:()=>H5,$ZodNumber:()=>HT,$ZodNullable:()=>oH,$ZodNull:()=>G5,$ZodNonOptional:()=>uH,$ZodNever:()=>K5,$ZodNanoID:()=>w5,$ZodNaN:()=>mH,$ZodMap:()=>tH,$ZodLiteral:()=>sH,$ZodLazy:()=>vH,$ZodKSUID:()=>R5,$ZodJWT:()=>q5,$ZodIntersection:()=>X5,$ZodISOTime:()=>C5,$ZodISODuration:()=>O5,$ZodISODateTime:()=>P5,$ZodISODate:()=>I5,$ZodIPv6:()=>j5,$ZodIPv4:()=>A5,$ZodGUID:()=>v5,$ZodFunction:()=>ly,$ZodFile:()=>iH,$ZodError:()=>IT,$ZodEnum:()=>nH,$ZodEmoji:()=>_5,$ZodEmail:()=>b5,$ZodE164:()=>L5,$ZodDiscriminatedUnion:()=>Y5,$ZodDefault:()=>cH,$ZodDate:()=>Q5,$ZodCustomStringFormat:()=>F5,$ZodCustom:()=>yH,$ZodCheckUpperCase:()=>l5,$ZodCheckStringFormat:()=>sm,$ZodCheckStartsWith:()=>p5,$ZodCheckSizeEquals:()=>n5,$ZodCheckRegex:()=>o5,$ZodCheckProperty:()=>m5,$ZodCheckOverwrite:()=>h5,$ZodCheckNumberFormat:()=>X9,$ZodCheckMultipleOf:()=>Y9,$ZodCheckMinSize:()=>r5,$ZodCheckMinLength:()=>i5,$ZodCheckMimeType:()=>f5,$ZodCheckMaxSize:()=>t5,$ZodCheckMaxLength:()=>s5,$ZodCheckLowerCase:()=>c5,$ZodCheckLessThan:()=>UT,$ZodCheckLengthEquals:()=>a5,$ZodCheckIncludes:()=>u5,$ZodCheckGreaterThan:()=>qT,$ZodCheckEndsWith:()=>d5,$ZodCheckBigIntFormat:()=>e5,$ZodCheck:()=>Yt,$ZodCatch:()=>dH,$ZodCUID2:()=>k5,$ZodCUID:()=>S5,$ZodCIDRv6:()=>D5,$ZodCIDRv4:()=>N5,$ZodBoolean:()=>BT,$ZodBigIntFormat:()=>B5,$ZodBigInt:()=>WT,$ZodBase64URL:()=>$5,$ZodBase64:()=>M5,$ZodAsyncError:()=>Yi,$ZodArray:()=>ZT,$ZodAny:()=>V5});var a9=Object.freeze({status:"aborted"});function j(t,e,r){function n(o,c){var l;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(l=o._zod).traits??(l.traits=new Set),o._zod.traits.add(t),e(o,c);for(let u in a.prototype)u in o||Object.defineProperty(o,u,{value:a.prototype[u].bind(o)});o._zod.constr=a,o._zod.def=c}let s=r?.Parent??Object;class i extends s{}Object.defineProperty(i,"name",{value:t});function a(o){var c;let l=r?.Parent?new i:this;n(l,o),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:o=>r?.Parent&&o instanceof r.Parent?!0:o?._zod?.traits?.has(t)}),Object.defineProperty(a,"name",{value:t}),a}var o9=Symbol("zod_brand"),Yi=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},ty={};function Yr(t){return t&&Object.assign(ty,t),ty}var Be={};uo(Be,{unwrapMessage:()=>jd,stringifyPrimitive:()=>Oe,required:()=>mxe,randomString:()=>sxe,propertyKeyTypes:()=>ry,promiseAllObject:()=>nxe,primitiveTypes:()=>p9,prefixIssues:()=>Vn,pick:()=>cxe,partial:()=>dxe,optionalKeys:()=>d9,omit:()=>lxe,numKeys:()=>ixe,nullish:()=>po,normalizeParams:()=>J,merge:()=>pxe,jsonStringifyReplacer:()=>c9,joinValues:()=>ee,issue:()=>h9,isPlainObject:()=>Qd,isObject:()=>Jd,getSizableOrigin:()=>Sy,getParsedType:()=>axe,getLengthableOrigin:()=>ky,getEnumValues:()=>TT,getElementAtPath:()=>rxe,floatSafeRemainder:()=>l9,finalizeIssue:()=>xs,extend:()=>uxe,escapeRegex:()=>mo,esc:()=>Gc,defineLazy:()=>dt,createTransparentProxy:()=>oxe,clone:()=>ws,cleanRegex:()=>wy,cleanEnum:()=>fxe,captureStackTrace:()=>PT,cached:()=>_y,assignProp:()=>RT,assertNotEqual:()=>Ybe,assertNever:()=>exe,assertIs:()=>Xbe,assertEqual:()=>Qbe,assert:()=>txe,allowsEval:()=>u9,aborted:()=>Qc,NUMBER_FORMAT_RANGES:()=>m9,Class:()=>mT,BIGINT_FORMAT_RANGES:()=>f9});function Qbe(t){return t}function Ybe(t){return t}function Xbe(t){}function exe(t){throw Error()}function txe(t){}function TT(t){let e=Object.values(t).filter(r=>typeof r=="number");return Object.entries(t).filter(([r,n])=>e.indexOf(+r)===-1).map(([r,n])=>n)}function ee(t,e="|"){return t.map(r=>Oe(r)).join(e)}function c9(t,e){return typeof e=="bigint"?e.toString():e}function _y(t){return{get value(){{let e=t();return Object.defineProperty(this,"value",{value:e}),e}throw Error("cached value already set")}}}function po(t){return t==null}function wy(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function l9(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}function dt(t,e,r){Object.defineProperty(t,e,{get(){{let n=r();return t[e]=n,n}throw Error("cached value already set")},set(n){Object.defineProperty(t,e,{value:n})},configurable:!0})}function RT(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function rxe(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function nxe(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let s={};for(let i=0;i{};function Jd(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var u9=_y(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch{return!1}});function Qd(t){if(Jd(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(Jd(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function ixe(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var axe=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw Error(`Unknown data type: ${e}`)}},ry=new Set(["string","number","symbol"]),p9=new Set(["string","number","bigint","boolean","symbol","undefined"]);function mo(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ws(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function J(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function oxe(t){let e;return new Proxy({},{get(r,n,s){return e??(e=t()),Reflect.get(e,n,s)},set(r,n,s,i){return e??(e=t()),Reflect.set(e,n,s,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,s){return e??(e=t()),Reflect.defineProperty(e,n,s)}})}function Oe(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function d9(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var m9={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},f9={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function cxe(t,e){let r={},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw Error(`Unrecognized key: "${s}"`);e[s]&&(r[s]=n.shape[s])}return ws(t,{...t._zod.def,shape:r,checks:[]})}function lxe(t,e){let r={...t._zod.def.shape},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw Error(`Unrecognized key: "${s}"`);e[s]&&delete r[s]}return ws(t,{...t._zod.def,shape:r,checks:[]})}function uxe(t,e){if(!Qd(e))throw Error("Invalid input to extend: expected a plain object");let r={...t._zod.def,get shape(){let n={...t._zod.def.shape,...e};return RT(this,"shape",n),n},checks:[]};return ws(t,r)}function pxe(t,e){return ws(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return RT(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function dxe(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in n))throw Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=t?new t({type:"optional",innerType:n[i]}):n[i])}else for(let i in n)s[i]=t?new t({type:"optional",innerType:n[i]}):n[i];return ws(e,{...e._zod.def,shape:s,checks:[]})}function mxe(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in s))throw Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new t({type:"nonoptional",innerType:n[i]}))}else for(let i in n)s[i]=new t({type:"nonoptional",innerType:n[i]});return ws(e,{...e._zod.def,shape:s,checks:[]})}function Qc(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function jd(t){return typeof t=="string"?t:t?.message}function xs(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let s=jd(t.inst?._zod.def?.error?.(t))??jd(e?.error?.(t))??jd(r.customError?.(t))??jd(r.localeError?.(t))??"Invalid input";n.message=s}return delete n.inst,delete n.continue,!e?.reportInput&&delete n.input,n}function Sy(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function ky(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function h9(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function fxe(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var mT=class{constructor(...e){}},g9=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(e,c9,2)},enumerable:!0})},IT=j("$ZodError",g9),nm=j("$ZodError",g9,{Parent:Error});function CT(t,e=r=>r.message){let r={},n=[];for(let s of t.issues)s.path.length>0?(r[s.path[0]]=r[s.path[0]]||[],r[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:r}}function OT(t,e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>s({issues:o}));else if(a.code==="invalid_key")s({issues:a.issues});else if(a.code==="invalid_element")s({issues:a.issues});else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;c{var o,c;for(let l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(u=>s({issues:u},l.path));else if(l.code==="invalid_key")s({issues:l.issues},l.path);else if(l.code==="invalid_element")s({issues:l.issues},l.path);else{let u=[...a,...l.path];if(u.length===0){n.errors.push(r(l));continue}let p=n,d=0;for(;dn.path.length-s.path.length);for(let n of r)e.push(`\u2716 ${n.message}`),n.path?.length&&e.push(` \u2192 at ${y9(n.path)}`);return e.join(` -`)}var AT=t=>(e,r,n,s)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new Yi;if(a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>xs(c,i,Yr())));throw PT(o,s?.callee),o}return a.value},ny=AT(nm),jT=t=>async(e,r,n,s)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>xs(c,i,Yr())));throw PT(o,s?.callee),o}return a.value},sy=jT(nm),NT=t=>(e,r,n)=>{let s=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Yi;return i.issues.length?{success:!1,error:new(t??IT)(i.issues.map(a=>xs(a,s,Yr())))}:{success:!0,data:i.value}},DT=NT(nm),MT=t=>async(e,r,n)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=e._zod.run({value:r,issues:[]},s);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(a=>xs(a,s,Yr())))}:{success:!0,data:i.value}},zT=MT(nm),$T={};uo($T,{xid:()=>S9,uuid7:()=>yxe,uuid6:()=>vxe,uuid4:()=>gxe,uuid:()=>ml,uppercase:()=>J9,unicodeEmail:()=>_xe,undefined:()=>V9,ulid:()=>w9,time:()=>U9,string:()=>F9,rfc5322Email:()=>xxe,number:()=>W9,null:()=>G9,nanoid:()=>E9,lowercase:()=>K9,ksuid:()=>k9,ipv6:()=>O9,ipv4:()=>C9,integer:()=>B9,html5Email:()=>bxe,hostname:()=>D9,guid:()=>R9,extendedDuration:()=>hxe,emoji:()=>I9,email:()=>P9,e164:()=>M9,duration:()=>T9,domain:()=>kxe,datetime:()=>q9,date:()=>$9,cuid2:()=>_9,cuid:()=>x9,cidrv6:()=>j9,cidrv4:()=>A9,browserEmail:()=>wxe,boolean:()=>Z9,bigint:()=>H9,base64url:()=>LT,base64:()=>N9,_emoji:()=>Sxe});var x9=/^[cC][^\s-]{8,}$/,_9=/^[0-9a-z]+$/,w9=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,S9=/^[0-9a-vA-V]{20}$/,k9=/^[A-Za-z0-9]{27}$/,E9=/^[a-zA-Z0-9_-]{21}$/,T9=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,hxe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,R9=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ml=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,gxe=ml(4),vxe=ml(6),yxe=ml(7),P9=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,bxe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,xxe=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,_xe=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,wxe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Sxe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function I9(){return new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")}var C9=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,O9=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,A9=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,j9=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,N9=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,LT=/^[A-Za-z0-9_-]*$/,D9=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,kxe=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,M9=/^\+(?:[0-9]){6,14}[0-9]$/,z9="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",$9=new RegExp(`^${z9}$`);function L9(t){return typeof t.precision=="number"?t.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":t.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${t.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function U9(t){return new RegExp(`^${L9(t)}$`)}function q9(t){let e=L9({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-]\\d{2}:\\d{2})");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${z9}T(?:${n})$`)}var F9=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},H9=/^\d+n?$/,B9=/^\d+$/,W9=/^-?\d+(?:\.\d+)?/i,Z9=/true|false/i,G9=/null/i,V9=/undefined/i,K9=/^[^A-Z]*$/,J9=/^[^a-z]*$/,Yt=j("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),Q9={number:"number",bigint:"bigint",object:"date"},UT=j("$ZodCheckLessThan",(t,e)=>{Yt.init(t,e);let r=Q9[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.maximum:s.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{Yt.init(t,e);let r=Q9[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.minimum:s.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?s.minimum=e.value:s.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),Y9=j("$ZodCheckMultipleOf",(t,e)=>{Yt.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):l9(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),X9=j("$ZodCheckNumberFormat",(t,e)=>{Yt.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[s,i]=m9[e.format];t._zod.onattach.push(a=>{let o=a._zod.bag;o.format=e.format,o.minimum=s,o.maximum=i,r&&(o.pattern=B9)}),t._zod.check=a=>{let o=a.value;if(r){if(!Number.isInteger(o)){a.issues.push({expected:n,format:e.format,code:"invalid_type",input:o,inst:t});return}if(!Number.isSafeInteger(o)){o>0?a.issues.push({input:o,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort}):a.issues.push({input:o,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort});return}}oi&&a.issues.push({origin:"number",input:o,code:"too_big",maximum:i,inst:t})}}),e5=j("$ZodCheckBigIntFormat",(t,e)=>{Yt.init(t,e);let[r,n]=f9[e.format];t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,i.minimum=r,i.maximum=n}),t._zod.check=s=>{let i=s.value;in&&s.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inst:t})}}),t5=j("$ZodCheckMaxSize",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!po(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let n=r.value;n.size<=e.maximum||r.issues.push({origin:Sy(n),code:"too_big",maximum:e.maximum,input:n,inst:t,continue:!e.abort})}}),r5=j("$ZodCheckMinSize",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!po(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>n&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let n=r.value;n.size>=e.minimum||r.issues.push({origin:Sy(n),code:"too_small",minimum:e.minimum,input:n,inst:t,continue:!e.abort})}}),n5=j("$ZodCheckSizeEquals",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!po(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag;n.minimum=e.size,n.maximum=e.size,n.size=e.size}),t._zod.check=r=>{let n=r.value,s=n.size;if(s===e.size)return;let i=s>e.size;r.issues.push({origin:Sy(n),...i?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),s5=j("$ZodCheckMaxLength",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!po(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let n=r.value;if(n.length<=e.maximum)return;let s=ky(n);r.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),i5=j("$ZodCheckMinLength",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!po(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>n&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let n=r.value;if(n.length>=e.minimum)return;let s=ky(n);r.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),a5=j("$ZodCheckLengthEquals",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!po(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag;n.minimum=e.length,n.maximum=e.length,n.length=e.length}),t._zod.check=r=>{let n=r.value,s=n.length;if(s===e.length)return;let i=ky(n),a=s>e.length;r.issues.push({origin:i,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),sm=j("$ZodCheckStringFormat",(t,e)=>{var r,n;Yt.init(t,e),t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=s=>{e.pattern.lastIndex=0,!e.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:e.format,input:s.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),o5=j("$ZodCheckRegex",(t,e)=>{sm.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),c5=j("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=K9),sm.init(t,e)}),l5=j("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=J9),sm.init(t,e)}),u5=j("$ZodCheckIncludes",(t,e)=>{Yt.init(t,e);let r=mo(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(s=>{let i=s._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=s=>{s.value.includes(e.includes,e.position)||s.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:s.value,inst:t,continue:!e.abort})}}),p5=j("$ZodCheckStartsWith",(t,e)=>{Yt.init(t,e);let r=new RegExp(`^${mo(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),d5=j("$ZodCheckEndsWith",(t,e)=>{Yt.init(t,e);let r=new RegExp(`.*${mo(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});function HF(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues))}var m5=j("$ZodCheckProperty",(t,e)=>{Yt.init(t,e),t._zod.check=r=>{let n=e.schema._zod.run({value:r.value[e.property],issues:[]},{});if(n instanceof Promise)return n.then(s=>HF(s,r,e.property));HF(n,r,e.property)}}),f5=j("$ZodCheckMimeType",(t,e)=>{Yt.init(t,e);let r=new Set(e.mime);t._zod.onattach.push(n=>{n._zod.bag.mime=e.mime}),t._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:e.mime,input:n.value.type,inst:t})}}),h5=j("$ZodCheckOverwrite",(t,e)=>{Yt.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}}),iy=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let r=e.split(` +`))}Zi(`[Query.streamInput] Finished processing ${r} messages from input stream`),r>0&&this.hasBidirectionalNeeds()&&(Zi("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),Zi("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(r){if(!(r instanceof Vi))throw r}}waitForFirstResult(){return this.firstResultReceived?(Zi("[Query.waitForFirstResult] Result already received, returning immediately"),Promise.resolve()):new Promise(e=>{if(this.abortController?.signal.aborted){e();return}this.abortController?.signal.addEventListener("abort",()=>e(),{once:!0}),this.firstResultReceivedResolve=e})}handleHookCallbacks(e,r,n,s){let i=this.hookCallbacks.get(e);if(!i)throw Error(`No hook callback found for ID: ${e}`);return i(r,n,{signal:s})}connectSdkMcpServer(e,r){let n=new eT(s=>this.sendMcpServerMessageToCli(e,s));this.sdkMcpTransports.set(e,n),this.sdkMcpServerInstances.set(e,r),r.connect(n)}async disconnectSdkMcpServer(e){let r=this.sdkMcpTransports.get(e);r&&(await r.close(),this.sdkMcpTransports.delete(e)),this.sdkMcpServerInstances.delete(e)}sendMcpServerMessageToCli(e,r){if("id"in r&&r.id!==null&&r.id!==void 0){let s=`${e}:${r.id}`,i=this.pendingMcpResponses.get(s);if(i){i.resolve(r),this.pendingMcpResponses.delete(s);return}}let n={type:"control_request",request_id:(0,wT.randomUUID)(),request:{subtype:"mcp_message",server_name:e,message:r}};this.transport.write(pi(n)+` +`)}handleMcpControlRequest(e,r,n){let s="id"in r.message?r.message.id:null,i=`${e}:${s}`;return new Promise((a,o)=>{let c=()=>{this.pendingMcpResponses.delete(i)},l=p=>{c(),a(p)},u=p=>{c(),o(p)};if(this.pendingMcpResponses.set(i,{resolve:l,reject:u}),n.onmessage)n.onmessage(r.message);else{c(),o(Error("No message handler registered"));return}})}},ybe=5e3,nT=class{closed=!1;inputStream;query;queryIterator=null;abortController;_sessionId=null;get sessionId(){if(this._sessionId===null)throw Error("Session ID not available until after receiving messages");return this._sessionId}constructor(e){e.resume&&(this._sessionId=e.resume),this.inputStream=new Kv;let r=e.pathToClaudeCodeExecutable;if(!r){let i=(0,K8.fileURLToPath)(pEe.url),a=(0,rT.join)(i,"..");r=(0,rT.join)(a,"cli.js")}let n={...e.env??process.env};n.CLAUDE_CODE_ENTRYPOINT||(n.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=u8();let s=new Xk({abortController:this.abortController,pathToClaudeCodeExecutable:r,env:n,executable:e.executable??(m8()?"bun":"node"),executableArgs:e.executableArgs??[],extraArgs:{},thinkingConfig:void 0,maxTurns:void 0,maxBudgetUsd:void 0,model:e.model,fallbackModel:void 0,permissionMode:e.permissionMode??"default",allowDangerouslySkipPermissions:!1,continueConversation:!1,resume:e.resume,settingSources:[],allowedTools:e.allowedTools??[],disallowedTools:e.disallowedTools??[],mcpServers:{},strictMcpConfig:!1,canUseTool:!!e.canUseTool,hooks:!!e.hooks,includePartialMessages:!1,forkSession:!1,resumeSessionAt:void 0});this.query=new tT(s,!1,e.canUseTool,e.hooks,this.abortController,new Map),this.query.streamInput(this.inputStream).catch(i=>this.abortController.abort(i))}async send(e){if(this.closed)throw Error("Cannot send to closed session");let r=typeof e=="string"?{type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null}:e;this.inputStream.enqueue(r)}async*stream(){for(this.queryIterator||(this.queryIterator=this.query[Symbol.asyncIterator]());;){let{value:e,done:r}=await this.queryIterator.next();if(r||(e.type==="system"&&e.subtype==="init"&&(this._sessionId=e.session_id),yield e,e.type==="result"))return}}close(){this.closed||(this.closed=!0,this.inputStream.done(),setTimeout(()=>{this.abortController.signal.aborted||this.abortController.abort()},ybe).unref())}async[Symbol.asyncDispose](){this.close()}};function bbe(t){return new nT(t)}var Y4e=(0,Q8.promisify)(J8.execFile);var X4e=Buffer.from('{"type":"attribution-snapshot"'),e$e=Buffer.from('{"type":"system"'),xbe=10,t$e=Buffer.from([xbe]);var tt;(function(t){t.assertEqual=s=>{};function e(s){}t.assertIs=e;function r(s){throw Error()}t.assertNever=r,t.arrayToEnum=s=>{let i={};for(let a of s)i[a]=a;return i},t.getValidEnumValues=s=>{let i=t.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),a={};for(let o of i)a[o]=s[o];return t.objectValues(a)},t.objectValues=s=>t.objectKeys(s).map(function(i){return s[i]}),t.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let a in s)Object.prototype.hasOwnProperty.call(s,a)&&i.push(a);return i},t.find=(s,i)=>{for(let a of s)if(i(a))return a},t.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function n(s,i=" | "){return s.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}t.joinValues=n,t.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(tt||(tt={}));var DF;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(DF||(DF={}));var ce=tt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Gi=t=>{switch(typeof t){case"undefined":return ce.undefined;case"string":return ce.string;case"number":return Number.isNaN(t)?ce.nan:ce.number;case"boolean":return ce.boolean;case"function":return ce.function;case"bigint":return ce.bigint;case"symbol":return ce.symbol;case"object":return Array.isArray(t)?ce.array:t===null?ce.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ce.promise:typeof Map<"u"&&t instanceof Map?ce.map:typeof Set<"u"&&t instanceof Set?ce.set:typeof Date<"u"&&t instanceof Date?ce.date:ce.object;default:return ce.unknown}},G=tt.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Kn=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(s);else if(a.code==="invalid_return_type")s(a.returnTypeError);else if(a.code==="invalid_arguments")s(a.argumentsError);else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;cr.message){let r={},n=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];r[i]=r[i]||[],r[i].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Kn.create=t=>new Kn(t);var _be=(t,e)=>{let r;switch(t.code){case G.invalid_type:t.received===ce.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case G.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,tt.jsonStringifyReplacer)}`;break;case G.unrecognized_keys:r=`Unrecognized key(s) in object: ${tt.joinValues(t.keys,", ")}`;break;case G.invalid_union:r="Invalid input";break;case G.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${tt.joinValues(t.options)}`;break;case G.invalid_enum_value:r=`Invalid enum value. Expected ${tt.joinValues(t.options)}, received '${t.received}'`;break;case G.invalid_arguments:r="Invalid function arguments";break;case G.invalid_return_type:r="Invalid function return type";break;case G.invalid_date:r="Invalid date";break;case G.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:tt.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case G.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case G.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case G.custom:r="Invalid input";break;case G.invalid_intersection_types:r="Intersection results could not be merged";break;case G.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case G.not_finite:r="Number must be finite";break;default:r=e.defaultError,tt.assertNever(t)}return{message:r}},$d=_be,wbe=$d;function sT(){return wbe}var iT=t=>{let{data:e,path:r,errorMaps:n,issueData:s}=t,i=[...r,...s.path||[]],a={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let o="",c=n.filter(l=>!!l).slice().reverse();for(let l of c)o=l(a,{data:e,defaultError:o}).message;return{...s,path:i,message:o}};function te(t,e){let r=sT(),n=iT({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===$d?void 0:$d].filter(s=>!!s)});t.common.issues.push(n)}var Qr=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let s of r){if(s.status==="aborted")return _e;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let s of r){let i=await s.key,a=await s.value;n.push({key:i,value:a})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let s of r){let{key:i,value:a}=s;if(i.status==="aborted"||a.status==="aborted")return _e;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||s.alwaysSet)&&(n[i.value]=a.value)}return{status:e.value,value:n}}},_e=Object.freeze({status:"aborted"}),Od=t=>({status:"dirty",value:t}),gn=t=>({status:"valid",value:t}),MF=t=>t.status==="aborted",zF=t=>t.status==="dirty",Xc=t=>t.status==="valid",Jv=t=>typeof Promise<"u"&&t instanceof Promise,ue;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(ue||(ue={}));var Jn=class{constructor(e,r,n,s){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},$F=(t,e)=>{if(Xc(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Kn(t.common.issues);return this._error=r,this._error}}};function Ie(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:s}=t;if(e&&(r||n))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(i,a)=>{let{message:o}=t;return i.code==="invalid_enum_value"?{message:o??a.defaultError}:typeof a.data>"u"?{message:o??n??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:o??r??a.defaultError}},description:s}}var Me=class{get description(){return this._def.description}_getType(e){return Gi(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Gi(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Qr,ctx:{common:e.parent.common,data:e.data,parsedType:Gi(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Jv(r))throw Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)},s=this._parseSync({data:e,path:n.path,parent:n});return $F(n,s)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return Xc(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>Xc(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)},s=this._parse({data:e,path:n.path,parent:n}),i=await(Jv(s)?s:Promise.resolve(s));return $F(n,i)}refine(e,r){let n=s=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(s):r;return this._refinement((s,i)=>{let a=e(s),o=()=>i.addIssue({code:G.custom,...n(s)});return typeof Promise<"u"&&a instanceof Promise?a.then(c=>c?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(e,r){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof r=="function"?r(n,s):r),!1))}_refinement(e){return new bs({schema:this,typeName:we.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return vs.create(this,this._def)}nullable(){return fi.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Qi.create(this)}promise(){return ao.create(this,this._def)}or(e){return nl.create([this,e],this._def)}and(e){return sl.create(this,e,this._def)}transform(e){return new bs({...Ie(this._def),schema:this,typeName:we.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new ll({...Ie(this._def),innerType:this,defaultValue:r,typeName:we.ZodDefault})}brand(){return new Qv({typeName:we.ZodBranded,type:this,...Ie(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new ul({...Ie(this._def),innerType:this,catchValue:r,typeName:we.ZodCatch})}describe(e){return new this.constructor({...this._def,description:e})}pipe(e){return Yv.create(this,e)}readonly(){return pl.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Sbe=/^c[^\s-]{8,}$/i,Ebe=/^[0-9a-z]+$/,kbe=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Tbe=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Rbe=/^[a-z0-9_-]{21}$/i,Pbe=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ibe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Cbe=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Obe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Dk,Abe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,jbe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Nbe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Dbe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Mbe=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,zbe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Y8="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",$be=new RegExp(`^${Y8}$`);function X8(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function Lbe(t){return new RegExp(`^${X8(t)}$`)}function Ube(t){let e=`${Y8}T${X8(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function qbe(t,e){return!!((e==="v4"||!e)&&Abe.test(t)||(e==="v6"||!e)&&Nbe.test(t))}function Fbe(t,e){if(!Pbe.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function Hbe(t,e){return!!((e==="v4"||!e)&&jbe.test(t)||(e==="v6"||!e)&&Dbe.test(t))}var el=class t extends Me{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ce.string){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_type,expected:ce.string,received:s.parsedType}),_e}let r=new Qr,n;for(let s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(n=this._getOrReturnCtx(e,n),te(n,{code:G.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let i=e.data.length>s.value,a=e.data.lengthe.test(s),{validation:r,code:G.invalid_string,...ue.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...ue.errToObj(e)})}url(e){return this._addCheck({kind:"url",...ue.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...ue.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...ue.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...ue.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...ue.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...ue.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...ue.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...ue.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...ue.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...ue.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...ue.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...ue.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...ue.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...ue.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...ue.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...ue.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...ue.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...ue.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...ue.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...ue.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...ue.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...ue.errToObj(r)})}nonempty(e){return this.min(1,ue.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew el({checks:[],typeName:we.ZodString,coerce:t?.coerce??!1,...Ie(t)});function Bbe(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}var Ld=class t extends Me{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==ce.number){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_type,expected:ce.number,received:s.parsedType}),_e}let r,n=new Qr;for(let s of this._def.checks)s.kind==="int"?tt.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),te(r,{code:G.invalid_type,expected:"integer",received:"float",message:s.message}),n.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:G.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),n.dirty()):s.kind==="multipleOf"?Bbe(e.data,s.value)!==0&&(r=this._getOrReturnCtx(e,r),te(r,{code:G.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),te(r,{code:G.not_finite,message:s.message}),n.dirty()):tt.assertNever(s);return{status:n.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,ue.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ue.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ue.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ue.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ue.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:ue.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ue.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ue.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:ue.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ue.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ue.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&tt.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.valuenew Ld({checks:[],typeName:we.ZodNumber,coerce:t?.coerce||!1,...Ie(t)});var Ud=class t extends Me{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==ce.bigint)return this._getInvalidInput(e);let r,n=new Qr;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:G.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),n.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),te(r,{code:G.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):tt.assertNever(s);return{status:n.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.bigint,received:r.parsedType}),_e}gte(e,r){return this.setLimit("min",e,!0,ue.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ue.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ue.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ue.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ue.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ue.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ue.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Ud({checks:[],typeName:we.ZodBigInt,coerce:t?.coerce??!1,...Ie(t)});var qd=class extends Me{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ce.boolean){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.boolean,received:r.parsedType}),_e}return gn(e.data)}};qd.create=t=>new qd({typeName:we.ZodBoolean,coerce:t?.coerce||!1,...Ie(t)});var Fd=class t extends Me{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ce.date){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_type,expected:ce.date,received:s.parsedType}),_e}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return te(s,{code:G.invalid_date}),_e}let r=new Qr,n;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(n=this._getOrReturnCtx(e,n),te(n,{code:G.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):tt.assertNever(s);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:ue.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:ue.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Fd({checks:[],coerce:t?.coerce||!1,typeName:we.ZodDate,...Ie(t)});var Hd=class extends Me{_parse(e){if(this._getType(e)!==ce.symbol){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.symbol,received:r.parsedType}),_e}return gn(e.data)}};Hd.create=t=>new Hd({typeName:we.ZodSymbol,...Ie(t)});var tl=class extends Me{_parse(e){if(this._getType(e)!==ce.undefined){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.undefined,received:r.parsedType}),_e}return gn(e.data)}};tl.create=t=>new tl({typeName:we.ZodUndefined,...Ie(t)});var rl=class extends Me{_parse(e){if(this._getType(e)!==ce.null){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.null,received:r.parsedType}),_e}return gn(e.data)}};rl.create=t=>new rl({typeName:we.ZodNull,...Ie(t)});var Bd=class extends Me{constructor(){super(...arguments),this._any=!0}_parse(e){return gn(e.data)}};Bd.create=t=>new Bd({typeName:we.ZodAny,...Ie(t)});var Ki=class extends Me{constructor(){super(...arguments),this._unknown=!0}_parse(e){return gn(e.data)}};Ki.create=t=>new Ki({typeName:we.ZodUnknown,...Ie(t)});var Hs=class extends Me{_parse(e){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.never,received:r.parsedType}),_e}};Hs.create=t=>new Hs({typeName:we.ZodNever,...Ie(t)});var Wd=class extends Me{_parse(e){if(this._getType(e)!==ce.undefined){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.void,received:r.parsedType}),_e}return gn(e.data)}};Wd.create=t=>new Wd({typeName:we.ZodVoid,...Ie(t)});var Qi=class t extends Me{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),s=this._def;if(r.parsedType!==ce.array)return te(r,{code:G.invalid_type,expected:ce.array,received:r.parsedType}),_e;if(s.exactLength!==null){let a=r.data.length>s.exactLength.value,o=r.data.lengths.maxLength.value&&(te(r,{code:G.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((a,o)=>s.type._parseAsync(new Jn(r,a,r.path,o)))).then(a=>Qr.mergeArray(n,a));let i=[...r.data].map((a,o)=>s.type._parseSync(new Jn(r,a,r.path,o)));return Qr.mergeArray(n,i)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:ue.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:ue.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:ue.toString(r)}})}nonempty(e){return this.min(1,e)}};Qi.create=(t,e)=>new Qi({type:t,minLength:null,maxLength:null,exactLength:null,typeName:we.ZodArray,...Ie(e)});function Wc(t){if(t instanceof Pn){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=vs.create(Wc(n))}return new Pn({...t._def,shape:()=>e})}else return t instanceof Qi?new Qi({...t._def,type:Wc(t.element)}):t instanceof vs?vs.create(Wc(t.unwrap())):t instanceof fi?fi.create(Wc(t.unwrap())):t instanceof mi?mi.create(t.items.map(e=>Wc(e))):t}var Pn=class t extends Me{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=tt.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==ce.object){let c=this._getOrReturnCtx(e);return te(c,{code:G.invalid_type,expected:ce.object,received:c.parsedType}),_e}let{status:r,ctx:n}=this._processInputParams(e),{shape:s,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Hs&&this._def.unknownKeys==="strip"))for(let c in n.data)i.includes(c)||a.push(c);let o=[];for(let c of i){let l=s[c],u=n.data[c];o.push({key:{status:"valid",value:c},value:l._parse(new Jn(n,u,n.path,c)),alwaysSet:c in n.data})}if(this._def.catchall instanceof Hs){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)o.push({key:{status:"valid",value:l},value:{status:"valid",value:n.data[l]}});else if(c==="strict")a.length>0&&(te(n,{code:G.unrecognized_keys,keys:a}),r.dirty());else if(c!=="strip")throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let u=n.data[l];o.push({key:{status:"valid",value:l},value:c._parse(new Jn(n,u,n.path,l)),alwaysSet:l in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of o){let u=await l.key,p=await l.value;c.push({key:u,value:p,alwaysSet:l.alwaysSet})}return c}).then(c=>Qr.mergeObjectSync(r,c)):Qr.mergeObjectSync(r,o)}get shape(){return this._def.shape()}strict(e){return ue.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let s=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:ue.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:we.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of tt.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of tt.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Wc(this)}partial(e){let r={};for(let n of tt.objectKeys(this.shape)){let s=this.shape[n];e&&!e[n]?r[n]=s:r[n]=s.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of tt.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof vs;)s=s._def.innerType;r[n]=s}return new t({...this._def,shape:()=>r})}keyof(){return e9(tt.objectKeys(this.shape))}};Pn.create=(t,e)=>new Pn({shape:()=>t,unknownKeys:"strip",catchall:Hs.create(),typeName:we.ZodObject,...Ie(e)});Pn.strictCreate=(t,e)=>new Pn({shape:()=>t,unknownKeys:"strict",catchall:Hs.create(),typeName:we.ZodObject,...Ie(e)});Pn.lazycreate=(t,e)=>new Pn({shape:t,unknownKeys:"strip",catchall:Hs.create(),typeName:we.ZodObject,...Ie(e)});var nl=class extends Me{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function s(i){for(let o of i)if(o.result.status==="valid")return o.result;for(let o of i)if(o.result.status==="dirty")return r.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(o=>new Kn(o.ctx.common.issues));return te(r,{code:G.invalid_union,unionErrors:a}),_e}if(r.common.async)return Promise.all(n.map(async i=>{let a={...r,common:{...r.common,issues:[]},parent:null};return{result:await i._parseAsync({data:r.data,path:r.path,parent:a}),ctx:a}})).then(s);{let i,a=[];for(let c of n){let l={...r,common:{...r.common,issues:[]},parent:null},u=c._parseSync({data:r.data,path:r.path,parent:l});if(u.status==="valid")return u;u.status==="dirty"&&!i&&(i={result:u,ctx:l}),l.common.issues.length&&a.push(l.common.issues)}if(i)return r.common.issues.push(...i.ctx.common.issues),i.result;let o=a.map(c=>new Kn(c));return te(r,{code:G.invalid_union,unionErrors:o}),_e}}get options(){return this._def.options}};nl.create=(t,e)=>new nl({options:t,typeName:we.ZodUnion,...Ie(e)});var li=t=>t instanceof il?li(t.schema):t instanceof bs?li(t.innerType()):t instanceof al?[t.value]:t instanceof ol?t.options:t instanceof cl?tt.objectValues(t.enum):t instanceof ll?li(t._def.innerType):t instanceof tl?[void 0]:t instanceof rl?[null]:t instanceof vs?[void 0,...li(t.unwrap())]:t instanceof fi?[null,...li(t.unwrap())]:t instanceof Qv||t instanceof pl?li(t.unwrap()):t instanceof ul?li(t._def.innerType):[],aT=class t extends Me{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.object)return te(r,{code:G.invalid_type,expected:ce.object,received:r.parsedType}),_e;let n=this.discriminator,s=r.data[n],i=this.optionsMap.get(s);return i?r.common.async?i._parseAsync({data:r.data,path:r.path,parent:r}):i._parseSync({data:r.data,path:r.path,parent:r}):(te(r,{code:G.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),_e)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let s=new Map;for(let i of r){let a=li(i.shape[e]);if(!a.length)throw Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of a){if(s.has(o))throw Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);s.set(o,i)}}return new t({typeName:we.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:s,...Ie(n)})}};function oT(t,e){let r=Gi(t),n=Gi(e);if(t===e)return{valid:!0,data:t};if(r===ce.object&&n===ce.object){let s=tt.objectKeys(e),i=tt.objectKeys(t).filter(o=>s.indexOf(o)!==-1),a={...t,...e};for(let o of i){let c=oT(t[o],e[o]);if(!c.valid)return{valid:!1};a[o]=c.data}return{valid:!0,data:a}}else if(r===ce.array&&n===ce.array){if(t.length!==e.length)return{valid:!1};let s=[];for(let i=0;i{if(MF(i)||MF(a))return _e;let o=oT(i.value,a.value);return o.valid?((zF(i)||zF(a))&&r.dirty(),{status:r.value,value:o.data}):(te(n,{code:G.invalid_intersection_types}),_e)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,a])=>s(i,a)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};sl.create=(t,e,r)=>new sl({left:t,right:e,typeName:we.ZodIntersection,...Ie(r)});var mi=class t extends Me{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.array)return te(n,{code:G.invalid_type,expected:ce.array,received:n.parsedType}),_e;if(n.data.lengththis._def.items.length&&(te(n,{code:G.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((i,a)=>{let o=this._def.items[a]||this._def.rest;return o?o._parse(new Jn(n,i,n.path,a)):null}).filter(i=>!!i);return n.common.async?Promise.all(s).then(i=>Qr.mergeArray(r,i)):Qr.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};mi.create=(t,e)=>{if(!Array.isArray(t))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new mi({items:t,typeName:we.ZodTuple,rest:null,...Ie(e)})};var cT=class t extends Me{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.object)return te(n,{code:G.invalid_type,expected:ce.object,received:n.parsedType}),_e;let s=[],i=this._def.keyType,a=this._def.valueType;for(let o in n.data)s.push({key:i._parse(new Jn(n,o,n.path,o)),value:a._parse(new Jn(n,n.data[o],n.path,o)),alwaysSet:o in n.data});return n.common.async?Qr.mergeObjectAsync(r,s):Qr.mergeObjectSync(r,s)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof Me?new t({keyType:e,valueType:r,typeName:we.ZodRecord,...Ie(n)}):new t({keyType:el.create(),valueType:e,typeName:we.ZodRecord,...Ie(r)})}},Zd=class extends Me{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.map)return te(n,{code:G.invalid_type,expected:ce.map,received:n.parsedType}),_e;let s=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([o,c],l)=>({key:s._parse(new Jn(n,o,n.path,[l,"key"])),value:i._parse(new Jn(n,c,n.path,[l,"value"]))}));if(n.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let c of a){let l=await c.key,u=await c.value;if(l.status==="aborted"||u.status==="aborted")return _e;(l.status==="dirty"||u.status==="dirty")&&r.dirty(),o.set(l.value,u.value)}return{status:r.value,value:o}})}else{let o=new Map;for(let c of a){let{key:l,value:u}=c;if(l.status==="aborted"||u.status==="aborted")return _e;(l.status==="dirty"||u.status==="dirty")&&r.dirty(),o.set(l.value,u.value)}return{status:r.value,value:o}}}};Zd.create=(t,e,r)=>new Zd({valueType:e,keyType:t,typeName:we.ZodMap,...Ie(r)});var Gd=class t extends Me{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.set)return te(n,{code:G.invalid_type,expected:ce.set,received:n.parsedType}),_e;let s=this._def;s.minSize!==null&&n.data.sizes.maxSize.value&&(te(n,{code:G.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),r.dirty());let i=this._def.valueType;function a(c){let l=new Set;for(let u of c){if(u.status==="aborted")return _e;u.status==="dirty"&&r.dirty(),l.add(u.value)}return{status:r.value,value:l}}let o=[...n.data.values()].map((c,l)=>i._parse(new Jn(n,c,n.path,l)));return n.common.async?Promise.all(o).then(c=>a(c)):a(o)}min(e,r){return new t({...this._def,minSize:{value:e,message:ue.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:ue.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Gd.create=(t,e)=>new Gd({valueType:t,minSize:null,maxSize:null,typeName:we.ZodSet,...Ie(e)});var lT=class t extends Me{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.function)return te(r,{code:G.invalid_type,expected:ce.function,received:r.parsedType}),_e;function n(o,c){return iT({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,sT(),$d].filter(l=>!!l),issueData:{code:G.invalid_arguments,argumentsError:c}})}function s(o,c){return iT({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,sT(),$d].filter(l=>!!l),issueData:{code:G.invalid_return_type,returnTypeError:c}})}let i={errorMap:r.common.contextualErrorMap},a=r.data;if(this._def.returns instanceof ao){let o=this;return gn(async function(...c){let l=new Kn([]),u=await o._def.args.parseAsync(c,i).catch(d=>{throw l.addIssue(n(c,d)),l}),p=await Reflect.apply(a,this,u);return await o._def.returns._def.type.parseAsync(p,i).catch(d=>{throw l.addIssue(s(p,d)),l})})}else{let o=this;return gn(function(...c){let l=o._def.args.safeParse(c,i);if(!l.success)throw new Kn([n(c,l.error)]);let u=Reflect.apply(a,this,l.data),p=o._def.returns.safeParse(u,i);if(!p.success)throw new Kn([s(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:mi.create(e).rest(Ki.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||mi.create([]).rest(Ki.create()),returns:r||Ki.create(),typeName:we.ZodFunction,...Ie(n)})}},il=class extends Me{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};il.create=(t,e)=>new il({getter:t,typeName:we.ZodLazy,...Ie(e)});var al=class extends Me{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return te(r,{received:r.data,code:G.invalid_literal,expected:this._def.value}),_e}return{status:"valid",value:e.data}}get value(){return this._def.value}};al.create=(t,e)=>new al({value:t,typeName:we.ZodLiteral,...Ie(e)});function e9(t,e){return new ol({values:t,typeName:we.ZodEnum,...Ie(e)})}var ol=class t extends Me{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return te(r,{expected:tt.joinValues(n),received:r.parsedType,code:G.invalid_type}),_e}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return te(r,{received:r.data,code:G.invalid_enum_value,options:n}),_e}return gn(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};ol.create=e9;var cl=class extends Me{_parse(e){let r=tt.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==ce.string&&n.parsedType!==ce.number){let s=tt.objectValues(r);return te(n,{expected:tt.joinValues(s),received:n.parsedType,code:G.invalid_type}),_e}if(this._cache||(this._cache=new Set(tt.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=tt.objectValues(r);return te(n,{received:n.data,code:G.invalid_enum_value,options:s}),_e}return gn(e.data)}get enum(){return this._def.values}};cl.create=(t,e)=>new cl({values:t,typeName:we.ZodNativeEnum,...Ie(e)});var ao=class extends Me{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.promise&&r.common.async===!1)return te(r,{code:G.invalid_type,expected:ce.promise,received:r.parsedType}),_e;let n=r.parsedType===ce.promise?r.data:Promise.resolve(r.data);return gn(n.then(s=>this._def.type.parseAsync(s,{path:r.path,errorMap:r.common.contextualErrorMap})))}};ao.create=(t,e)=>new ao({type:t,typeName:we.ZodPromise,...Ie(e)});var bs=class extends Me{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===we.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:a=>{te(n,a),a.fatal?r.abort():r.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let a=s.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async o=>{if(r.value==="aborted")return _e;let c=await this._def.schema._parseAsync({data:o,path:n.path,parent:n});return c.status==="aborted"?_e:c.status==="dirty"||r.value==="dirty"?Od(c.value):c});{if(r.value==="aborted")return _e;let o=this._def.schema._parseSync({data:a,path:n.path,parent:n});return o.status==="aborted"?_e:o.status==="dirty"||r.value==="dirty"?Od(o.value):o}}if(s.type==="refinement"){let a=o=>{let c=s.refinement(o,i);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?_e:(o.status==="dirty"&&r.dirty(),a(o.value),{status:r.value,value:o.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>o.status==="aborted"?_e:(o.status==="dirty"&&r.dirty(),a(o.value).then(()=>({status:r.value,value:o.value}))))}if(s.type==="transform")if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Xc(a))return _e;let o=s.transform(a.value,i);if(o instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:o}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>Xc(a)?Promise.resolve(s.transform(a.value,i)).then(o=>({status:r.value,value:o})):_e);tt.assertNever(s)}};bs.create=(t,e,r)=>new bs({schema:t,typeName:we.ZodEffects,effect:e,...Ie(r)});bs.createWithPreprocess=(t,e,r)=>new bs({schema:e,effect:{type:"preprocess",transform:t},typeName:we.ZodEffects,...Ie(r)});var vs=class extends Me{_parse(e){return this._getType(e)===ce.undefined?gn(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};vs.create=(t,e)=>new vs({innerType:t,typeName:we.ZodOptional,...Ie(e)});var fi=class extends Me{_parse(e){return this._getType(e)===ce.null?gn(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};fi.create=(t,e)=>new fi({innerType:t,typeName:we.ZodNullable,...Ie(e)});var ll=class extends Me{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===ce.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};ll.create=(t,e)=>new ll({innerType:t,typeName:we.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Ie(e)});var ul=class extends Me{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Jv(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Kn(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Kn(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};ul.create=(t,e)=>new ul({innerType:t,typeName:we.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Ie(e)});var Vd=class extends Me{_parse(e){if(this._getType(e)!==ce.nan){let r=this._getOrReturnCtx(e);return te(r,{code:G.invalid_type,expected:ce.nan,received:r.parsedType}),_e}return{status:"valid",value:e.data}}};Vd.create=t=>new Vd({typeName:we.ZodNaN,...Ie(t)});var Qv=class extends Me{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Yv=class t extends Me{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?_e:s.status==="dirty"?(r.dirty(),Od(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?_e:s.status==="dirty"?(r.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:we.ZodPipeline})}},pl=class extends Me{_parse(e){let r=this._def.innerType._parse(e),n=s=>(Xc(s)&&(s.value=Object.freeze(s.value)),s);return Jv(r)?r.then(s=>n(s)):n(r)}unwrap(){return this._def.innerType}};pl.create=(t,e)=>new pl({innerType:t,typeName:we.ZodReadonly,...Ie(e)});var r$e={object:Pn.lazycreate},we;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(we||(we={}));var n$e=el.create,s$e=Ld.create,i$e=Vd.create,a$e=Ud.create,o$e=qd.create,c$e=Fd.create,l$e=Hd.create,u$e=tl.create,p$e=rl.create,d$e=Bd.create,m$e=Ki.create,f$e=Hs.create,h$e=Wd.create,g$e=Qi.create,v$e=Pn.create,y$e=Pn.strictCreate,b$e=nl.create,x$e=aT.create,_$e=sl.create,w$e=mi.create,S$e=cT.create,E$e=Zd.create,k$e=Gd.create,T$e=lT.create,R$e=il.create,P$e=al.create,I$e=ol.create,C$e=cl.create,O$e=ao.create,A$e=bs.create,j$e=vs.create,N$e=fi.create,D$e=bs.createWithPreprocess,M$e=Yv.create,t9={};lo(t9,{version:()=>d5,util:()=>Be,treeifyError:()=>m9,toJSONSchema:()=>iB,toDotPath:()=>f9,safeParseAsync:()=>NT,safeParse:()=>AT,registry:()=>KT,regexes:()=>DT,prettifyError:()=>h9,parseAsync:()=>ry,parse:()=>ty,locales:()=>VT,isValidJWT:()=>M5,isValidBase64URL:()=>j5,isValidBase64:()=>LT,globalRegistry:()=>to,globalConfig:()=>Xv,function:()=>sB,formatError:()=>PT,flattenError:()=>RT,config:()=>Yr,clone:()=>ws,_xid:()=>oR,_void:()=>HH,_uuidv7:()=>eR,_uuidv6:()=>XT,_uuidv4:()=>YT,_uuid:()=>QT,_url:()=>tR,_uppercase:()=>xR,_unknown:()=>ay,_union:()=>W_e,_undefined:()=>LH,_ulid:()=>aR,_uint64:()=>zH,_uint32:()=>OH,_tuple:()=>YH,_trim:()=>TR,_transform:()=>e0e,_toUpperCase:()=>PR,_toLowerCase:()=>RR,_templateLiteral:()=>l0e,_symbol:()=>$H,_success:()=>i0e,_stringbool:()=>rB,_stringFormat:()=>nB,_string:()=>yH,_startsWith:()=>wR,_size:()=>vR,_set:()=>J_e,_safeParseAsync:()=>jT,_safeParse:()=>OT,_regex:()=>yR,_refine:()=>tB,_record:()=>V_e,_readonly:()=>c0e,_property:()=>QH,_promise:()=>p0e,_positive:()=>GH,_pipe:()=>o0e,_parseAsync:()=>CT,_parse:()=>IT,_overwrite:()=>mo,_optional:()=>t0e,_number:()=>kH,_nullable:()=>r0e,_null:()=>UH,_normalize:()=>kR,_nonpositive:()=>KH,_nonoptional:()=>s0e,_nonnegative:()=>JH,_never:()=>FH,_negative:()=>VH,_nativeEnum:()=>Y_e,_nanoid:()=>nR,_nan:()=>ZH,_multipleOf:()=>Yd,_minSize:()=>Xd,_minLength:()=>ml,_min:()=>kn,_mime:()=>ER,_maxSize:()=>Ey,_maxLength:()=>ky,_max:()=>ys,_map:()=>K_e,_lte:()=>ys,_lt:()=>oo,_lowercase:()=>bR,_literal:()=>X_e,_length:()=>Ty,_lazy:()=>u0e,_ksuid:()=>cR,_jwt:()=>gR,_isoTime:()=>SH,_isoDuration:()=>EH,_isoDateTime:()=>_H,_isoDate:()=>wH,_ipv6:()=>uR,_ipv4:()=>lR,_intersection:()=>G_e,_int64:()=>MH,_int32:()=>CH,_int:()=>RH,_includes:()=>_R,_guid:()=>iy,_gte:()=>kn,_gt:()=>co,_float64:()=>IH,_float32:()=>PH,_file:()=>XH,_enum:()=>Q_e,_endsWith:()=>SR,_emoji:()=>rR,_email:()=>JT,_e164:()=>hR,_discriminatedUnion:()=>Z_e,_default:()=>n0e,_date:()=>BH,_custom:()=>eB,_cuid2:()=>iR,_cuid:()=>sR,_coercedString:()=>bH,_coercedNumber:()=>TH,_coercedDate:()=>WH,_coercedBoolean:()=>jH,_coercedBigint:()=>DH,_cidrv6:()=>dR,_cidrv4:()=>pR,_catch:()=>a0e,_boolean:()=>AH,_bigint:()=>NH,_base64url:()=>fR,_base64:()=>mR,_array:()=>IR,_any:()=>qH,TimePrecision:()=>xH,NEVER:()=>r9,JSONSchemaGenerator:()=>em,JSONSchema:()=>d0e,Doc:()=>ny,$output:()=>gH,$input:()=>vH,$constructor:()=>j,$brand:()=>n9,$ZodXID:()=>w5,$ZodVoid:()=>Z5,$ZodUnknown:()=>sy,$ZodUnion:()=>WT,$ZodUndefined:()=>F5,$ZodUUID:()=>f5,$ZodURL:()=>g5,$ZodULID:()=>_5,$ZodType:()=>Pe,$ZodTuple:()=>Sy,$ZodTransform:()=>ZT,$ZodTemplateLiteral:()=>pH,$ZodSymbol:()=>q5,$ZodSuccess:()=>oH,$ZodStringFormat:()=>kt,$ZodString:()=>sm,$ZodSet:()=>Y5,$ZodRegistry:()=>Qd,$ZodRecord:()=>J5,$ZodRealError:()=>rm,$ZodReadonly:()=>uH,$ZodPromise:()=>dH,$ZodPrefault:()=>iH,$ZodPipe:()=>GT,$ZodOptional:()=>rH,$ZodObject:()=>BT,$ZodNumberFormat:()=>L5,$ZodNumber:()=>UT,$ZodNullable:()=>nH,$ZodNull:()=>H5,$ZodNonOptional:()=>aH,$ZodNever:()=>W5,$ZodNanoID:()=>y5,$ZodNaN:()=>lH,$ZodMap:()=>Q5,$ZodLiteral:()=>eH,$ZodLazy:()=>mH,$ZodKSUID:()=>S5,$ZodJWT:()=>z5,$ZodIntersection:()=>K5,$ZodISOTime:()=>T5,$ZodISODuration:()=>R5,$ZodISODateTime:()=>E5,$ZodISODate:()=>k5,$ZodIPv6:()=>I5,$ZodIPv4:()=>P5,$ZodGUID:()=>m5,$ZodFunction:()=>oy,$ZodFile:()=>tH,$ZodError:()=>TT,$ZodEnum:()=>X5,$ZodEmoji:()=>v5,$ZodEmail:()=>h5,$ZodE164:()=>D5,$ZodDiscriminatedUnion:()=>V5,$ZodDefault:()=>sH,$ZodDate:()=>G5,$ZodCustomStringFormat:()=>$5,$ZodCustom:()=>fH,$ZodCheckUpperCase:()=>i5,$ZodCheckStringFormat:()=>nm,$ZodCheckStartsWith:()=>o5,$ZodCheckSizeEquals:()=>X9,$ZodCheckRegex:()=>n5,$ZodCheckProperty:()=>l5,$ZodCheckOverwrite:()=>p5,$ZodCheckNumberFormat:()=>K9,$ZodCheckMultipleOf:()=>V9,$ZodCheckMinSize:()=>Y9,$ZodCheckMinLength:()=>t5,$ZodCheckMimeType:()=>u5,$ZodCheckMaxSize:()=>Q9,$ZodCheckMaxLength:()=>e5,$ZodCheckLowerCase:()=>s5,$ZodCheckLessThan:()=>zT,$ZodCheckLengthEquals:()=>r5,$ZodCheckIncludes:()=>a5,$ZodCheckGreaterThan:()=>$T,$ZodCheckEndsWith:()=>c5,$ZodCheckBigIntFormat:()=>J9,$ZodCheck:()=>Yt,$ZodCatch:()=>cH,$ZodCUID2:()=>x5,$ZodCUID:()=>b5,$ZodCIDRv6:()=>O5,$ZodCIDRv4:()=>C5,$ZodBoolean:()=>qT,$ZodBigIntFormat:()=>U5,$ZodBigInt:()=>FT,$ZodBase64URL:()=>N5,$ZodBase64:()=>A5,$ZodAsyncError:()=>Yi,$ZodArray:()=>HT,$ZodAny:()=>B5});var r9=Object.freeze({status:"aborted"});function j(t,e,r){function n(o,c){var l;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(l=o._zod).traits??(l.traits=new Set),o._zod.traits.add(t),e(o,c);for(let u in a.prototype)u in o||Object.defineProperty(o,u,{value:a.prototype[u].bind(o)});o._zod.constr=a,o._zod.def=c}let s=r?.Parent??Object;class i extends s{}Object.defineProperty(i,"name",{value:t});function a(o){var c;let l=r?.Parent?new i:this;n(l,o),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:o=>r?.Parent&&o instanceof r.Parent?!0:o?._zod?.traits?.has(t)}),Object.defineProperty(a,"name",{value:t}),a}var n9=Symbol("zod_brand"),Yi=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Xv={};function Yr(t){return t&&Object.assign(Xv,t),Xv}var Be={};lo(Be,{unwrapMessage:()=>Ad,stringifyPrimitive:()=>Oe,required:()=>oxe,randomString:()=>Ybe,propertyKeyTypes:()=>ey,promiseAllObject:()=>Qbe,primitiveTypes:()=>o9,prefixIssues:()=>Vn,pick:()=>rxe,partial:()=>axe,optionalKeys:()=>c9,omit:()=>nxe,numKeys:()=>Xbe,nullish:()=>uo,normalizeParams:()=>J,merge:()=>ixe,jsonStringifyReplacer:()=>s9,joinValues:()=>ee,issue:()=>p9,isPlainObject:()=>Jd,isObject:()=>Kd,getSizableOrigin:()=>_y,getParsedType:()=>exe,getLengthableOrigin:()=>wy,getEnumValues:()=>ST,getElementAtPath:()=>Jbe,floatSafeRemainder:()=>i9,finalizeIssue:()=>xs,extend:()=>sxe,escapeRegex:()=>po,esc:()=>Zc,defineLazy:()=>dt,createTransparentProxy:()=>txe,clone:()=>ws,cleanRegex:()=>xy,cleanEnum:()=>cxe,captureStackTrace:()=>kT,cached:()=>by,assignProp:()=>ET,assertNotEqual:()=>Zbe,assertNever:()=>Vbe,assertIs:()=>Gbe,assertEqual:()=>Wbe,assert:()=>Kbe,allowsEval:()=>a9,aborted:()=>Jc,NUMBER_FORMAT_RANGES:()=>l9,Class:()=>uT,BIGINT_FORMAT_RANGES:()=>u9});function Wbe(t){return t}function Zbe(t){return t}function Gbe(t){}function Vbe(t){throw Error()}function Kbe(t){}function ST(t){let e=Object.values(t).filter(r=>typeof r=="number");return Object.entries(t).filter(([r,n])=>e.indexOf(+r)===-1).map(([r,n])=>n)}function ee(t,e="|"){return t.map(r=>Oe(r)).join(e)}function s9(t,e){return typeof e=="bigint"?e.toString():e}function by(t){return{get value(){{let e=t();return Object.defineProperty(this,"value",{value:e}),e}throw Error("cached value already set")}}}function uo(t){return t==null}function xy(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function i9(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}function dt(t,e,r){Object.defineProperty(t,e,{get(){{let n=r();return t[e]=n,n}throw Error("cached value already set")},set(n){Object.defineProperty(t,e,{value:n})},configurable:!0})}function ET(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Jbe(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function Qbe(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let s={};for(let i=0;i{};function Kd(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var a9=by(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch{return!1}});function Jd(t){if(Kd(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(Kd(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Xbe(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var exe=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw Error(`Unknown data type: ${e}`)}},ey=new Set(["string","number","symbol"]),o9=new Set(["string","number","bigint","boolean","symbol","undefined"]);function po(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ws(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function J(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function txe(t){let e;return new Proxy({},{get(r,n,s){return e??(e=t()),Reflect.get(e,n,s)},set(r,n,s,i){return e??(e=t()),Reflect.set(e,n,s,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,s){return e??(e=t()),Reflect.defineProperty(e,n,s)}})}function Oe(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function c9(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var l9={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},u9={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function rxe(t,e){let r={},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw Error(`Unrecognized key: "${s}"`);e[s]&&(r[s]=n.shape[s])}return ws(t,{...t._zod.def,shape:r,checks:[]})}function nxe(t,e){let r={...t._zod.def.shape},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw Error(`Unrecognized key: "${s}"`);e[s]&&delete r[s]}return ws(t,{...t._zod.def,shape:r,checks:[]})}function sxe(t,e){if(!Jd(e))throw Error("Invalid input to extend: expected a plain object");let r={...t._zod.def,get shape(){let n={...t._zod.def.shape,...e};return ET(this,"shape",n),n},checks:[]};return ws(t,r)}function ixe(t,e){return ws(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return ET(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function axe(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in n))throw Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=t?new t({type:"optional",innerType:n[i]}):n[i])}else for(let i in n)s[i]=t?new t({type:"optional",innerType:n[i]}):n[i];return ws(e,{...e._zod.def,shape:s,checks:[]})}function oxe(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in s))throw Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new t({type:"nonoptional",innerType:n[i]}))}else for(let i in n)s[i]=new t({type:"nonoptional",innerType:n[i]});return ws(e,{...e._zod.def,shape:s,checks:[]})}function Jc(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Ad(t){return typeof t=="string"?t:t?.message}function xs(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let s=Ad(t.inst?._zod.def?.error?.(t))??Ad(e?.error?.(t))??Ad(r.customError?.(t))??Ad(r.localeError?.(t))??"Invalid input";n.message=s}return delete n.inst,delete n.continue,!e?.reportInput&&delete n.input,n}function _y(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function wy(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function p9(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function cxe(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var uT=class{constructor(...e){}},d9=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(e,s9,2)},enumerable:!0})},TT=j("$ZodError",d9),rm=j("$ZodError",d9,{Parent:Error});function RT(t,e=r=>r.message){let r={},n=[];for(let s of t.issues)s.path.length>0?(r[s.path[0]]=r[s.path[0]]||[],r[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:r}}function PT(t,e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>s({issues:o}));else if(a.code==="invalid_key")s({issues:a.issues});else if(a.code==="invalid_element")s({issues:a.issues});else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;c{var o,c;for(let l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(u=>s({issues:u},l.path));else if(l.code==="invalid_key")s({issues:l.issues},l.path);else if(l.code==="invalid_element")s({issues:l.issues},l.path);else{let u=[...a,...l.path];if(u.length===0){n.errors.push(r(l));continue}let p=n,d=0;for(;dn.path.length-s.path.length);for(let n of r)e.push(`\u2716 ${n.message}`),n.path?.length&&e.push(` \u2192 at ${f9(n.path)}`);return e.join(` +`)}var IT=t=>(e,r,n,s)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new Yi;if(a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>xs(c,i,Yr())));throw kT(o,s?.callee),o}return a.value},ty=IT(rm),CT=t=>async(e,r,n,s)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>xs(c,i,Yr())));throw kT(o,s?.callee),o}return a.value},ry=CT(rm),OT=t=>(e,r,n)=>{let s=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Yi;return i.issues.length?{success:!1,error:new(t??TT)(i.issues.map(a=>xs(a,s,Yr())))}:{success:!0,data:i.value}},AT=OT(rm),jT=t=>async(e,r,n)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=e._zod.run({value:r,issues:[]},s);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(a=>xs(a,s,Yr())))}:{success:!0,data:i.value}},NT=jT(rm),DT={};lo(DT,{xid:()=>b9,uuid7:()=>dxe,uuid6:()=>pxe,uuid4:()=>uxe,uuid:()=>dl,uppercase:()=>Z9,unicodeEmail:()=>hxe,undefined:()=>B9,ulid:()=>y9,time:()=>M9,string:()=>$9,rfc5322Email:()=>fxe,number:()=>q9,null:()=>H9,nanoid:()=>_9,lowercase:()=>W9,ksuid:()=>x9,ipv6:()=>R9,ipv4:()=>T9,integer:()=>U9,html5Email:()=>mxe,hostname:()=>O9,guid:()=>S9,extendedDuration:()=>lxe,emoji:()=>k9,email:()=>E9,e164:()=>A9,duration:()=>w9,domain:()=>yxe,datetime:()=>z9,date:()=>N9,cuid2:()=>v9,cuid:()=>g9,cidrv6:()=>I9,cidrv4:()=>P9,browserEmail:()=>gxe,boolean:()=>F9,bigint:()=>L9,base64url:()=>MT,base64:()=>C9,_emoji:()=>vxe});var g9=/^[cC][^\s-]{8,}$/,v9=/^[0-9a-z]+$/,y9=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,b9=/^[0-9a-vA-V]{20}$/,x9=/^[A-Za-z0-9]{27}$/,_9=/^[a-zA-Z0-9_-]{21}$/,w9=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,lxe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,S9=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,dl=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,uxe=dl(4),pxe=dl(6),dxe=dl(7),E9=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,mxe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,fxe=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,hxe=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,gxe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,vxe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function k9(){return new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")}var T9=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,R9=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,P9=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,I9=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,C9=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,MT=/^[A-Za-z0-9_-]*$/,O9=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,yxe=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,A9=/^\+(?:[0-9]){6,14}[0-9]$/,j9="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",N9=new RegExp(`^${j9}$`);function D9(t){return typeof t.precision=="number"?t.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":t.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${t.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function M9(t){return new RegExp(`^${D9(t)}$`)}function z9(t){let e=D9({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-]\\d{2}:\\d{2})");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${j9}T(?:${n})$`)}var $9=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},L9=/^\d+n?$/,U9=/^\d+$/,q9=/^-?\d+(?:\.\d+)?/i,F9=/true|false/i,H9=/null/i,B9=/undefined/i,W9=/^[^A-Z]*$/,Z9=/^[^a-z]*$/,Yt=j("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),G9={number:"number",bigint:"bigint",object:"date"},zT=j("$ZodCheckLessThan",(t,e)=>{Yt.init(t,e);let r=G9[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.maximum:s.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{Yt.init(t,e);let r=G9[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.minimum:s.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?s.minimum=e.value:s.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),V9=j("$ZodCheckMultipleOf",(t,e)=>{Yt.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):i9(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),K9=j("$ZodCheckNumberFormat",(t,e)=>{Yt.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[s,i]=l9[e.format];t._zod.onattach.push(a=>{let o=a._zod.bag;o.format=e.format,o.minimum=s,o.maximum=i,r&&(o.pattern=U9)}),t._zod.check=a=>{let o=a.value;if(r){if(!Number.isInteger(o)){a.issues.push({expected:n,format:e.format,code:"invalid_type",input:o,inst:t});return}if(!Number.isSafeInteger(o)){o>0?a.issues.push({input:o,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort}):a.issues.push({input:o,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort});return}}oi&&a.issues.push({origin:"number",input:o,code:"too_big",maximum:i,inst:t})}}),J9=j("$ZodCheckBigIntFormat",(t,e)=>{Yt.init(t,e);let[r,n]=u9[e.format];t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,i.minimum=r,i.maximum=n}),t._zod.check=s=>{let i=s.value;in&&s.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inst:t})}}),Q9=j("$ZodCheckMaxSize",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!uo(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let n=r.value;n.size<=e.maximum||r.issues.push({origin:_y(n),code:"too_big",maximum:e.maximum,input:n,inst:t,continue:!e.abort})}}),Y9=j("$ZodCheckMinSize",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!uo(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>n&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let n=r.value;n.size>=e.minimum||r.issues.push({origin:_y(n),code:"too_small",minimum:e.minimum,input:n,inst:t,continue:!e.abort})}}),X9=j("$ZodCheckSizeEquals",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!uo(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag;n.minimum=e.size,n.maximum=e.size,n.size=e.size}),t._zod.check=r=>{let n=r.value,s=n.size;if(s===e.size)return;let i=s>e.size;r.issues.push({origin:_y(n),...i?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),e5=j("$ZodCheckMaxLength",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!uo(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let n=r.value;if(n.length<=e.maximum)return;let s=wy(n);r.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),t5=j("$ZodCheckMinLength",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!uo(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>n&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let n=r.value;if(n.length>=e.minimum)return;let s=wy(n);r.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),r5=j("$ZodCheckLengthEquals",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!uo(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag;n.minimum=e.length,n.maximum=e.length,n.length=e.length}),t._zod.check=r=>{let n=r.value,s=n.length;if(s===e.length)return;let i=wy(n),a=s>e.length;r.issues.push({origin:i,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),nm=j("$ZodCheckStringFormat",(t,e)=>{var r,n;Yt.init(t,e),t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=s=>{e.pattern.lastIndex=0,!e.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:e.format,input:s.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),n5=j("$ZodCheckRegex",(t,e)=>{nm.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),s5=j("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=W9),nm.init(t,e)}),i5=j("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Z9),nm.init(t,e)}),a5=j("$ZodCheckIncludes",(t,e)=>{Yt.init(t,e);let r=po(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(s=>{let i=s._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=s=>{s.value.includes(e.includes,e.position)||s.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:s.value,inst:t,continue:!e.abort})}}),o5=j("$ZodCheckStartsWith",(t,e)=>{Yt.init(t,e);let r=new RegExp(`^${po(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),c5=j("$ZodCheckEndsWith",(t,e)=>{Yt.init(t,e);let r=new RegExp(`.*${po(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});function LF(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues))}var l5=j("$ZodCheckProperty",(t,e)=>{Yt.init(t,e),t._zod.check=r=>{let n=e.schema._zod.run({value:r.value[e.property],issues:[]},{});if(n instanceof Promise)return n.then(s=>LF(s,r,e.property));LF(n,r,e.property)}}),u5=j("$ZodCheckMimeType",(t,e)=>{Yt.init(t,e);let r=new Set(e.mime);t._zod.onattach.push(n=>{n._zod.bag.mime=e.mime}),t._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:e.mime,input:n.value.type,inst:t})}}),p5=j("$ZodCheckOverwrite",(t,e)=>{Yt.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}}),ny=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let r=e.split(` `).filter(i=>i),n=Math.min(...r.map(i=>i.length-i.trimStart().length)),s=r.map(i=>i.slice(n)).map(i=>" ".repeat(this.indent*2)+i);for(let i of s)this.content.push(i)}compile(){let e=Function,r=this?.args,n=[...(this?.content??[""]).map(s=>` ${s}`)];return new e(...r,n.join(` -`))}},g5={major:4,minor:0,patch:0},Pe=j("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=g5;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let s of n)for(let i of s._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let s=(i,a,o)=>{let c=Qc(i),l;for(let u of a){if(u._zod.when){if(!u._zod.when(i))continue}else if(c)continue;let p=i.issues.length,d=u._zod.check(i);if(d instanceof Promise&&o?.async===!1)throw new Yi;if(l||d instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await d,i.issues.length!==p&&(c||(c=Qc(i,p)))});else{if(i.issues.length===p)continue;c||(c=Qc(i,p))}}return l?l.then(()=>i):i};t._zod.run=(i,a)=>{let o=t._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new Yi;return o.then(c=>s(c,n,a))}return s(o,n,a)}}t["~standard"]={validate:s=>{try{let i=DT(t,s);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return zT(t,s).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}}),im=j("$ZodString",(t,e)=>{Pe.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??F9(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),Et=j("$ZodStringFormat",(t,e)=>{sm.init(t,e),im.init(t,e)}),v5=j("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=R9),Et.init(t,e)}),y5=j("$ZodUUID",(t,e)=>{if(e.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(r===void 0)throw Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=ml(r))}else e.pattern??(e.pattern=ml());Et.init(t,e)}),b5=j("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=P9),Et.init(t,e)}),x5=j("$ZodURL",(t,e)=>{Et.init(t,e),t._zod.check=r=>{try{let n=r.value,s=new URL(n),i=s.href;e.hostname&&(e.hostname.lastIndex=0,!e.hostname.test(s.hostname)&&r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:D9.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,!e.protocol.test(s.protocol.endsWith(":")?s.protocol.slice(0,-1):s.protocol)&&r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),!n.endsWith("/")&&i.endsWith("/")?r.value=i.slice(0,-1):r.value=i;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),_5=j("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=I9()),Et.init(t,e)}),w5=j("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=E9),Et.init(t,e)}),S5=j("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=x9),Et.init(t,e)}),k5=j("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=_9),Et.init(t,e)}),E5=j("$ZodULID",(t,e)=>{e.pattern??(e.pattern=w9),Et.init(t,e)}),T5=j("$ZodXID",(t,e)=>{e.pattern??(e.pattern=S9),Et.init(t,e)}),R5=j("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=k9),Et.init(t,e)}),P5=j("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=q9(e)),Et.init(t,e)}),I5=j("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=$9),Et.init(t,e)}),C5=j("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=U9(e)),Et.init(t,e)}),O5=j("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=T9),Et.init(t,e)}),A5=j("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=C9),Et.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),j5=j("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=O9),Et.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv6"}),t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),N5=j("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=A9),Et.init(t,e)}),D5=j("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=j9),Et.init(t,e),t._zod.check=r=>{let[n,s]=r.value.split("/");try{if(!s)throw Error();let i=Number(s);if(`${i}`!==s||i<0||i>128)throw Error();new URL(`http://[${n}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function FT(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var M5=j("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=N9),Et.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{FT(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function z5(t){if(!LT.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return FT(r)}var $5=j("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=LT),Et.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{z5(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),L5=j("$ZodE164",(t,e)=>{e.pattern??(e.pattern=M9),Et.init(t,e)});function U5(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let s=JSON.parse(atob(n));return!("typ"in s&&s?.typ!=="JWT"||!s.alg||e&&(!("alg"in s)||s.alg!==e))}catch{return!1}}var q5=j("$ZodJWT",(t,e)=>{Et.init(t,e),t._zod.check=r=>{U5(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),F5=j("$ZodCustomStringFormat",(t,e)=>{Et.init(t,e),t._zod.check=r=>{e.fn(r.value)||r.issues.push({code:"invalid_format",format:e.format,input:r.value,inst:t,continue:!e.abort})}}),HT=j("$ZodNumber",(t,e)=>{Pe.init(t,e),t._zod.pattern=t._zod.bag.pattern??W9,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let s=r.value;if(typeof s=="number"&&!Number.isNaN(s)&&Number.isFinite(s))return r;let i=typeof s=="number"?Number.isNaN(s)?"NaN":Number.isFinite(s)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:s,inst:t,...i?{received:i}:{}}),r}}),H5=j("$ZodNumber",(t,e)=>{X9.init(t,e),HT.init(t,e)}),BT=j("$ZodBoolean",(t,e)=>{Pe.init(t,e),t._zod.pattern=Z9,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let s=r.value;return typeof s=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:s,inst:t}),r}}),WT=j("$ZodBigInt",(t,e)=>{Pe.init(t,e),t._zod.pattern=H9,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:t}),r}}),B5=j("$ZodBigInt",(t,e)=>{e5.init(t,e),WT.init(t,e)}),W5=j("$ZodSymbol",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;return typeof s=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:s,inst:t}),r}}),Z5=j("$ZodUndefined",(t,e)=>{Pe.init(t,e),t._zod.pattern=V9,t._zod.values=new Set([void 0]),t._zod.optin="optional",t._zod.optout="optional",t._zod.parse=(r,n)=>{let s=r.value;return typeof s>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:s,inst:t}),r}}),G5=j("$ZodNull",(t,e)=>{Pe.init(t,e),t._zod.pattern=G9,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let s=r.value;return s===null||r.issues.push({expected:"null",code:"invalid_type",input:s,inst:t}),r}}),V5=j("$ZodAny",(t,e)=>{Pe.init(t,e),t._zod.parse=r=>r}),ay=j("$ZodUnknown",(t,e)=>{Pe.init(t,e),t._zod.parse=r=>r}),K5=j("$ZodNever",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)}),J5=j("$ZodVoid",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;return typeof s>"u"||r.issues.push({expected:"void",code:"invalid_type",input:s,inst:t}),r}}),Q5=j("$ZodDate",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let s=r.value,i=s instanceof Date;return i&&!Number.isNaN(s.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:s,...i?{received:"Invalid Date"}:{},inst:t}),r}});function BF(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues)),e.value[r]=t.value}var ZT=j("$ZodArray",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!Array.isArray(s))return r.issues.push({expected:"array",code:"invalid_type",input:s,inst:t}),r;r.value=Array(s.length);let i=[];for(let a=0;aBF(l,r,a))):BF(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function bv(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues)),e.value[r]=t.value}function WF(t,e,r,n){t.issues.length?n[r]===void 0?r in n?e.value[r]=void 0:e.value[r]=t.value:e.issues.push(...Vn(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var GT=j("$ZodObject",(t,e)=>{Pe.init(t,e);let r=_y(()=>{let u=Object.keys(e.shape);for(let d of u)if(!(e.shape[d]instanceof Pe))throw Error(`Invalid element at key "${d}": expected a Zod schema`);let p=d9(e.shape);return{shape:e.shape,keys:u,keySet:new Set(u),numKeys:u.length,optionalKeys:new Set(p)}});dt(t._zod,"propValues",()=>{let u=e.shape,p={};for(let d in u){let m=u[d]._zod;if(m.values){p[d]??(p[d]=new Set);for(let f of m.values)p[d].add(f)}}return p});let n=u=>{let p=new iy(["shape","payload","ctx"]),d=r.value,m=h=>{let y=Gc(h);return`shape[${y}]._zod.run({ value: input[${y}], issues: [] }, ctx)`};p.write("const input = payload.value;");let f=Object.create(null),g=0;for(let h of d.keys)f[h]=`key_${g++}`;p.write("const newResult = {}");for(let h of d.keys)if(d.optionalKeys.has(h)){let y=f[h];p.write(`const ${y} = ${m(h)};`);let b=Gc(h);p.write(` +`))}},d5={major:4,minor:0,patch:0},Pe=j("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=d5;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let s of n)for(let i of s._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let s=(i,a,o)=>{let c=Jc(i),l;for(let u of a){if(u._zod.when){if(!u._zod.when(i))continue}else if(c)continue;let p=i.issues.length,d=u._zod.check(i);if(d instanceof Promise&&o?.async===!1)throw new Yi;if(l||d instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await d,i.issues.length!==p&&(c||(c=Jc(i,p)))});else{if(i.issues.length===p)continue;c||(c=Jc(i,p))}}return l?l.then(()=>i):i};t._zod.run=(i,a)=>{let o=t._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new Yi;return o.then(c=>s(c,n,a))}return s(o,n,a)}}t["~standard"]={validate:s=>{try{let i=AT(t,s);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return NT(t,s).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}}),sm=j("$ZodString",(t,e)=>{Pe.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??$9(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),kt=j("$ZodStringFormat",(t,e)=>{nm.init(t,e),sm.init(t,e)}),m5=j("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=S9),kt.init(t,e)}),f5=j("$ZodUUID",(t,e)=>{if(e.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(r===void 0)throw Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=dl(r))}else e.pattern??(e.pattern=dl());kt.init(t,e)}),h5=j("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=E9),kt.init(t,e)}),g5=j("$ZodURL",(t,e)=>{kt.init(t,e),t._zod.check=r=>{try{let n=r.value,s=new URL(n),i=s.href;e.hostname&&(e.hostname.lastIndex=0,!e.hostname.test(s.hostname)&&r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:O9.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,!e.protocol.test(s.protocol.endsWith(":")?s.protocol.slice(0,-1):s.protocol)&&r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),!n.endsWith("/")&&i.endsWith("/")?r.value=i.slice(0,-1):r.value=i;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),v5=j("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=k9()),kt.init(t,e)}),y5=j("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=_9),kt.init(t,e)}),b5=j("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=g9),kt.init(t,e)}),x5=j("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=v9),kt.init(t,e)}),_5=j("$ZodULID",(t,e)=>{e.pattern??(e.pattern=y9),kt.init(t,e)}),w5=j("$ZodXID",(t,e)=>{e.pattern??(e.pattern=b9),kt.init(t,e)}),S5=j("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=x9),kt.init(t,e)}),E5=j("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=z9(e)),kt.init(t,e)}),k5=j("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=N9),kt.init(t,e)}),T5=j("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=M9(e)),kt.init(t,e)}),R5=j("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=w9),kt.init(t,e)}),P5=j("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=T9),kt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),I5=j("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=R9),kt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv6"}),t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),C5=j("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=P9),kt.init(t,e)}),O5=j("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=I9),kt.init(t,e),t._zod.check=r=>{let[n,s]=r.value.split("/");try{if(!s)throw Error();let i=Number(s);if(`${i}`!==s||i<0||i>128)throw Error();new URL(`http://[${n}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function LT(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var A5=j("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=C9),kt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{LT(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function j5(t){if(!MT.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return LT(r)}var N5=j("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=MT),kt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{j5(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),D5=j("$ZodE164",(t,e)=>{e.pattern??(e.pattern=A9),kt.init(t,e)});function M5(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let s=JSON.parse(atob(n));return!("typ"in s&&s?.typ!=="JWT"||!s.alg||e&&(!("alg"in s)||s.alg!==e))}catch{return!1}}var z5=j("$ZodJWT",(t,e)=>{kt.init(t,e),t._zod.check=r=>{M5(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),$5=j("$ZodCustomStringFormat",(t,e)=>{kt.init(t,e),t._zod.check=r=>{e.fn(r.value)||r.issues.push({code:"invalid_format",format:e.format,input:r.value,inst:t,continue:!e.abort})}}),UT=j("$ZodNumber",(t,e)=>{Pe.init(t,e),t._zod.pattern=t._zod.bag.pattern??q9,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let s=r.value;if(typeof s=="number"&&!Number.isNaN(s)&&Number.isFinite(s))return r;let i=typeof s=="number"?Number.isNaN(s)?"NaN":Number.isFinite(s)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:s,inst:t,...i?{received:i}:{}}),r}}),L5=j("$ZodNumber",(t,e)=>{K9.init(t,e),UT.init(t,e)}),qT=j("$ZodBoolean",(t,e)=>{Pe.init(t,e),t._zod.pattern=F9,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let s=r.value;return typeof s=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:s,inst:t}),r}}),FT=j("$ZodBigInt",(t,e)=>{Pe.init(t,e),t._zod.pattern=L9,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:t}),r}}),U5=j("$ZodBigInt",(t,e)=>{J9.init(t,e),FT.init(t,e)}),q5=j("$ZodSymbol",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;return typeof s=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:s,inst:t}),r}}),F5=j("$ZodUndefined",(t,e)=>{Pe.init(t,e),t._zod.pattern=B9,t._zod.values=new Set([void 0]),t._zod.optin="optional",t._zod.optout="optional",t._zod.parse=(r,n)=>{let s=r.value;return typeof s>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:s,inst:t}),r}}),H5=j("$ZodNull",(t,e)=>{Pe.init(t,e),t._zod.pattern=H9,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let s=r.value;return s===null||r.issues.push({expected:"null",code:"invalid_type",input:s,inst:t}),r}}),B5=j("$ZodAny",(t,e)=>{Pe.init(t,e),t._zod.parse=r=>r}),sy=j("$ZodUnknown",(t,e)=>{Pe.init(t,e),t._zod.parse=r=>r}),W5=j("$ZodNever",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)}),Z5=j("$ZodVoid",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;return typeof s>"u"||r.issues.push({expected:"void",code:"invalid_type",input:s,inst:t}),r}}),G5=j("$ZodDate",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let s=r.value,i=s instanceof Date;return i&&!Number.isNaN(s.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:s,...i?{received:"Invalid Date"}:{},inst:t}),r}});function UF(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues)),e.value[r]=t.value}var HT=j("$ZodArray",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!Array.isArray(s))return r.issues.push({expected:"array",code:"invalid_type",input:s,inst:t}),r;r.value=Array(s.length);let i=[];for(let a=0;aUF(l,r,a))):UF(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function vv(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues)),e.value[r]=t.value}function qF(t,e,r,n){t.issues.length?n[r]===void 0?r in n?e.value[r]=void 0:e.value[r]=t.value:e.issues.push(...Vn(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var BT=j("$ZodObject",(t,e)=>{Pe.init(t,e);let r=by(()=>{let u=Object.keys(e.shape);for(let d of u)if(!(e.shape[d]instanceof Pe))throw Error(`Invalid element at key "${d}": expected a Zod schema`);let p=c9(e.shape);return{shape:e.shape,keys:u,keySet:new Set(u),numKeys:u.length,optionalKeys:new Set(p)}});dt(t._zod,"propValues",()=>{let u=e.shape,p={};for(let d in u){let m=u[d]._zod;if(m.values){p[d]??(p[d]=new Set);for(let f of m.values)p[d].add(f)}}return p});let n=u=>{let p=new ny(["shape","payload","ctx"]),d=r.value,m=h=>{let y=Zc(h);return`shape[${y}]._zod.run({ value: input[${y}], issues: [] }, ctx)`};p.write("const input = payload.value;");let f=Object.create(null),g=0;for(let h of d.keys)f[h]=`key_${g++}`;p.write("const newResult = {}");for(let h of d.keys)if(d.optionalKeys.has(h)){let y=f[h];p.write(`const ${y} = ${m(h)};`);let b=Zc(h);p.write(` if (${y}.issues.length) { if (input[${b}] === undefined) { if (${b} in input) { @@ -1354,14 +1354,14 @@ new Anthropic({ apiKey, dangerouslyAllowBrowser: true }); `)}else{let y=f[h];p.write(`const ${y} = ${m(h)};`),p.write(` if (${y}.issues.length) payload.issues = payload.issues.concat(${y}.issues.map(iss => ({ ...iss, - path: iss.path ? [${Gc(h)}, ...iss.path] : [${Gc(h)}] - })));`),p.write(`newResult[${Gc(h)}] = ${y}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let v=p.compile();return(h,y)=>v(u,h,y)},s,i=Jd,a=!ty.jitless,o=a&&u9.value,c=e.catchall,l;t._zod.parse=(u,p)=>{l??(l=r.value);let d=u.value;if(!i(d))return u.issues.push({expected:"object",code:"invalid_type",input:d,inst:t}),u;let m=[];if(a&&o&&p?.async===!1&&p.jitless!==!0)s||(s=n(e.shape)),u=s(u,p);else{u.value={};let y=l.shape;for(let b of l.keys){let x=y[b],w=x._zod.run({value:d[b],issues:[]},p),S=x._zod.optin==="optional"&&x._zod.optout==="optional";w instanceof Promise?m.push(w.then(k=>S?WF(k,u,b,d):bv(k,u,b))):S?WF(w,u,b,d):bv(w,u,b)}}if(!c)return m.length?Promise.all(m).then(()=>u):u;let f=[],g=l.keySet,v=c._zod,h=v.def.type;for(let y of Object.keys(d)){if(g.has(y))continue;if(h==="never"){f.push(y);continue}let b=v.run({value:d[y],issues:[]},p);b instanceof Promise?m.push(b.then(x=>bv(x,u,y))):bv(b,u,y)}return f.length&&u.issues.push({code:"unrecognized_keys",keys:f,input:d,inst:t}),m.length?Promise.all(m).then(()=>u):u}});function ZF(t,e,r,n){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(i=>xs(i,n,Yr())))}),e}var VT=j("$ZodUnion",(t,e)=>{Pe.init(t,e),dt(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),dt(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),dt(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),dt(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(n=>n._zod.pattern);return new RegExp(`^(${r.map(n=>wy(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let s=!1,i=[];for(let a of e.options){let o=a._zod.run({value:r.value,issues:[]},n);if(o instanceof Promise)i.push(o),s=!0;else{if(o.issues.length===0)return o;i.push(o)}}return s?Promise.all(i).then(a=>ZF(a,r,t,n)):ZF(i,r,t,n)}}),Y5=j("$ZodDiscriminatedUnion",(t,e)=>{VT.init(t,e);let r=t._zod.parse;dt(t._zod,"propValues",()=>{let s={};for(let i of e.options){let a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[o,c]of Object.entries(a)){s[o]||(s[o]=new Set);for(let l of c)s[o].add(l)}}return s});let n=_y(()=>{let s=e.options,i=new Map;for(let a of s){let o=a._zod.propValues[e.discriminator];if(!o||o.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let c of o){if(i.has(c))throw Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});t._zod.parse=(s,i)=>{let a=s.value;if(!Jd(a))return s.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),s;let o=n.value.get(a?.[e.discriminator]);return o?o._zod.run(s,i):e.unionFallback?r(s,i):(s.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:a,path:[e.discriminator],inst:t}),s)}}),X5=j("$ZodIntersection",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value,i=e.left._zod.run({value:s,issues:[]},n),a=e.right._zod.run({value:s,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([o,c])=>GF(r,o,c)):GF(r,i,a)}});function fT(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Qd(t)&&Qd(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),s={...t,...e};for(let i of n){let a=fT(t[i],e[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};s[i]=a.data}return{valid:!0,data:s}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n{Pe.init(t,e);let r=e.items,n=r.length-[...r].reverse().findIndex(s=>s._zod.optin!=="optional");t._zod.parse=(s,i)=>{let a=s.value;if(!Array.isArray(a))return s.issues.push({input:a,inst:t,expected:"tuple",code:"invalid_type"}),s;s.value=[];let o=[];if(!e.rest){let l=a.length>r.length,u=a.length=a.length&&c>=n)continue;let u=l._zod.run({value:a[c],issues:[]},i);u instanceof Promise?o.push(u.then(p=>xv(p,s,c))):xv(u,s,c)}if(e.rest){let l=a.slice(r.length);for(let u of l){c++;let p=e.rest._zod.run({value:u,issues:[]},i);p instanceof Promise?o.push(p.then(d=>xv(d,s,c))):xv(p,s,c)}}return o.length?Promise.all(o).then(()=>s):s}});function xv(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues)),e.value[r]=t.value}var eH=j("$ZodRecord",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!Qd(s))return r.issues.push({expected:"record",code:"invalid_type",input:s,inst:t}),r;let i=[];if(e.keyType._zod.values){let a=e.keyType._zod.values;r.value={};for(let c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let l=e.valueType._zod.run({value:s[c],issues:[]},n);l instanceof Promise?i.push(l.then(u=>{u.issues.length&&r.issues.push(...Vn(c,u.issues)),r.value[c]=u.value})):(l.issues.length&&r.issues.push(...Vn(c,l.issues)),r.value[c]=l.value)}let o;for(let c in s)a.has(c)||(o=o??[],o.push(c));o&&o.length>0&&r.issues.push({code:"unrecognized_keys",input:s,inst:t,keys:o})}else{r.value={};for(let a of Reflect.ownKeys(s)){if(a==="__proto__")continue;let o=e.keyType._zod.run({value:a,issues:[]},n);if(o instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(o.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:o.issues.map(l=>xs(l,n,Yr())),input:a,path:[a],inst:t}),r.value[o.value]=o.value;continue}let c=e.valueType._zod.run({value:s[a],issues:[]},n);c instanceof Promise?i.push(c.then(l=>{l.issues.length&&r.issues.push(...Vn(a,l.issues)),r.value[o.value]=l.value})):(c.issues.length&&r.issues.push(...Vn(a,c.issues)),r.value[o.value]=c.value)}}return i.length?Promise.all(i).then(()=>r):r}}),tH=j("$ZodMap",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!(s instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:s,inst:t}),r;let i=[];r.value=new Map;for(let[a,o]of s){let c=e.keyType._zod.run({value:a,issues:[]},n),l=e.valueType._zod.run({value:o,issues:[]},n);c instanceof Promise||l instanceof Promise?i.push(Promise.all([c,l]).then(([u,p])=>{VF(u,p,r,a,s,t,n)})):VF(c,l,r,a,s,t,n)}return i.length?Promise.all(i).then(()=>r):r}});function VF(t,e,r,n,s,i,a){t.issues.length&&(ry.has(typeof n)?r.issues.push(...Vn(n,t.issues)):r.issues.push({origin:"map",code:"invalid_key",input:s,inst:i,issues:t.issues.map(o=>xs(o,a,Yr()))})),e.issues.length&&(ry.has(typeof n)?r.issues.push(...Vn(n,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:s,inst:i,key:n,issues:e.issues.map(o=>xs(o,a,Yr()))})),r.value.set(t.value,e.value)}var rH=j("$ZodSet",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!(s instanceof Set))return r.issues.push({input:s,inst:t,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let a of s){let o=e.valueType._zod.run({value:a,issues:[]},n);o instanceof Promise?i.push(o.then(c=>KF(c,r))):KF(o,r)}return i.length?Promise.all(i).then(()=>r):r}});function KF(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var nH=j("$ZodEnum",(t,e)=>{Pe.init(t,e);let r=TT(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>ry.has(typeof n)).map(n=>typeof n=="string"?mo(n):n.toString()).join("|")})$`),t._zod.parse=(n,s)=>{let i=n.value;return t._zod.values.has(i)||n.issues.push({code:"invalid_value",values:r,input:i,inst:t}),n}}),sH=j("$ZodLiteral",(t,e)=>{Pe.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?mo(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,n)=>{let s=r.value;return t._zod.values.has(s)||r.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),r}}),iH=j("$ZodFile",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;return s instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:s,inst:t}),r}}),KT=j("$ZodTransform",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=e.transform(r.value,r);if(n.async)return(s instanceof Promise?s:Promise.resolve(s)).then(i=>(r.value=i,r));if(s instanceof Promise)throw new Yi;return r.value=s,r}}),aH=j("$ZodOptional",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",t._zod.optout="optional",dt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),dt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${wy(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,n):r.value===void 0?r:e.innerType._zod.run(r,n)}),oH=j("$ZodNullable",(t,e)=>{Pe.init(t,e),dt(t._zod,"optin",()=>e.innerType._zod.optin),dt(t._zod,"optout",()=>e.innerType._zod.optout),dt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${wy(r.source)}|null)$`):void 0}),dt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),cH=j("$ZodDefault",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>JF(i,e)):JF(s,e)}});function JF(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var lH=j("$ZodPrefault",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),uH=j("$ZodNonOptional",(t,e)=>{Pe.init(t,e),dt(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>QF(i,t)):QF(s,t)}});function QF(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var pH=j("$ZodSuccess",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.issues.length===0,r)):(r.value=s.issues.length===0,r)}}),dH=j("$ZodCatch",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"optout",()=>e.innerType._zod.optout),dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>xs(a,n,Yr()))},input:r.value}),r.issues=[]),r)):(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(i=>xs(i,n,Yr()))},input:r.value}),r.issues=[]),r)}}),mH=j("$ZodNaN",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:t,expected:"nan",code:"invalid_type"}),r)}),JT=j("$ZodPipe",(t,e)=>{Pe.init(t,e),dt(t._zod,"values",()=>e.in._zod.values),dt(t._zod,"optin",()=>e.in._zod.optin),dt(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,n)=>{let s=e.in._zod.run(r,n);return s instanceof Promise?s.then(i=>YF(i,e,n)):YF(s,e,n)}});function YF(t,e,r){return Qc(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var fH=j("$ZodReadonly",(t,e)=>{Pe.init(t,e),dt(t._zod,"propValues",()=>e.innerType._zod.propValues),dt(t._zod,"values",()=>e.innerType._zod.values),dt(t._zod,"optin",()=>e.innerType._zod.optin),dt(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(XF):XF(s)}});function XF(t){return t.value=Object.freeze(t.value),t}var hH=j("$ZodTemplateLiteral",(t,e)=>{Pe.init(t,e);let r=[];for(let n of e.parts)if(n instanceof Pe){if(!n._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let s=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!s)throw Error(`Invalid template literal part: ${n._zod.traits}`);let i=s.startsWith("^")?1:0,a=s.endsWith("$")?s.length-1:s.length;r.push(s.slice(i,a))}else if(n===null||p9.has(typeof n))r.push(mo(`${n}`));else throw Error(`Invalid template literal part: ${n}`);t._zod.pattern=new RegExp(`^${r.join("")}$`),t._zod.parse=(n,s)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:t,expected:"template_literal",code:"invalid_type"}),n):(t._zod.pattern.lastIndex=0,t._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:t,code:"invalid_format",format:"template_literal",pattern:t._zod.pattern.source}),n)}),gH=j("$ZodPromise",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>Promise.resolve(r.value).then(s=>e.innerType._zod.run({value:s,issues:[]},n))}),vH=j("$ZodLazy",(t,e)=>{Pe.init(t,e),dt(t._zod,"innerType",()=>e.getter()),dt(t._zod,"pattern",()=>t._zod.innerType._zod.pattern),dt(t._zod,"propValues",()=>t._zod.innerType._zod.propValues),dt(t._zod,"optin",()=>t._zod.innerType._zod.optin),dt(t._zod,"optout",()=>t._zod.innerType._zod.optout),t._zod.parse=(r,n)=>t._zod.innerType._zod.run(r,n)}),yH=j("$ZodCustom",(t,e)=>{Yt.init(t,e),Pe.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,s=e.fn(n);if(s instanceof Promise)return s.then(i=>e8(i,r,n,t));e8(s,r,n,t)}});function e8(t,e,r,n){if(!t){let s={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(s.params=n._zod.def.params),e.issues.push(h9(s))}}var QT={};uo(QT,{zhTW:()=>J_e,zhCN:()=>V_e,vi:()=>Z_e,ur:()=>B_e,ua:()=>F_e,tr:()=>U_e,th:()=>z_e,ta:()=>D_e,sv:()=>j_e,sl:()=>O_e,ru:()=>I_e,pt:()=>R_e,ps:()=>S_e,pl:()=>E_e,ota:()=>__e,no:()=>b_e,nl:()=>v_e,ms:()=>h_e,mk:()=>m_e,ko:()=>p_e,kh:()=>l_e,ja:()=>o_e,it:()=>i_e,id:()=>n_e,hu:()=>t_e,he:()=>Xxe,frCA:()=>Qxe,fr:()=>Kxe,fi:()=>Gxe,fa:()=>Wxe,es:()=>Hxe,eo:()=>qxe,en:()=>bH,de:()=>Mxe,cs:()=>Nxe,ca:()=>Axe,be:()=>Cxe,az:()=>Pxe,ar:()=>Txe});var Exe=()=>{let t={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"};return s=>{switch(s.code){case"invalid_type":return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${s.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${Oe(s.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${s.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${s.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${s.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${s.minimum.toString()} ${a.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${s.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${s.prefix}"`:i.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${i.suffix}"`:i.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${i.includes}"`:i.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${i.pattern}`:`${n[i.format]??s.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${s.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${s.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${s.keys.length>1?"\u0629":""}: ${ee(s.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${s.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${s.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function Txe(){return{localeError:Exe()}}var Rxe=()=>{let t={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${s.expected}, daxil olan ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${Oe(s.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${s.origin??"d\u0259y\u0259r"} ${i}${s.maximum.toString()} ${a.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${s.origin??"d\u0259y\u0259r"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${s.origin} ${i}${s.minimum.toString()} ${a.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${i.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:i.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${i.suffix}" il\u0259 bitm\u0259lidir`:i.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${i.includes}" daxil olmal\u0131d\u0131r`:i.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${i.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${n[i.format]??s.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${s.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${s.keys.length>1?"lar":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${s.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function Pxe(){return{localeError:Rxe()}}function t8(t,e,r,n){let s=Math.abs(t),i=s%10,a=s%100;return a>=11&&a<=19?n:i===1?e:i>=2&&i<=4?r:n}var Ixe=()=>{let t={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u043B\u0456\u043A";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0456\u045E";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${s.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${Oe(s.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);if(a){let o=Number(s.maximum),c=t8(o,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${i}${s.maximum.toString()} ${c}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);if(a){let o=Number(s.minimum),c=t8(o,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${i}${s.minimum.toString()} ${c}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${s.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${s.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${s.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function Cxe(){return{localeError:Ixe()}}var Oxe=()=>{let t={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Tipus inv\xE0lid: s'esperava ${s.expected}, s'ha rebut ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Valor inv\xE0lid: s'esperava ${Oe(s.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${ee(s.values," o ")}`;case"too_big":{let i=s.inclusive?"com a m\xE0xim":"menys de",a=e(s.origin);return a?`Massa gran: s'esperava que ${s.origin??"el valor"} contingu\xE9s ${i} ${s.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${s.origin??"el valor"} fos ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"com a m\xEDnim":"m\xE9s de",a=e(s.origin);return a?`Massa petit: s'esperava que ${s.origin} contingu\xE9s ${i} ${s.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${s.origin} fos ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${i.prefix}"`:i.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${i.suffix}"`:i.format==="includes"?`Format inv\xE0lid: ha d'incloure "${i.includes}"`:i.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${i.pattern}`:`Format inv\xE0lid per a ${n[i.format]??s.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${s.divisor}`;case"unrecognized_keys":return`Clau${s.keys.length>1?"s":""} no reconeguda${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${s.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${s.origin}`;default:return"Entrada inv\xE0lida"}}};function Axe(){return{localeError:Oxe()}}var jxe=()=>{let t={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u010D\xEDslo";case"string":return"\u0159et\u011Bzec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(s))return"pole";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"};return s=>{switch(s.code){case"invalid_type":return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${s.expected}, obdr\u017Eeno ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${Oe(s.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${s.origin??"hodnota"} mus\xED m\xEDt ${i}${s.maximum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${s.origin??"hodnota"} mus\xED b\xFDt ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${s.origin??"hodnota"} mus\xED m\xEDt ${i}${s.minimum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${s.origin??"hodnota"} mus\xED b\xFDt ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${i.prefix}"`:i.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${i.suffix}"`:i.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${i.includes}"`:i.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${i.pattern}`:`Neplatn\xFD form\xE1t ${n[i.format]??s.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${s.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${ee(s.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${s.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${s.origin}`;default:return"Neplatn\xFD vstup"}}};function Nxe(){return{localeError:jxe()}}var Dxe=()=>{let t={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"Zahl";case"object":{if(Array.isArray(s))return"Array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return s=>{switch(s.code){case"invalid_type":return`Ung\xFCltige Eingabe: erwartet ${s.expected}, erhalten ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ung\xFCltige Eingabe: erwartet ${Oe(s.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Zu gro\xDF: erwartet, dass ${s.origin??"Wert"} ${i}${s.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${s.origin??"Wert"} ${i}${s.maximum.toString()} ist`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Zu klein: erwartet, dass ${s.origin} ${i}${s.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${s.origin} ${i}${s.minimum.toString()} ist`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ung\xFCltiger String: muss mit "${i.prefix}" beginnen`:i.format==="ends_with"?`Ung\xFCltiger String: muss mit "${i.suffix}" enden`:i.format==="includes"?`Ung\xFCltiger String: muss "${i.includes}" enthalten`:i.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${i.pattern} entsprechen`:`Ung\xFCltig: ${n[i.format]??s.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${s.divisor} sein`;case"unrecognized_keys":return`${s.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${s.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${s.origin}`;default:return"Ung\xFCltige Eingabe"}}};function Mxe(){return{localeError:Dxe()}}var zxe=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},$xe=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(n){return t[n]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return n=>{switch(n.code){case"invalid_type":return`Invalid input: expected ${n.expected}, received ${zxe(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${Oe(n.values[0])}`:`Invalid option: expected one of ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Too big: expected ${n.origin??"value"} to have ${s}${n.maximum.toString()} ${i.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Too small: expected ${n.origin} to have ${s}${n.minimum.toString()} ${i.unit}`:`Too small: expected ${n.origin} to be ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Invalid string: must start with "${s.prefix}"`:s.format==="ends_with"?`Invalid string: must end with "${s.suffix}"`:s.format==="includes"?`Invalid string: must include "${s.includes}"`:s.format==="regex"?`Invalid string: must match pattern ${s.pattern}`:`Invalid ${r[s.format]??n.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${n.divisor}`;case"unrecognized_keys":return`Unrecognized key${n.keys.length>1?"s":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`Invalid key in ${n.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${n.origin}`;default:return"Invalid input"}}};function bH(){return{localeError:$xe()}}var Lxe=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"nombro";case"object":{if(Array.isArray(t))return"tabelo";if(t===null)return"senvalora";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},Uxe=()=>{let t={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function e(n){return t[n]??null}let r={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return n=>{switch(n.code){case"invalid_type":return`Nevalida enigo: atendi\u011Dis ${n.expected}, ricevi\u011Dis ${Lxe(n.input)}`;case"invalid_value":return n.values.length===1?`Nevalida enigo: atendi\u011Dis ${Oe(n.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Tro granda: atendi\u011Dis ke ${n.origin??"valoro"} havu ${s}${n.maximum.toString()} ${i.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${n.origin??"valoro"} havu ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Tro malgranda: atendi\u011Dis ke ${n.origin} havu ${s}${n.minimum.toString()} ${i.unit}`:`Tro malgranda: atendi\u011Dis ke ${n.origin} estu ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${s.prefix}"`:s.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${s.suffix}"`:s.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${s.includes}"`:s.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${s.pattern}`:`Nevalida ${r[s.format]??n.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${n.divisor}`;case"unrecognized_keys":return`Nekonata${n.keys.length>1?"j":""} \u015Dlosilo${n.keys.length>1?"j":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${n.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${n.origin}`;default:return"Nevalida enigo"}}};function qxe(){return{localeError:Uxe()}}var Fxe=()=>{let t={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(s))return"arreglo";if(s===null)return"nulo";if(Object.getPrototypeOf(s)!==Object.prototype)return s.constructor.name}}return i},n={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Entrada inv\xE1lida: se esperaba ${s.expected}, recibido ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entrada inv\xE1lida: se esperaba ${Oe(s.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Demasiado grande: se esperaba que ${s.origin??"valor"} tuviera ${i}${s.maximum.toString()} ${a.unit??"elementos"}`:`Demasiado grande: se esperaba que ${s.origin??"valor"} fuera ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Demasiado peque\xF1o: se esperaba que ${s.origin} tuviera ${i}${s.minimum.toString()} ${a.unit}`:`Demasiado peque\xF1o: se esperaba que ${s.origin} fuera ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${i.prefix}"`:i.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${i.suffix}"`:i.format==="includes"?`Cadena inv\xE1lida: debe incluir "${i.includes}"`:i.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${i.pattern}`:`Inv\xE1lido ${n[i.format]??s.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${s.divisor}`;case"unrecognized_keys":return`Llave${s.keys.length>1?"s":""} desconocida${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${s.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${s.origin}`;default:return"Entrada inv\xE1lida"}}};function Hxe(){return{localeError:Fxe()}}var Bxe=()=>{let t={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(s))return"\u0622\u0631\u0627\u06CC\u0647";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"};return s=>{switch(s.code){case"invalid_type":return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${s.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${r(s.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;case"invalid_value":return s.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${Oe(s.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${ee(s.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${s.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${s.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} ${a.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:i.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:i.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${i.includes}" \u0628\u0627\u0634\u062F`:i.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${i.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${n[i.format]??s.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${s.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${s.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${ee(s.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${s.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${s.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function Wxe(){return{localeError:Bxe()}}var Zxe=()=>{let t={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return s=>{switch(s.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${s.expected}, oli ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${Oe(s.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Liian suuri: ${a.subject} t\xE4ytyy olla ${i}${s.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Liian pieni: ${a.subject} t\xE4ytyy olla ${i}${s.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${i.prefix}"`:i.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${i.suffix}"`:i.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${i.includes}"`:i.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${i.pattern}`:`Virheellinen ${n[i.format]??s.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${s.divisor} monikerta`;case"unrecognized_keys":return`${s.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${ee(s.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function Gxe(){return{localeError:Zxe()}}var Vxe=()=>{let t={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"nombre";case"object":{if(Array.isArray(s))return"tableau";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return s=>{switch(s.code){case"invalid_type":return`Entr\xE9e invalide : ${s.expected} attendu, ${r(s.input)} re\xE7u`;case"invalid_value":return s.values.length===1?`Entr\xE9e invalide : ${Oe(s.values[0])} attendu`:`Option invalide : une valeur parmi ${ee(s.values,"|")} attendue`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Trop grand : ${s.origin??"valeur"} doit ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${s.origin??"valeur"} doit \xEAtre ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Trop petit : ${s.origin} doit ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Trop petit : ${s.origin} doit \xEAtre ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${i.pattern}`:`${n[i.format]??s.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${s.divisor}`;case"unrecognized_keys":return`Cl\xE9${s.keys.length>1?"s":""} non reconnue${s.keys.length>1?"s":""} : ${ee(s.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${s.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${s.origin}`;default:return"Entr\xE9e invalide"}}};function Kxe(){return{localeError:Vxe()}}var Jxe=()=>{let t={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return s=>{switch(s.code){case"invalid_type":return`Entr\xE9e invalide : attendu ${s.expected}, re\xE7u ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entr\xE9e invalide : attendu ${Oe(s.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"\u2264":"<",a=e(s.origin);return a?`Trop grand : attendu que ${s.origin??"la valeur"} ait ${i}${s.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${s.origin??"la valeur"} soit ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"\u2265":">",a=e(s.origin);return a?`Trop petit : attendu que ${s.origin} ait ${i}${s.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${s.origin} soit ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${i.pattern}`:`${n[i.format]??s.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${s.divisor}`;case"unrecognized_keys":return`Cl\xE9${s.keys.length>1?"s":""} non reconnue${s.keys.length>1?"s":""} : ${ee(s.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${s.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${s.origin}`;default:return"Entr\xE9e invalide"}}};function Qxe(){return{localeError:Jxe()}}var Yxe=()=>{let t={string:{unit:"\u05D0\u05D5\u05EA\u05D9\u05D5\u05EA",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u05E7\u05DC\u05D8",email:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",url:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",emoji:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",date:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",time:"\u05D6\u05DE\u05DF ISO",duration:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",ipv4:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",ipv6:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",cidrv4:"\u05D8\u05D5\u05D5\u05D7 IPv4",cidrv6:"\u05D8\u05D5\u05D5\u05D7 IPv6",base64:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",base64url:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",json_string:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",e164:"\u05DE\u05E1\u05E4\u05E8 E.164",jwt:"JWT",template_literal:"\u05E7\u05DC\u05D8"};return s=>{switch(s.code){case"invalid_type":return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${s.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${Oe(s.values[0])}`:`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05D0\u05D7\u05EA \u05DE\u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${s.origin??"value"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.maximum.toString()} ${a.unit??"elements"}`:`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${s.origin??"value"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${s.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.minimum.toString()} ${a.unit}`:`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${s.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1"${i.prefix}"`:i.format==="ends_with"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${i.suffix}"`:i.format==="includes"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${i.includes}"`:i.format==="regex"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${i.pattern}`:`${n[i.format]??s.format} \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${s.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${s.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${s.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u05DE\u05E4\u05EA\u05D7 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${s.origin}`;case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${s.origin}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function Xxe(){return{localeError:Yxe()}}var e_e=()=>{let t={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"sz\xE1m";case"object":{if(Array.isArray(s))return"t\xF6mb";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"};return s=>{switch(s.code){case"invalid_type":return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${s.expected}, a kapott \xE9rt\xE9k ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${Oe(s.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`T\xFAl nagy: ${s.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${i}${s.maximum.toString()} ${a.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${s.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${s.origin} m\xE9rete t\xFAl kicsi ${i}${s.minimum.toString()} ${a.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${s.origin} t\xFAl kicsi ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\xC9rv\xE9nytelen string: "${i.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:i.format==="ends_with"?`\xC9rv\xE9nytelen string: "${i.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:i.format==="includes"?`\xC9rv\xE9nytelen string: "${i.includes}" \xE9rt\xE9ket kell tartalmaznia`:i.format==="regex"?`\xC9rv\xE9nytelen string: ${i.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${n[i.format]??s.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${s.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${s.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${s.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function t_e(){return{localeError:e_e()}}var r_e=()=>{let t={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input tidak valid: diharapkan ${s.expected}, diterima ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input tidak valid: diharapkan ${Oe(s.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Terlalu besar: diharapkan ${s.origin??"value"} memiliki ${i}${s.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${s.origin??"value"} menjadi ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Terlalu kecil: diharapkan ${s.origin} memiliki ${i}${s.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${s.origin} menjadi ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`String tidak valid: harus dimulai dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak valid: harus berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak valid: harus menyertakan "${i.includes}"`:i.format==="regex"?`String tidak valid: harus sesuai pola ${i.pattern}`:`${n[i.format]??s.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${s.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${s.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${s.origin}`;default:return"Input tidak valid"}}};function n_e(){return{localeError:r_e()}}var s_e=()=>{let t={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"numero";case"object":{if(Array.isArray(s))return"vettore";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input non valido: atteso ${s.expected}, ricevuto ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input non valido: atteso ${Oe(s.values[0])}`:`Opzione non valida: atteso uno tra ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Troppo grande: ${s.origin??"valore"} deve avere ${i}${s.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${s.origin??"valore"} deve essere ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Troppo piccolo: ${s.origin} deve avere ${i}${s.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${s.origin} deve essere ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Stringa non valida: deve iniziare con "${i.prefix}"`:i.format==="ends_with"?`Stringa non valida: deve terminare con "${i.suffix}"`:i.format==="includes"?`Stringa non valida: deve includere "${i.includes}"`:i.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${i.pattern}`:`Invalid ${n[i.format]??s.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${s.divisor}`;case"unrecognized_keys":return`Chiav${s.keys.length>1?"i":"e"} non riconosciut${s.keys.length>1?"e":"a"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${s.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${s.origin}`;default:return"Input non valido"}}};function i_e(){return{localeError:s_e()}}var a_e=()=>{let t={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u6570\u5024";case"object":{if(Array.isArray(s))return"\u914D\u5217";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"};return s=>{switch(s.code){case"invalid_type":return`\u7121\u52B9\u306A\u5165\u529B: ${s.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${r(s.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;case"invalid_value":return s.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${Oe(s.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${ee(s.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{let i=s.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",a=e(s.origin);return a?`\u5927\u304D\u3059\u304E\u308B\u5024: ${s.origin??"\u5024"}\u306F${s.maximum.toString()}${a.unit??"\u8981\u7D20"}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${s.origin??"\u5024"}\u306F${s.maximum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{let i=s.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",a=e(s.origin);return a?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${s.origin}\u306F${s.minimum.toString()}${a.unit}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${s.origin}\u306F${s.minimum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${i.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${n[i.format]??s.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${s.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${s.keys.length>1?"\u7FA4":""}: ${ee(s.keys,"\u3001")}`;case"invalid_key":return`${s.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${s.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function o_e(){return{localeError:a_e()}}var c_e=()=>{let t={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)":"\u179B\u17C1\u1781";case"object":{if(Array.isArray(s))return"\u17A2\u17B6\u179A\u17C1 (Array)";if(s===null)return"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"};return s=>{switch(s.code){case"invalid_type":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${Oe(s.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${s.maximum.toString()} ${a.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin} ${i} ${s.minimum.toString()} ${a.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin} ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${i.prefix}"`:i.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${i.suffix}"`:i.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${i.includes}"`:i.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${i.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${s.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${ee(s.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${s.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${s.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function l_e(){return{localeError:c_e()}}var u_e=()=>{let t={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"};return s=>{switch(s.code){case"invalid_type":return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${s.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${r(s.input)}\uC785\uB2C8\uB2E4`;case"invalid_value":return s.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${Oe(s.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${ee(s.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{let i=s.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",a=i==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",o=e(s.origin),c=o?.unit??"\uC694\uC18C";return o?`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${s.maximum.toString()}${c} ${i}${a}`:`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${s.maximum.toString()} ${i}${a}`}case"too_small":{let i=s.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",a=i==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",o=e(s.origin),c=o?.unit??"\uC694\uC18C";return o?`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${s.minimum.toString()}${c} ${i}${a}`:`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${s.minimum.toString()} ${i}${a}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:i.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${i.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${n[i.format]??s.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${s.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${ee(s.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${s.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${s.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function p_e(){return{localeError:u_e()}}var d_e=()=>{let t={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0431\u0440\u043E\u0458";case"object":{if(Array.isArray(s))return"\u043D\u0438\u0437\u0430";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"};return s=>{switch(s.code){case"invalid_type":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Invalid input: expected ${Oe(s.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${i}${s.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin} \u0434\u0430 \u0438\u043C\u0430 ${i}${s.minimum.toString()} ${a.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${i.pattern}`:`Invalid ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${s.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${s.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function m_e(){return{localeError:d_e()}}var f_e=()=>{let t={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"nombor";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input tidak sah: dijangka ${s.expected}, diterima ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input tidak sah: dijangka ${Oe(s.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Terlalu besar: dijangka ${s.origin??"nilai"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${s.origin??"nilai"} adalah ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Terlalu kecil: dijangka ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${s.origin} adalah ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`String tidak sah: mesti bermula dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak sah: mesti mengandungi "${i.includes}"`:i.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${i.pattern}`:`${n[i.format]??s.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${s.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${ee(s.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${s.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${s.origin}`;default:return"Input tidak sah"}}};function h_e(){return{localeError:f_e()}}var g_e=()=>{let t={string:{unit:"tekens"},file:{unit:"bytes"},array:{unit:"elementen"},set:{unit:"elementen"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"getal";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return s=>{switch(s.code){case"invalid_type":return`Ongeldige invoer: verwacht ${s.expected}, ontving ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ongeldige invoer: verwacht ${Oe(s.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Te lang: verwacht dat ${s.origin??"waarde"} ${i}${s.maximum.toString()} ${a.unit??"elementen"} bevat`:`Te lang: verwacht dat ${s.origin??"waarde"} ${i}${s.maximum.toString()} is`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Te kort: verwacht dat ${s.origin} ${i}${s.minimum.toString()} ${a.unit} bevat`:`Te kort: verwacht dat ${s.origin} ${i}${s.minimum.toString()} is`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ongeldige tekst: moet met "${i.prefix}" beginnen`:i.format==="ends_with"?`Ongeldige tekst: moet op "${i.suffix}" eindigen`:i.format==="includes"?`Ongeldige tekst: moet "${i.includes}" bevatten`:i.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${i.pattern}`:`Ongeldig: ${n[i.format]??s.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${s.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${s.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${s.origin}`;default:return"Ongeldige invoer"}}};function v_e(){return{localeError:g_e()}}var y_e=()=>{let t={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"tall";case"object":{if(Array.isArray(s))return"liste";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Ugyldig input: forventet ${s.expected}, fikk ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ugyldig verdi: forventet ${Oe(s.values[0])}`:`Ugyldig valg: forventet en av ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`For stor(t): forventet ${s.origin??"value"} til \xE5 ha ${i}${s.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${s.origin??"value"} til \xE5 ha ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`For lite(n): forventet ${s.origin} til \xE5 ha ${i}${s.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${s.origin} til \xE5 ha ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${i.prefix}"`:i.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${i.suffix}"`:i.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${i.includes}"`:i.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${i.pattern}`:`Ugyldig ${n[i.format]??s.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${s.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${s.origin}`;default:return"Ugyldig input"}}};function b_e(){return{localeError:y_e()}}var x_e=()=>{let t={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"numara";case"object":{if(Array.isArray(s))return"saf";if(s===null)return"gayb";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"};return s=>{switch(s.code){case"invalid_type":return`F\xE2sit giren: umulan ${s.expected}, al\u0131nan ${r(s.input)}`;case"invalid_value":return s.values.length===1?`F\xE2sit giren: umulan ${Oe(s.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Fazla b\xFCy\xFCk: ${s.origin??"value"}, ${i}${s.maximum.toString()} ${a.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${s.origin??"value"}, ${i}${s.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Fazla k\xFC\xE7\xFCk: ${s.origin}, ${i}${s.minimum.toString()} ${a.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${s.origin}, ${i}${s.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{let i=s;return i.format==="starts_with"?`F\xE2sit metin: "${i.prefix}" ile ba\u015Flamal\u0131.`:i.format==="ends_with"?`F\xE2sit metin: "${i.suffix}" ile bitmeli.`:i.format==="includes"?`F\xE2sit metin: "${i.includes}" ihtiv\xE2 etmeli.`:i.format==="regex"?`F\xE2sit metin: ${i.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${n[i.format]??s.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${s.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${s.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function __e(){return{localeError:x_e()}}var w_e=()=>{let t={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(s))return"\u0627\u0631\u06D0";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"};return s=>{switch(s.code){case"invalid_type":return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${s.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${r(s.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;case"invalid_value":return s.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${Oe(s.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${ee(s.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${s.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${s.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} \u0648\u064A`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} ${a.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} \u0648\u064A`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:i.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:i.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${i.includes}" \u0648\u0644\u0631\u064A`:i.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${i.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${n[i.format]??s.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${s.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${s.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${s.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${s.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function S_e(){return{localeError:w_e()}}var k_e=()=>{let t={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"liczba";case"object":{if(Array.isArray(s))return"tablica";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"};return s=>{switch(s.code){case"invalid_type":return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${s.expected}, otrzymano ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${Oe(s.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${s.maximum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${s.minimum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${i.prefix}"`:i.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${i.suffix}"`:i.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${i.includes}"`:i.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${i.pattern}`:`Nieprawid\u0142ow(y/a/e) ${n[i.format]??s.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${s.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${s.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${s.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function E_e(){return{localeError:k_e()}}var T_e=()=>{let t={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(s))return"array";if(s===null)return"nulo";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Tipo inv\xE1lido: esperado ${s.expected}, recebido ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entrada inv\xE1lida: esperado ${Oe(s.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Muito grande: esperado que ${s.origin??"valor"} tivesse ${i}${s.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${s.origin??"valor"} fosse ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Muito pequeno: esperado que ${s.origin} tivesse ${i}${s.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${s.origin} fosse ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${i.prefix}"`:i.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${i.suffix}"`:i.format==="includes"?`Texto inv\xE1lido: deve incluir "${i.includes}"`:i.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${i.pattern}`:`${n[i.format]??s.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${s.divisor}`;case"unrecognized_keys":return`Chave${s.keys.length>1?"s":""} desconhecida${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${s.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${s.origin}`;default:return"Campo inv\xE1lido"}}};function R_e(){return{localeError:T_e()}}function r8(t,e,r,n){let s=Math.abs(t),i=s%10,a=s%100;return a>=11&&a<=19?n:i===1?e:i>=2&&i<=4?r:n}var P_e=()=>{let t={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0441\u0438\u0432";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${s.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${Oe(s.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);if(a){let o=Number(s.maximum),c=r8(o,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${s.maximum.toString()} ${c}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);if(a){let o=Number(s.minimum),c=r8(o,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${s.minimum.toString()} ${c}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin} \u0431\u0443\u0434\u0435\u0442 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${s.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${s.keys.length>1?"\u0438":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${s.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${s.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function I_e(){return{localeError:P_e()}}var C_e=()=>{let t={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0161tevilo";case"object":{if(Array.isArray(s))return"tabela";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"};return s=>{switch(s.code){case"invalid_type":return`Neveljaven vnos: pri\u010Dakovano ${s.expected}, prejeto ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${Oe(s.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Preveliko: pri\u010Dakovano, da bo ${s.origin??"vrednost"} imelo ${i}${s.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${s.origin??"vrednost"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Premajhno: pri\u010Dakovano, da bo ${s.origin} imelo ${i}${s.minimum.toString()} ${a.unit}`:`Premajhno: pri\u010Dakovano, da bo ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${i.prefix}"`:i.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${i.suffix}"`:i.format==="includes"?`Neveljaven niz: mora vsebovati "${i.includes}"`:i.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${i.pattern}`:`Neveljaven ${n[i.format]??s.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${s.divisor}`;case"unrecognized_keys":return`Neprepoznan${s.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${s.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${s.origin}`;default:return"Neveljaven vnos"}}};function O_e(){return{localeError:C_e()}}var A_e=()=>{let t={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"antal";case"object":{if(Array.isArray(s))return"lista";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return s=>{switch(s.code){case"invalid_type":return`Ogiltig inmatning: f\xF6rv\xE4ntat ${s.expected}, fick ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${Oe(s.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`F\xF6r stor(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.maximum.toString()} ${a.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${s.origin??"v\xE4rdet"} att ha ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`F\xF6r lite(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.minimum.toString()} ${a.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${i.prefix}"`:i.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${i.suffix}"`:i.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${i.includes}"`:i.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${i.pattern}"`:`Ogiltig(t) ${n[i.format]??s.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${s.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${s.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function j_e(){return{localeError:A_e()}}var N_e=()=>{let t={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1":"\u0B8E\u0BA3\u0BCD";case"object":{if(Array.isArray(s))return"\u0B85\u0BA3\u0BBF";if(s===null)return"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${Oe(s.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${ee(s.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${s.maximum.toString()} ${a.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${s.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin} ${i}${s.minimum.toString()} ${a.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin} ${i}${s.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${i.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${s.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${s.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${s.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function D_e(){return{localeError:N_e()}}var M_e=()=>{let t={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)":"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02";case"object":{if(Array.isArray(s))return"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)";if(s===null)return"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"};return s=>{switch(s.code){case"invalid_type":return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${s.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${Oe(s.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",a=e(s.origin);return a?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.maximum.toString()} ${a.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",a=e(s.origin);return a?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.minimum.toString()} ${a.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${i.prefix}"`:i.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${i.suffix}"`:i.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${i.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:i.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${i.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${s.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${s.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${s.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function z_e(){return{localeError:M_e()}}var $_e=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},L_e=()=>{let t={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function e(n){return t[n]??null}let r={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"};return n=>{switch(n.code){case"invalid_type":return`Ge\xE7ersiz de\u011Fer: beklenen ${n.expected}, al\u0131nan ${$_e(n.input)}`;case"invalid_value":return n.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${Oe(n.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`\xC7ok b\xFCy\xFCk: beklenen ${n.origin??"de\u011Fer"} ${s}${n.maximum.toString()} ${i.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${n.origin??"de\u011Fer"} ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`\xC7ok k\xFC\xE7\xFCk: beklenen ${n.origin} ${s}${n.minimum.toString()} ${i.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${n.origin} ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Ge\xE7ersiz metin: "${s.prefix}" ile ba\u015Flamal\u0131`:s.format==="ends_with"?`Ge\xE7ersiz metin: "${s.suffix}" ile bitmeli`:s.format==="includes"?`Ge\xE7ersiz metin: "${s.includes}" i\xE7ermeli`:s.format==="regex"?`Ge\xE7ersiz metin: ${s.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${r[s.format]??n.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${n.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${n.keys.length>1?"lar":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`${n.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${n.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function U_e(){return{localeError:L_e()}}var q_e=()=>{let t={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0438\u0432";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${s.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${Oe(s.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin} \u0431\u0443\u0434\u0435 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${s.keys.length>1?"\u0456":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${s.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${s.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function F_e(){return{localeError:q_e()}}var H_e=()=>{let t={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0646\u0645\u0628\u0631";case"object":{if(Array.isArray(s))return"\u0622\u0631\u06D2";if(s===null)return"\u0646\u0644";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"};return s=>{switch(s.code){case"invalid_type":return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${s.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${r(s.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;case"invalid_value":return s.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${Oe(s.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${ee(s.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${s.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${s.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${i}${s.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${s.origin} \u06A9\u06D2 ${i}${s.minimum.toString()} ${a.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${s.origin} \u06A9\u0627 ${i}${s.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${i.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${s.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${s.keys.length>1?"\u0632":""}: ${ee(s.keys,"\u060C ")}`;case"invalid_key":return`${s.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${s.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function B_e(){return{localeError:H_e()}}var W_e=()=>{let t={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"s\u1ED1";case"object":{if(Array.isArray(s))return"m\u1EA3ng";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"};return s=>{switch(s.code){case"invalid_type":return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${s.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${Oe(s.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${s.origin??"gi\xE1 tr\u1ECB"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${s.origin??"gi\xE1 tr\u1ECB"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${i.prefix}"`:i.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${i.suffix}"`:i.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${i.includes}"`:i.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${i.pattern}`:`${n[i.format]??s.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${s.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${ee(s.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${s.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${s.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function Z_e(){return{localeError:W_e()}}var G_e=()=>{let t={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u975E\u6570\u5B57(NaN)":"\u6570\u5B57";case"object":{if(Array.isArray(s))return"\u6570\u7EC4";if(s===null)return"\u7A7A\u503C(null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"};return s=>{switch(s.code){case"invalid_type":return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${s.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${Oe(s.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${s.origin??"\u503C"} ${i}${s.maximum.toString()} ${a.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${s.origin??"\u503C"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${s.origin} ${i}${s.minimum.toString()} ${a.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.prefix}" \u5F00\u5934`:i.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.suffix}" \u7ED3\u5C3E`:i.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${i.pattern}`:`\u65E0\u6548${n[i.format]??s.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${s.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${s.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function V_e(){return{localeError:G_e()}}var K_e=()=>{let t={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"};return s=>{switch(s.code){case"invalid_type":return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${s.expected}\uFF0C\u4F46\u6536\u5230 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${Oe(s.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${s.origin??"\u503C"} \u61C9\u70BA ${i}${s.maximum.toString()} ${a.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${s.origin??"\u503C"} \u61C9\u70BA ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${s.origin} \u61C9\u70BA ${i}${s.minimum.toString()} ${a.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${s.origin} \u61C9\u70BA ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.prefix}" \u958B\u982D`:i.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.suffix}" \u7D50\u5C3E`:i.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${i.pattern}`:`\u7121\u6548\u7684 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${s.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${s.keys.length>1?"\u5011":""}\uFF1A${ee(s.keys,"\u3001")}`;case"invalid_key":return`${s.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${s.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function J_e(){return{localeError:K_e()}}var xH=Symbol("ZodOutput"),_H=Symbol("ZodInput"),Yd=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];if(this._map.set(e,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}remove(e){return this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function YT(){return new Yd}var ro=YT();function wH(t,e){return new t({type:"string",...J(e)})}function SH(t,e){return new t({type:"string",coerce:!0,...J(e)})}function XT(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...J(e)})}function oy(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...J(e)})}function eR(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...J(e)})}function tR(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...J(e)})}function rR(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...J(e)})}function nR(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...J(e)})}function sR(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...J(e)})}function iR(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...J(e)})}function aR(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...J(e)})}function oR(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...J(e)})}function cR(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...J(e)})}function lR(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...J(e)})}function uR(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...J(e)})}function pR(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...J(e)})}function dR(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...J(e)})}function mR(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...J(e)})}function fR(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...J(e)})}function hR(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...J(e)})}function gR(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...J(e)})}function vR(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...J(e)})}function yR(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...J(e)})}function bR(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...J(e)})}var kH={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function EH(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...J(e)})}function TH(t,e){return new t({type:"string",format:"date",check:"string_format",...J(e)})}function RH(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...J(e)})}function PH(t,e){return new t({type:"string",format:"duration",check:"string_format",...J(e)})}function IH(t,e){return new t({type:"number",checks:[],...J(e)})}function CH(t,e){return new t({type:"number",coerce:!0,checks:[],...J(e)})}function OH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...J(e)})}function AH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...J(e)})}function jH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...J(e)})}function NH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...J(e)})}function DH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...J(e)})}function MH(t,e){return new t({type:"boolean",...J(e)})}function zH(t,e){return new t({type:"boolean",coerce:!0,...J(e)})}function $H(t,e){return new t({type:"bigint",...J(e)})}function LH(t,e){return new t({type:"bigint",coerce:!0,...J(e)})}function UH(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...J(e)})}function qH(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...J(e)})}function FH(t,e){return new t({type:"symbol",...J(e)})}function HH(t,e){return new t({type:"undefined",...J(e)})}function BH(t,e){return new t({type:"null",...J(e)})}function WH(t){return new t({type:"any"})}function cy(t){return new t({type:"unknown"})}function ZH(t,e){return new t({type:"never",...J(e)})}function GH(t,e){return new t({type:"void",...J(e)})}function VH(t,e){return new t({type:"date",...J(e)})}function KH(t,e){return new t({type:"date",coerce:!0,...J(e)})}function JH(t,e){return new t({type:"nan",...J(e)})}function co(t,e){return new UT({check:"less_than",...J(e),value:t,inclusive:!1})}function ys(t,e){return new UT({check:"less_than",...J(e),value:t,inclusive:!0})}function lo(t,e){return new qT({check:"greater_than",...J(e),value:t,inclusive:!1})}function En(t,e){return new qT({check:"greater_than",...J(e),value:t,inclusive:!0})}function QH(t){return lo(0,t)}function YH(t){return co(0,t)}function XH(t){return ys(0,t)}function eB(t){return En(0,t)}function Xd(t,e){return new Y9({check:"multiple_of",...J(e),value:t})}function Ty(t,e){return new t5({check:"max_size",...J(e),maximum:t})}function em(t,e){return new r5({check:"min_size",...J(e),minimum:t})}function xR(t,e){return new n5({check:"size_equals",...J(e),size:t})}function Ry(t,e){return new s5({check:"max_length",...J(e),maximum:t})}function fl(t,e){return new i5({check:"min_length",...J(e),minimum:t})}function Py(t,e){return new a5({check:"length_equals",...J(e),length:t})}function _R(t,e){return new o5({check:"string_format",format:"regex",...J(e),pattern:t})}function wR(t){return new c5({check:"string_format",format:"lowercase",...J(t)})}function SR(t){return new l5({check:"string_format",format:"uppercase",...J(t)})}function kR(t,e){return new u5({check:"string_format",format:"includes",...J(e),includes:t})}function ER(t,e){return new p5({check:"string_format",format:"starts_with",...J(e),prefix:t})}function TR(t,e){return new d5({check:"string_format",format:"ends_with",...J(e),suffix:t})}function tB(t,e,r){return new m5({check:"property",property:t,schema:e,...J(r)})}function RR(t,e){return new f5({check:"mime_type",mime:t,...J(e)})}function fo(t){return new h5({check:"overwrite",tx:t})}function PR(t){return fo(e=>e.normalize(t))}function IR(){return fo(t=>t.trim())}function CR(){return fo(t=>t.toLowerCase())}function OR(){return fo(t=>t.toUpperCase())}function AR(t,e,r){return new t({type:"array",element:e,...J(r)})}function Q_e(t,e,r){return new t({type:"union",options:e,...J(r)})}function Y_e(t,e,r,n){return new t({type:"union",options:r,discriminator:e,...J(n)})}function X_e(t,e,r){return new t({type:"intersection",left:e,right:r})}function rB(t,e,r,n){let s=r instanceof Pe;return new t({type:"tuple",items:e,rest:s?r:null,...J(s?n:r)})}function e0e(t,e,r,n){return new t({type:"record",keyType:e,valueType:r,...J(n)})}function t0e(t,e,r,n){return new t({type:"map",keyType:e,valueType:r,...J(n)})}function r0e(t,e,r){return new t({type:"set",valueType:e,...J(r)})}function n0e(t,e,r){let n=Array.isArray(e)?Object.fromEntries(e.map(s=>[s,s])):e;return new t({type:"enum",entries:n,...J(r)})}function s0e(t,e,r){return new t({type:"enum",entries:e,...J(r)})}function i0e(t,e,r){return new t({type:"literal",values:Array.isArray(e)?e:[e],...J(r)})}function nB(t,e){return new t({type:"file",...J(e)})}function a0e(t,e){return new t({type:"transform",transform:e})}function o0e(t,e){return new t({type:"optional",innerType:e})}function c0e(t,e){return new t({type:"nullable",innerType:e})}function l0e(t,e,r){return new t({type:"default",innerType:e,get defaultValue(){return typeof r=="function"?r():r}})}function u0e(t,e,r){return new t({type:"nonoptional",innerType:e,...J(r)})}function p0e(t,e){return new t({type:"success",innerType:e})}function d0e(t,e,r){return new t({type:"catch",innerType:e,catchValue:typeof r=="function"?r:()=>r})}function m0e(t,e,r){return new t({type:"pipe",in:e,out:r})}function f0e(t,e){return new t({type:"readonly",innerType:e})}function h0e(t,e,r){return new t({type:"template_literal",parts:e,...J(r)})}function g0e(t,e){return new t({type:"lazy",getter:e})}function v0e(t,e){return new t({type:"promise",innerType:e})}function sB(t,e,r){let n=J(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function iB(t,e,r){return new t({type:"custom",check:"custom",fn:e,...J(r)})}function aB(t,e){let r=J(e),n=r.truthy??["true","1","yes","on","y","enabled"],s=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(d=>typeof d=="string"?d.toLowerCase():d),s=s.map(d=>typeof d=="string"?d.toLowerCase():d));let i=new Set(n),a=new Set(s),o=t.Pipe??JT,c=t.Boolean??BT,l=t.String??im,u=new(t.Transform??KT)({type:"transform",transform:(d,m)=>{let f=d;return r.case!=="sensitive"&&(f=f.toLowerCase()),i.has(f)?!0:a.has(f)?!1:(m.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...a],input:m.value,inst:u}),{})},error:r.error}),p=new o({type:"pipe",in:new l({type:"string",error:r.error}),out:u,error:r.error});return new o({type:"pipe",in:p,out:new c({type:"boolean",error:r.error}),error:r.error})}function oB(t,e,r,n={}){let s=J(n),i={...J(n),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:a=>r.test(a),...s};return r instanceof RegExp&&(i.pattern=r),new t(i)}var ly=class{constructor(e){this._def=e,this.def=e}implement(e){if(typeof e!="function")throw Error("implement() must be called with a function");let r=(...n)=>{let s=this._def.input?ny(this._def.input,n,void 0,{callee:r}):n;if(!Array.isArray(s))throw Error("Invalid arguments schema: not an array or tuple schema.");let i=e(...s);return this._def.output?ny(this._def.output,i,void 0,{callee:r}):i};return r}implementAsync(e){if(typeof e!="function")throw Error("implement() must be called with a function");let r=async(...n)=>{let s=this._def.input?await sy(this._def.input,n,void 0,{callee:r}):n;if(!Array.isArray(s))throw Error("Invalid arguments schema: not an array or tuple schema.");let i=await e(...s);return this._def.output?sy(this._def.output,i,void 0,{callee:r}):i};return r}input(...e){let r=this.constructor;return Array.isArray(e[0])?new r({type:"function",input:new Ey({type:"tuple",items:e[0],rest:e[1]}),output:this._def.output}):new r({type:"function",input:e[0],output:this._def.output})}output(e){return new this.constructor({type:"function",input:this._def.input,output:e})}};function cB(t){return new ly({type:"function",input:Array.isArray(t?.input)?rB(Ey,t?.input):t?.input??AR(ZT,cy(ay)),output:t?.output??cy(ay)})}var tm=class{constructor(e){this.counter=0,this.metadataRegistry=e?.metadata??ro,this.target=e?.target??"draft-2020-12",this.unrepresentable=e?.unrepresentable??"throw",this.override=e?.override??(()=>{}),this.io=e?.io??"output",this.seen=new Map}process(e,r={path:[],schemaPath:[]}){var n;let s=e._zod.def,i={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},a=this.seen.get(e);if(a)return a.count++,r.schemaPath.includes(e)&&(a.cycle=r.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:r.path};this.seen.set(e,o);let c=e._zod.toJSONSchema?.();if(c)o.schema=c;else{let u={...r,schemaPath:[...r.schemaPath,e],path:r.path},p=e._zod.parent;if(p)o.ref=p,this.process(p,u),this.seen.get(p).isParent=!0;else{let d=o.schema;switch(s.type){case"string":{let m=d;m.type="string";let{minimum:f,maximum:g,format:v,patterns:h,contentEncoding:y}=e._zod.bag;if(typeof f=="number"&&(m.minLength=f),typeof g=="number"&&(m.maxLength=g),v&&(m.format=i[v]??v,m.format===""&&delete m.format),y&&(m.contentEncoding=y),h&&h.size>0){let b=[...h];b.length===1?m.pattern=b[0].source:b.length>1&&(o.schema.allOf=[...b.map(x=>({...this.target==="draft-7"?{type:"string"}:{},pattern:x.source}))])}break}case"number":{let m=d,{minimum:f,maximum:g,format:v,multipleOf:h,exclusiveMaximum:y,exclusiveMinimum:b}=e._zod.bag;typeof v=="string"&&v.includes("int")?m.type="integer":m.type="number",typeof b=="number"&&(m.exclusiveMinimum=b),typeof f=="number"&&(m.minimum=f,typeof b=="number"&&(b>=f?delete m.minimum:delete m.exclusiveMinimum)),typeof y=="number"&&(m.exclusiveMaximum=y),typeof g=="number"&&(m.maximum=g,typeof y=="number"&&(y<=g?delete m.maximum:delete m.exclusiveMaximum)),typeof h=="number"&&(m.multipleOf=h);break}case"boolean":{let m=d;m.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema");break}case"null":{d.type="null";break}case"any":break;case"unknown":break;case"undefined":case"never":{d.not={};break}case"void":{if(this.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema");break}case"date":{if(this.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema");break}case"array":{let m=d,{minimum:f,maximum:g}=e._zod.bag;typeof f=="number"&&(m.minItems=f),typeof g=="number"&&(m.maxItems=g),m.type="array",m.items=this.process(s.element,{...u,path:[...u.path,"items"]});break}case"object":{let m=d;m.type="object",m.properties={};let f=s.shape;for(let h in f)m.properties[h]=this.process(f[h],{...u,path:[...u.path,"properties",h]});let g=new Set(Object.keys(f)),v=new Set([...g].filter(h=>{let y=s.shape[h]._zod;return this.io==="input"?y.optin===void 0:y.optout===void 0}));v.size>0&&(m.required=Array.from(v)),s.catchall?._zod.def.type==="never"?m.additionalProperties=!1:s.catchall?s.catchall&&(m.additionalProperties=this.process(s.catchall,{...u,path:[...u.path,"additionalProperties"]})):this.io==="output"&&(m.additionalProperties=!1);break}case"union":{let m=d;m.anyOf=s.options.map((f,g)=>this.process(f,{...u,path:[...u.path,"anyOf",g]}));break}case"intersection":{let m=d,f=this.process(s.left,{...u,path:[...u.path,"allOf",0]}),g=this.process(s.right,{...u,path:[...u.path,"allOf",1]}),v=y=>"allOf"in y&&Object.keys(y).length===1,h=[...v(f)?f.allOf:[f],...v(g)?g.allOf:[g]];m.allOf=h;break}case"tuple":{let m=d;m.type="array";let f=s.items.map((h,y)=>this.process(h,{...u,path:[...u.path,"prefixItems",y]}));if(this.target==="draft-2020-12"?m.prefixItems=f:m.items=f,s.rest){let h=this.process(s.rest,{...u,path:[...u.path,"items"]});this.target==="draft-2020-12"?m.items=h:m.additionalItems=h}s.rest&&(m.items=this.process(s.rest,{...u,path:[...u.path,"items"]}));let{minimum:g,maximum:v}=e._zod.bag;typeof g=="number"&&(m.minItems=g),typeof v=="number"&&(m.maxItems=v);break}case"record":{let m=d;m.type="object",m.propertyNames=this.process(s.keyType,{...u,path:[...u.path,"propertyNames"]}),m.additionalProperties=this.process(s.valueType,{...u,path:[...u.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema");break}case"enum":{let m=d,f=TT(s.entries);f.every(g=>typeof g=="number")&&(m.type="number"),f.every(g=>typeof g=="string")&&(m.type="string"),m.enum=f;break}case"literal":{let m=d,f=[];for(let g of s.values)if(g===void 0){if(this.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof g=="bigint"){if(this.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");f.push(Number(g))}else f.push(g);if(f.length!==0)if(f.length===1){let g=f[0];m.type=g===null?"null":typeof g,m.const=g}else f.every(g=>typeof g=="number")&&(m.type="number"),f.every(g=>typeof g=="string")&&(m.type="string"),f.every(g=>typeof g=="boolean")&&(m.type="string"),f.every(g=>g===null)&&(m.type="null"),m.enum=f;break}case"file":{let m=d,f={type:"string",format:"binary",contentEncoding:"binary"},{minimum:g,maximum:v,mime:h}=e._zod.bag;g!==void 0&&(f.minLength=g),v!==void 0&&(f.maxLength=v),h?h.length===1?(f.contentMediaType=h[0],Object.assign(m,f)):m.anyOf=h.map(y=>({...f,contentMediaType:y})):Object.assign(m,f);break}case"transform":{if(this.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let m=this.process(s.innerType,u);d.anyOf=[m,{type:"null"}];break}case"nonoptional":{this.process(s.innerType,u),o.ref=s.innerType;break}case"success":{let m=d;m.type="boolean";break}case"default":{this.process(s.innerType,u),o.ref=s.innerType,d.default=JSON.parse(JSON.stringify(s.defaultValue));break}case"prefault":{this.process(s.innerType,u),o.ref=s.innerType,this.io==="input"&&(d._prefault=JSON.parse(JSON.stringify(s.defaultValue)));break}case"catch":{this.process(s.innerType,u),o.ref=s.innerType;let m;try{m=s.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}d.default=m;break}case"nan":{if(this.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let m=d,f=e._zod.pattern;if(!f)throw Error("Pattern not found in template literal");m.type="string",m.pattern=f.source;break}case"pipe":{let m=this.io==="input"?s.in._zod.def.type==="transform"?s.out:s.in:s.out;this.process(m,u),o.ref=m;break}case"readonly":{this.process(s.innerType,u),o.ref=s.innerType,d.readOnly=!0;break}case"promise":{this.process(s.innerType,u),o.ref=s.innerType;break}case"optional":{this.process(s.innerType,u),o.ref=s.innerType;break}case"lazy":{let m=e._zod.innerType;this.process(m,u),o.ref=m;break}case"custom":{if(this.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema");break}default:}}}let l=this.metadataRegistry.get(e);return l&&Object.assign(o.schema,l),this.io==="input"&&ir(e)&&(delete o.schema.examples,delete o.schema.default),this.io==="input"&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,this.seen.get(e).schema}emit(e,r){let n={cycles:r?.cycles??"ref",reused:r?.reused??"inline",external:r?.external??void 0},s=this.seen.get(e);if(!s)throw Error("Unprocessed schema. This is a bug in Zod.");let i=u=>{let p=this.target==="draft-2020-12"?"$defs":"definitions";if(n.external){let f=n.external.registry.get(u[0])?.id;if(f)return{ref:n.external.uri(f)};let g=u[1].defId??u[1].schema.id??`schema${this.counter++}`;return u[1].defId=g,{defId:g,ref:`${n.external.uri("__shared")}#/${p}/${g}`}}if(u[1]===s)return{ref:"#"};let d=`#/${p}/`,m=u[1].schema.id??`__schema${this.counter++}`;return{defId:m,ref:d+m}},a=u=>{if(u[1].schema.$ref)return;let p=u[1],{ref:d,defId:m}=i(u);p.def={...p.schema},m&&(p.defId=m);let f=p.schema;for(let g in f)delete f[g];f.$ref=d};for(let u of this.seen.entries()){let p=u[1];if(e===u[0]){a(u);continue}if(n.external){let d=n.external.registry.get(u[0])?.id;if(e!==u[0]&&d){a(u);continue}}if(this.metadataRegistry.get(u[0])?.id){a(u);continue}if(p.cycle){if(n.cycles==="throw")throw Error(`Cycle detected: #/${p.cycle?.join("/")}/ + path: iss.path ? [${Zc(h)}, ...iss.path] : [${Zc(h)}] + })));`),p.write(`newResult[${Zc(h)}] = ${y}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let v=p.compile();return(h,y)=>v(u,h,y)},s,i=Kd,a=!Xv.jitless,o=a&&a9.value,c=e.catchall,l;t._zod.parse=(u,p)=>{l??(l=r.value);let d=u.value;if(!i(d))return u.issues.push({expected:"object",code:"invalid_type",input:d,inst:t}),u;let m=[];if(a&&o&&p?.async===!1&&p.jitless!==!0)s||(s=n(e.shape)),u=s(u,p);else{u.value={};let y=l.shape;for(let b of l.keys){let x=y[b],w=x._zod.run({value:d[b],issues:[]},p),S=x._zod.optin==="optional"&&x._zod.optout==="optional";w instanceof Promise?m.push(w.then(E=>S?qF(E,u,b,d):vv(E,u,b))):S?qF(w,u,b,d):vv(w,u,b)}}if(!c)return m.length?Promise.all(m).then(()=>u):u;let f=[],g=l.keySet,v=c._zod,h=v.def.type;for(let y of Object.keys(d)){if(g.has(y))continue;if(h==="never"){f.push(y);continue}let b=v.run({value:d[y],issues:[]},p);b instanceof Promise?m.push(b.then(x=>vv(x,u,y))):vv(b,u,y)}return f.length&&u.issues.push({code:"unrecognized_keys",keys:f,input:d,inst:t}),m.length?Promise.all(m).then(()=>u):u}});function FF(t,e,r,n){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(i=>xs(i,n,Yr())))}),e}var WT=j("$ZodUnion",(t,e)=>{Pe.init(t,e),dt(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),dt(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),dt(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),dt(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(n=>n._zod.pattern);return new RegExp(`^(${r.map(n=>xy(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let s=!1,i=[];for(let a of e.options){let o=a._zod.run({value:r.value,issues:[]},n);if(o instanceof Promise)i.push(o),s=!0;else{if(o.issues.length===0)return o;i.push(o)}}return s?Promise.all(i).then(a=>FF(a,r,t,n)):FF(i,r,t,n)}}),V5=j("$ZodDiscriminatedUnion",(t,e)=>{WT.init(t,e);let r=t._zod.parse;dt(t._zod,"propValues",()=>{let s={};for(let i of e.options){let a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[o,c]of Object.entries(a)){s[o]||(s[o]=new Set);for(let l of c)s[o].add(l)}}return s});let n=by(()=>{let s=e.options,i=new Map;for(let a of s){let o=a._zod.propValues[e.discriminator];if(!o||o.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let c of o){if(i.has(c))throw Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});t._zod.parse=(s,i)=>{let a=s.value;if(!Kd(a))return s.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),s;let o=n.value.get(a?.[e.discriminator]);return o?o._zod.run(s,i):e.unionFallback?r(s,i):(s.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:a,path:[e.discriminator],inst:t}),s)}}),K5=j("$ZodIntersection",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value,i=e.left._zod.run({value:s,issues:[]},n),a=e.right._zod.run({value:s,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([o,c])=>HF(r,o,c)):HF(r,i,a)}});function pT(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Jd(t)&&Jd(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),s={...t,...e};for(let i of n){let a=pT(t[i],e[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};s[i]=a.data}return{valid:!0,data:s}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n{Pe.init(t,e);let r=e.items,n=r.length-[...r].reverse().findIndex(s=>s._zod.optin!=="optional");t._zod.parse=(s,i)=>{let a=s.value;if(!Array.isArray(a))return s.issues.push({input:a,inst:t,expected:"tuple",code:"invalid_type"}),s;s.value=[];let o=[];if(!e.rest){let l=a.length>r.length,u=a.length=a.length&&c>=n)continue;let u=l._zod.run({value:a[c],issues:[]},i);u instanceof Promise?o.push(u.then(p=>yv(p,s,c))):yv(u,s,c)}if(e.rest){let l=a.slice(r.length);for(let u of l){c++;let p=e.rest._zod.run({value:u,issues:[]},i);p instanceof Promise?o.push(p.then(d=>yv(d,s,c))):yv(p,s,c)}}return o.length?Promise.all(o).then(()=>s):s}});function yv(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues)),e.value[r]=t.value}var J5=j("$ZodRecord",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!Jd(s))return r.issues.push({expected:"record",code:"invalid_type",input:s,inst:t}),r;let i=[];if(e.keyType._zod.values){let a=e.keyType._zod.values;r.value={};for(let c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let l=e.valueType._zod.run({value:s[c],issues:[]},n);l instanceof Promise?i.push(l.then(u=>{u.issues.length&&r.issues.push(...Vn(c,u.issues)),r.value[c]=u.value})):(l.issues.length&&r.issues.push(...Vn(c,l.issues)),r.value[c]=l.value)}let o;for(let c in s)a.has(c)||(o=o??[],o.push(c));o&&o.length>0&&r.issues.push({code:"unrecognized_keys",input:s,inst:t,keys:o})}else{r.value={};for(let a of Reflect.ownKeys(s)){if(a==="__proto__")continue;let o=e.keyType._zod.run({value:a,issues:[]},n);if(o instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(o.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:o.issues.map(l=>xs(l,n,Yr())),input:a,path:[a],inst:t}),r.value[o.value]=o.value;continue}let c=e.valueType._zod.run({value:s[a],issues:[]},n);c instanceof Promise?i.push(c.then(l=>{l.issues.length&&r.issues.push(...Vn(a,l.issues)),r.value[o.value]=l.value})):(c.issues.length&&r.issues.push(...Vn(a,c.issues)),r.value[o.value]=c.value)}}return i.length?Promise.all(i).then(()=>r):r}}),Q5=j("$ZodMap",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!(s instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:s,inst:t}),r;let i=[];r.value=new Map;for(let[a,o]of s){let c=e.keyType._zod.run({value:a,issues:[]},n),l=e.valueType._zod.run({value:o,issues:[]},n);c instanceof Promise||l instanceof Promise?i.push(Promise.all([c,l]).then(([u,p])=>{BF(u,p,r,a,s,t,n)})):BF(c,l,r,a,s,t,n)}return i.length?Promise.all(i).then(()=>r):r}});function BF(t,e,r,n,s,i,a){t.issues.length&&(ey.has(typeof n)?r.issues.push(...Vn(n,t.issues)):r.issues.push({origin:"map",code:"invalid_key",input:s,inst:i,issues:t.issues.map(o=>xs(o,a,Yr()))})),e.issues.length&&(ey.has(typeof n)?r.issues.push(...Vn(n,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:s,inst:i,key:n,issues:e.issues.map(o=>xs(o,a,Yr()))})),r.value.set(t.value,e.value)}var Y5=j("$ZodSet",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!(s instanceof Set))return r.issues.push({input:s,inst:t,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let a of s){let o=e.valueType._zod.run({value:a,issues:[]},n);o instanceof Promise?i.push(o.then(c=>WF(c,r))):WF(o,r)}return i.length?Promise.all(i).then(()=>r):r}});function WF(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var X5=j("$ZodEnum",(t,e)=>{Pe.init(t,e);let r=ST(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>ey.has(typeof n)).map(n=>typeof n=="string"?po(n):n.toString()).join("|")})$`),t._zod.parse=(n,s)=>{let i=n.value;return t._zod.values.has(i)||n.issues.push({code:"invalid_value",values:r,input:i,inst:t}),n}}),eH=j("$ZodLiteral",(t,e)=>{Pe.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?po(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,n)=>{let s=r.value;return t._zod.values.has(s)||r.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),r}}),tH=j("$ZodFile",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;return s instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:s,inst:t}),r}}),ZT=j("$ZodTransform",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=e.transform(r.value,r);if(n.async)return(s instanceof Promise?s:Promise.resolve(s)).then(i=>(r.value=i,r));if(s instanceof Promise)throw new Yi;return r.value=s,r}}),rH=j("$ZodOptional",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",t._zod.optout="optional",dt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),dt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${xy(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,n):r.value===void 0?r:e.innerType._zod.run(r,n)}),nH=j("$ZodNullable",(t,e)=>{Pe.init(t,e),dt(t._zod,"optin",()=>e.innerType._zod.optin),dt(t._zod,"optout",()=>e.innerType._zod.optout),dt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${xy(r.source)}|null)$`):void 0}),dt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),sH=j("$ZodDefault",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>ZF(i,e)):ZF(s,e)}});function ZF(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var iH=j("$ZodPrefault",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),aH=j("$ZodNonOptional",(t,e)=>{Pe.init(t,e),dt(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>GF(i,t)):GF(s,t)}});function GF(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var oH=j("$ZodSuccess",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.issues.length===0,r)):(r.value=s.issues.length===0,r)}}),cH=j("$ZodCatch",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"optout",()=>e.innerType._zod.optout),dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>xs(a,n,Yr()))},input:r.value}),r.issues=[]),r)):(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(i=>xs(i,n,Yr()))},input:r.value}),r.issues=[]),r)}}),lH=j("$ZodNaN",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:t,expected:"nan",code:"invalid_type"}),r)}),GT=j("$ZodPipe",(t,e)=>{Pe.init(t,e),dt(t._zod,"values",()=>e.in._zod.values),dt(t._zod,"optin",()=>e.in._zod.optin),dt(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,n)=>{let s=e.in._zod.run(r,n);return s instanceof Promise?s.then(i=>VF(i,e,n)):VF(s,e,n)}});function VF(t,e,r){return Jc(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var uH=j("$ZodReadonly",(t,e)=>{Pe.init(t,e),dt(t._zod,"propValues",()=>e.innerType._zod.propValues),dt(t._zod,"values",()=>e.innerType._zod.values),dt(t._zod,"optin",()=>e.innerType._zod.optin),dt(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(KF):KF(s)}});function KF(t){return t.value=Object.freeze(t.value),t}var pH=j("$ZodTemplateLiteral",(t,e)=>{Pe.init(t,e);let r=[];for(let n of e.parts)if(n instanceof Pe){if(!n._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let s=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!s)throw Error(`Invalid template literal part: ${n._zod.traits}`);let i=s.startsWith("^")?1:0,a=s.endsWith("$")?s.length-1:s.length;r.push(s.slice(i,a))}else if(n===null||o9.has(typeof n))r.push(po(`${n}`));else throw Error(`Invalid template literal part: ${n}`);t._zod.pattern=new RegExp(`^${r.join("")}$`),t._zod.parse=(n,s)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:t,expected:"template_literal",code:"invalid_type"}),n):(t._zod.pattern.lastIndex=0,t._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:t,code:"invalid_format",format:"template_literal",pattern:t._zod.pattern.source}),n)}),dH=j("$ZodPromise",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>Promise.resolve(r.value).then(s=>e.innerType._zod.run({value:s,issues:[]},n))}),mH=j("$ZodLazy",(t,e)=>{Pe.init(t,e),dt(t._zod,"innerType",()=>e.getter()),dt(t._zod,"pattern",()=>t._zod.innerType._zod.pattern),dt(t._zod,"propValues",()=>t._zod.innerType._zod.propValues),dt(t._zod,"optin",()=>t._zod.innerType._zod.optin),dt(t._zod,"optout",()=>t._zod.innerType._zod.optout),t._zod.parse=(r,n)=>t._zod.innerType._zod.run(r,n)}),fH=j("$ZodCustom",(t,e)=>{Yt.init(t,e),Pe.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,s=e.fn(n);if(s instanceof Promise)return s.then(i=>JF(i,r,n,t));JF(s,r,n,t)}});function JF(t,e,r,n){if(!t){let s={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(s.params=n._zod.def.params),e.issues.push(p9(s))}}var VT={};lo(VT,{zhTW:()=>B_e,zhCN:()=>F_e,vi:()=>U_e,ur:()=>$_e,ua:()=>M_e,tr:()=>N_e,th:()=>O_e,ta:()=>I_e,sv:()=>R_e,sl:()=>k_e,ru:()=>S_e,pt:()=>__e,ps:()=>v_e,pl:()=>b_e,ota:()=>h_e,no:()=>m_e,nl:()=>p_e,ms:()=>l_e,mk:()=>o_e,ko:()=>i_e,kh:()=>n_e,ja:()=>t_e,it:()=>Xxe,id:()=>Qxe,hu:()=>Kxe,he:()=>Gxe,frCA:()=>Wxe,fr:()=>Hxe,fi:()=>qxe,fa:()=>Lxe,es:()=>zxe,eo:()=>Dxe,en:()=>hH,de:()=>Cxe,cs:()=>Pxe,ca:()=>Txe,be:()=>Exe,az:()=>wxe,ar:()=>xxe});var bxe=()=>{let t={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"};return s=>{switch(s.code){case"invalid_type":return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${s.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${Oe(s.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${s.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${s.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${s.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${s.minimum.toString()} ${a.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${s.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${s.prefix}"`:i.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${i.suffix}"`:i.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${i.includes}"`:i.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${i.pattern}`:`${n[i.format]??s.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${s.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${s.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${s.keys.length>1?"\u0629":""}: ${ee(s.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${s.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${s.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function xxe(){return{localeError:bxe()}}var _xe=()=>{let t={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${s.expected}, daxil olan ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${Oe(s.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${s.origin??"d\u0259y\u0259r"} ${i}${s.maximum.toString()} ${a.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${s.origin??"d\u0259y\u0259r"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${s.origin} ${i}${s.minimum.toString()} ${a.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${i.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:i.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${i.suffix}" il\u0259 bitm\u0259lidir`:i.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${i.includes}" daxil olmal\u0131d\u0131r`:i.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${i.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${n[i.format]??s.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${s.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${s.keys.length>1?"lar":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${s.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function wxe(){return{localeError:_xe()}}function QF(t,e,r,n){let s=Math.abs(t),i=s%10,a=s%100;return a>=11&&a<=19?n:i===1?e:i>=2&&i<=4?r:n}var Sxe=()=>{let t={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u043B\u0456\u043A";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0456\u045E";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${s.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${Oe(s.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);if(a){let o=Number(s.maximum),c=QF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${i}${s.maximum.toString()} ${c}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);if(a){let o=Number(s.minimum),c=QF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${i}${s.minimum.toString()} ${c}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${s.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${s.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${s.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function Exe(){return{localeError:Sxe()}}var kxe=()=>{let t={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Tipus inv\xE0lid: s'esperava ${s.expected}, s'ha rebut ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Valor inv\xE0lid: s'esperava ${Oe(s.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${ee(s.values," o ")}`;case"too_big":{let i=s.inclusive?"com a m\xE0xim":"menys de",a=e(s.origin);return a?`Massa gran: s'esperava que ${s.origin??"el valor"} contingu\xE9s ${i} ${s.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${s.origin??"el valor"} fos ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"com a m\xEDnim":"m\xE9s de",a=e(s.origin);return a?`Massa petit: s'esperava que ${s.origin} contingu\xE9s ${i} ${s.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${s.origin} fos ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${i.prefix}"`:i.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${i.suffix}"`:i.format==="includes"?`Format inv\xE0lid: ha d'incloure "${i.includes}"`:i.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${i.pattern}`:`Format inv\xE0lid per a ${n[i.format]??s.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${s.divisor}`;case"unrecognized_keys":return`Clau${s.keys.length>1?"s":""} no reconeguda${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${s.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${s.origin}`;default:return"Entrada inv\xE0lida"}}};function Txe(){return{localeError:kxe()}}var Rxe=()=>{let t={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u010D\xEDslo";case"string":return"\u0159et\u011Bzec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(s))return"pole";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"};return s=>{switch(s.code){case"invalid_type":return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${s.expected}, obdr\u017Eeno ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${Oe(s.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${s.origin??"hodnota"} mus\xED m\xEDt ${i}${s.maximum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${s.origin??"hodnota"} mus\xED b\xFDt ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${s.origin??"hodnota"} mus\xED m\xEDt ${i}${s.minimum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${s.origin??"hodnota"} mus\xED b\xFDt ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${i.prefix}"`:i.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${i.suffix}"`:i.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${i.includes}"`:i.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${i.pattern}`:`Neplatn\xFD form\xE1t ${n[i.format]??s.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${s.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${ee(s.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${s.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${s.origin}`;default:return"Neplatn\xFD vstup"}}};function Pxe(){return{localeError:Rxe()}}var Ixe=()=>{let t={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"Zahl";case"object":{if(Array.isArray(s))return"Array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return s=>{switch(s.code){case"invalid_type":return`Ung\xFCltige Eingabe: erwartet ${s.expected}, erhalten ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ung\xFCltige Eingabe: erwartet ${Oe(s.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Zu gro\xDF: erwartet, dass ${s.origin??"Wert"} ${i}${s.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${s.origin??"Wert"} ${i}${s.maximum.toString()} ist`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Zu klein: erwartet, dass ${s.origin} ${i}${s.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${s.origin} ${i}${s.minimum.toString()} ist`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ung\xFCltiger String: muss mit "${i.prefix}" beginnen`:i.format==="ends_with"?`Ung\xFCltiger String: muss mit "${i.suffix}" enden`:i.format==="includes"?`Ung\xFCltiger String: muss "${i.includes}" enthalten`:i.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${i.pattern} entsprechen`:`Ung\xFCltig: ${n[i.format]??s.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${s.divisor} sein`;case"unrecognized_keys":return`${s.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${s.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${s.origin}`;default:return"Ung\xFCltige Eingabe"}}};function Cxe(){return{localeError:Ixe()}}var Oxe=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},Axe=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(n){return t[n]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return n=>{switch(n.code){case"invalid_type":return`Invalid input: expected ${n.expected}, received ${Oxe(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${Oe(n.values[0])}`:`Invalid option: expected one of ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Too big: expected ${n.origin??"value"} to have ${s}${n.maximum.toString()} ${i.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Too small: expected ${n.origin} to have ${s}${n.minimum.toString()} ${i.unit}`:`Too small: expected ${n.origin} to be ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Invalid string: must start with "${s.prefix}"`:s.format==="ends_with"?`Invalid string: must end with "${s.suffix}"`:s.format==="includes"?`Invalid string: must include "${s.includes}"`:s.format==="regex"?`Invalid string: must match pattern ${s.pattern}`:`Invalid ${r[s.format]??n.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${n.divisor}`;case"unrecognized_keys":return`Unrecognized key${n.keys.length>1?"s":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`Invalid key in ${n.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${n.origin}`;default:return"Invalid input"}}};function hH(){return{localeError:Axe()}}var jxe=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"nombro";case"object":{if(Array.isArray(t))return"tabelo";if(t===null)return"senvalora";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},Nxe=()=>{let t={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function e(n){return t[n]??null}let r={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return n=>{switch(n.code){case"invalid_type":return`Nevalida enigo: atendi\u011Dis ${n.expected}, ricevi\u011Dis ${jxe(n.input)}`;case"invalid_value":return n.values.length===1?`Nevalida enigo: atendi\u011Dis ${Oe(n.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Tro granda: atendi\u011Dis ke ${n.origin??"valoro"} havu ${s}${n.maximum.toString()} ${i.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${n.origin??"valoro"} havu ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Tro malgranda: atendi\u011Dis ke ${n.origin} havu ${s}${n.minimum.toString()} ${i.unit}`:`Tro malgranda: atendi\u011Dis ke ${n.origin} estu ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${s.prefix}"`:s.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${s.suffix}"`:s.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${s.includes}"`:s.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${s.pattern}`:`Nevalida ${r[s.format]??n.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${n.divisor}`;case"unrecognized_keys":return`Nekonata${n.keys.length>1?"j":""} \u015Dlosilo${n.keys.length>1?"j":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${n.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${n.origin}`;default:return"Nevalida enigo"}}};function Dxe(){return{localeError:Nxe()}}var Mxe=()=>{let t={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(s))return"arreglo";if(s===null)return"nulo";if(Object.getPrototypeOf(s)!==Object.prototype)return s.constructor.name}}return i},n={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Entrada inv\xE1lida: se esperaba ${s.expected}, recibido ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entrada inv\xE1lida: se esperaba ${Oe(s.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Demasiado grande: se esperaba que ${s.origin??"valor"} tuviera ${i}${s.maximum.toString()} ${a.unit??"elementos"}`:`Demasiado grande: se esperaba que ${s.origin??"valor"} fuera ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Demasiado peque\xF1o: se esperaba que ${s.origin} tuviera ${i}${s.minimum.toString()} ${a.unit}`:`Demasiado peque\xF1o: se esperaba que ${s.origin} fuera ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${i.prefix}"`:i.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${i.suffix}"`:i.format==="includes"?`Cadena inv\xE1lida: debe incluir "${i.includes}"`:i.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${i.pattern}`:`Inv\xE1lido ${n[i.format]??s.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${s.divisor}`;case"unrecognized_keys":return`Llave${s.keys.length>1?"s":""} desconocida${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${s.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${s.origin}`;default:return"Entrada inv\xE1lida"}}};function zxe(){return{localeError:Mxe()}}var $xe=()=>{let t={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(s))return"\u0622\u0631\u0627\u06CC\u0647";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"};return s=>{switch(s.code){case"invalid_type":return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${s.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${r(s.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;case"invalid_value":return s.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${Oe(s.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${ee(s.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${s.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${s.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} ${a.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:i.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:i.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${i.includes}" \u0628\u0627\u0634\u062F`:i.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${i.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${n[i.format]??s.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${s.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${s.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${ee(s.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${s.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${s.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function Lxe(){return{localeError:$xe()}}var Uxe=()=>{let t={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return s=>{switch(s.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${s.expected}, oli ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${Oe(s.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Liian suuri: ${a.subject} t\xE4ytyy olla ${i}${s.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Liian pieni: ${a.subject} t\xE4ytyy olla ${i}${s.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${i.prefix}"`:i.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${i.suffix}"`:i.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${i.includes}"`:i.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${i.pattern}`:`Virheellinen ${n[i.format]??s.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${s.divisor} monikerta`;case"unrecognized_keys":return`${s.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${ee(s.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function qxe(){return{localeError:Uxe()}}var Fxe=()=>{let t={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"nombre";case"object":{if(Array.isArray(s))return"tableau";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return s=>{switch(s.code){case"invalid_type":return`Entr\xE9e invalide : ${s.expected} attendu, ${r(s.input)} re\xE7u`;case"invalid_value":return s.values.length===1?`Entr\xE9e invalide : ${Oe(s.values[0])} attendu`:`Option invalide : une valeur parmi ${ee(s.values,"|")} attendue`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Trop grand : ${s.origin??"valeur"} doit ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${s.origin??"valeur"} doit \xEAtre ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Trop petit : ${s.origin} doit ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Trop petit : ${s.origin} doit \xEAtre ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${i.pattern}`:`${n[i.format]??s.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${s.divisor}`;case"unrecognized_keys":return`Cl\xE9${s.keys.length>1?"s":""} non reconnue${s.keys.length>1?"s":""} : ${ee(s.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${s.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${s.origin}`;default:return"Entr\xE9e invalide"}}};function Hxe(){return{localeError:Fxe()}}var Bxe=()=>{let t={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return s=>{switch(s.code){case"invalid_type":return`Entr\xE9e invalide : attendu ${s.expected}, re\xE7u ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entr\xE9e invalide : attendu ${Oe(s.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"\u2264":"<",a=e(s.origin);return a?`Trop grand : attendu que ${s.origin??"la valeur"} ait ${i}${s.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${s.origin??"la valeur"} soit ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"\u2265":">",a=e(s.origin);return a?`Trop petit : attendu que ${s.origin} ait ${i}${s.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${s.origin} soit ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${i.pattern}`:`${n[i.format]??s.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${s.divisor}`;case"unrecognized_keys":return`Cl\xE9${s.keys.length>1?"s":""} non reconnue${s.keys.length>1?"s":""} : ${ee(s.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${s.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${s.origin}`;default:return"Entr\xE9e invalide"}}};function Wxe(){return{localeError:Bxe()}}var Zxe=()=>{let t={string:{unit:"\u05D0\u05D5\u05EA\u05D9\u05D5\u05EA",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u05E7\u05DC\u05D8",email:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",url:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",emoji:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",date:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",time:"\u05D6\u05DE\u05DF ISO",duration:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",ipv4:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",ipv6:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",cidrv4:"\u05D8\u05D5\u05D5\u05D7 IPv4",cidrv6:"\u05D8\u05D5\u05D5\u05D7 IPv6",base64:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",base64url:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",json_string:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",e164:"\u05DE\u05E1\u05E4\u05E8 E.164",jwt:"JWT",template_literal:"\u05E7\u05DC\u05D8"};return s=>{switch(s.code){case"invalid_type":return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${s.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${Oe(s.values[0])}`:`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05D0\u05D7\u05EA \u05DE\u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${s.origin??"value"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.maximum.toString()} ${a.unit??"elements"}`:`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${s.origin??"value"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${s.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.minimum.toString()} ${a.unit}`:`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${s.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1"${i.prefix}"`:i.format==="ends_with"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${i.suffix}"`:i.format==="includes"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${i.includes}"`:i.format==="regex"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${i.pattern}`:`${n[i.format]??s.format} \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${s.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${s.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${s.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u05DE\u05E4\u05EA\u05D7 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${s.origin}`;case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${s.origin}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function Gxe(){return{localeError:Zxe()}}var Vxe=()=>{let t={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"sz\xE1m";case"object":{if(Array.isArray(s))return"t\xF6mb";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"};return s=>{switch(s.code){case"invalid_type":return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${s.expected}, a kapott \xE9rt\xE9k ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${Oe(s.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`T\xFAl nagy: ${s.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${i}${s.maximum.toString()} ${a.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${s.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${s.origin} m\xE9rete t\xFAl kicsi ${i}${s.minimum.toString()} ${a.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${s.origin} t\xFAl kicsi ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\xC9rv\xE9nytelen string: "${i.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:i.format==="ends_with"?`\xC9rv\xE9nytelen string: "${i.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:i.format==="includes"?`\xC9rv\xE9nytelen string: "${i.includes}" \xE9rt\xE9ket kell tartalmaznia`:i.format==="regex"?`\xC9rv\xE9nytelen string: ${i.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${n[i.format]??s.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${s.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${s.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${s.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function Kxe(){return{localeError:Vxe()}}var Jxe=()=>{let t={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input tidak valid: diharapkan ${s.expected}, diterima ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input tidak valid: diharapkan ${Oe(s.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Terlalu besar: diharapkan ${s.origin??"value"} memiliki ${i}${s.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${s.origin??"value"} menjadi ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Terlalu kecil: diharapkan ${s.origin} memiliki ${i}${s.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${s.origin} menjadi ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`String tidak valid: harus dimulai dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak valid: harus berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak valid: harus menyertakan "${i.includes}"`:i.format==="regex"?`String tidak valid: harus sesuai pola ${i.pattern}`:`${n[i.format]??s.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${s.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${s.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${s.origin}`;default:return"Input tidak valid"}}};function Qxe(){return{localeError:Jxe()}}var Yxe=()=>{let t={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"numero";case"object":{if(Array.isArray(s))return"vettore";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input non valido: atteso ${s.expected}, ricevuto ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input non valido: atteso ${Oe(s.values[0])}`:`Opzione non valida: atteso uno tra ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Troppo grande: ${s.origin??"valore"} deve avere ${i}${s.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${s.origin??"valore"} deve essere ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Troppo piccolo: ${s.origin} deve avere ${i}${s.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${s.origin} deve essere ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Stringa non valida: deve iniziare con "${i.prefix}"`:i.format==="ends_with"?`Stringa non valida: deve terminare con "${i.suffix}"`:i.format==="includes"?`Stringa non valida: deve includere "${i.includes}"`:i.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${i.pattern}`:`Invalid ${n[i.format]??s.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${s.divisor}`;case"unrecognized_keys":return`Chiav${s.keys.length>1?"i":"e"} non riconosciut${s.keys.length>1?"e":"a"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${s.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${s.origin}`;default:return"Input non valido"}}};function Xxe(){return{localeError:Yxe()}}var e_e=()=>{let t={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u6570\u5024";case"object":{if(Array.isArray(s))return"\u914D\u5217";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"};return s=>{switch(s.code){case"invalid_type":return`\u7121\u52B9\u306A\u5165\u529B: ${s.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${r(s.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;case"invalid_value":return s.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${Oe(s.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${ee(s.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{let i=s.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",a=e(s.origin);return a?`\u5927\u304D\u3059\u304E\u308B\u5024: ${s.origin??"\u5024"}\u306F${s.maximum.toString()}${a.unit??"\u8981\u7D20"}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${s.origin??"\u5024"}\u306F${s.maximum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{let i=s.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",a=e(s.origin);return a?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${s.origin}\u306F${s.minimum.toString()}${a.unit}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${s.origin}\u306F${s.minimum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${i.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${n[i.format]??s.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${s.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${s.keys.length>1?"\u7FA4":""}: ${ee(s.keys,"\u3001")}`;case"invalid_key":return`${s.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${s.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function t_e(){return{localeError:e_e()}}var r_e=()=>{let t={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)":"\u179B\u17C1\u1781";case"object":{if(Array.isArray(s))return"\u17A2\u17B6\u179A\u17C1 (Array)";if(s===null)return"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"};return s=>{switch(s.code){case"invalid_type":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${Oe(s.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${s.maximum.toString()} ${a.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin} ${i} ${s.minimum.toString()} ${a.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin} ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${i.prefix}"`:i.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${i.suffix}"`:i.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${i.includes}"`:i.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${i.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${s.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${ee(s.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${s.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${s.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function n_e(){return{localeError:r_e()}}var s_e=()=>{let t={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"};return s=>{switch(s.code){case"invalid_type":return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${s.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${r(s.input)}\uC785\uB2C8\uB2E4`;case"invalid_value":return s.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${Oe(s.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${ee(s.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{let i=s.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",a=i==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",o=e(s.origin),c=o?.unit??"\uC694\uC18C";return o?`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${s.maximum.toString()}${c} ${i}${a}`:`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${s.maximum.toString()} ${i}${a}`}case"too_small":{let i=s.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",a=i==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",o=e(s.origin),c=o?.unit??"\uC694\uC18C";return o?`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${s.minimum.toString()}${c} ${i}${a}`:`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${s.minimum.toString()} ${i}${a}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:i.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${i.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${n[i.format]??s.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${s.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${ee(s.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${s.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${s.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function i_e(){return{localeError:s_e()}}var a_e=()=>{let t={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0431\u0440\u043E\u0458";case"object":{if(Array.isArray(s))return"\u043D\u0438\u0437\u0430";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"};return s=>{switch(s.code){case"invalid_type":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Invalid input: expected ${Oe(s.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${i}${s.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin} \u0434\u0430 \u0438\u043C\u0430 ${i}${s.minimum.toString()} ${a.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${i.pattern}`:`Invalid ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${s.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${s.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function o_e(){return{localeError:a_e()}}var c_e=()=>{let t={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"nombor";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input tidak sah: dijangka ${s.expected}, diterima ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input tidak sah: dijangka ${Oe(s.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Terlalu besar: dijangka ${s.origin??"nilai"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${s.origin??"nilai"} adalah ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Terlalu kecil: dijangka ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${s.origin} adalah ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`String tidak sah: mesti bermula dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak sah: mesti mengandungi "${i.includes}"`:i.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${i.pattern}`:`${n[i.format]??s.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${s.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${ee(s.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${s.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${s.origin}`;default:return"Input tidak sah"}}};function l_e(){return{localeError:c_e()}}var u_e=()=>{let t={string:{unit:"tekens"},file:{unit:"bytes"},array:{unit:"elementen"},set:{unit:"elementen"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"getal";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return s=>{switch(s.code){case"invalid_type":return`Ongeldige invoer: verwacht ${s.expected}, ontving ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ongeldige invoer: verwacht ${Oe(s.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Te lang: verwacht dat ${s.origin??"waarde"} ${i}${s.maximum.toString()} ${a.unit??"elementen"} bevat`:`Te lang: verwacht dat ${s.origin??"waarde"} ${i}${s.maximum.toString()} is`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Te kort: verwacht dat ${s.origin} ${i}${s.minimum.toString()} ${a.unit} bevat`:`Te kort: verwacht dat ${s.origin} ${i}${s.minimum.toString()} is`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ongeldige tekst: moet met "${i.prefix}" beginnen`:i.format==="ends_with"?`Ongeldige tekst: moet op "${i.suffix}" eindigen`:i.format==="includes"?`Ongeldige tekst: moet "${i.includes}" bevatten`:i.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${i.pattern}`:`Ongeldig: ${n[i.format]??s.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${s.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${s.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${s.origin}`;default:return"Ongeldige invoer"}}};function p_e(){return{localeError:u_e()}}var d_e=()=>{let t={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"tall";case"object":{if(Array.isArray(s))return"liste";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Ugyldig input: forventet ${s.expected}, fikk ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ugyldig verdi: forventet ${Oe(s.values[0])}`:`Ugyldig valg: forventet en av ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`For stor(t): forventet ${s.origin??"value"} til \xE5 ha ${i}${s.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${s.origin??"value"} til \xE5 ha ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`For lite(n): forventet ${s.origin} til \xE5 ha ${i}${s.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${s.origin} til \xE5 ha ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${i.prefix}"`:i.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${i.suffix}"`:i.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${i.includes}"`:i.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${i.pattern}`:`Ugyldig ${n[i.format]??s.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${s.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${s.origin}`;default:return"Ugyldig input"}}};function m_e(){return{localeError:d_e()}}var f_e=()=>{let t={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"numara";case"object":{if(Array.isArray(s))return"saf";if(s===null)return"gayb";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"};return s=>{switch(s.code){case"invalid_type":return`F\xE2sit giren: umulan ${s.expected}, al\u0131nan ${r(s.input)}`;case"invalid_value":return s.values.length===1?`F\xE2sit giren: umulan ${Oe(s.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Fazla b\xFCy\xFCk: ${s.origin??"value"}, ${i}${s.maximum.toString()} ${a.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${s.origin??"value"}, ${i}${s.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Fazla k\xFC\xE7\xFCk: ${s.origin}, ${i}${s.minimum.toString()} ${a.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${s.origin}, ${i}${s.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{let i=s;return i.format==="starts_with"?`F\xE2sit metin: "${i.prefix}" ile ba\u015Flamal\u0131.`:i.format==="ends_with"?`F\xE2sit metin: "${i.suffix}" ile bitmeli.`:i.format==="includes"?`F\xE2sit metin: "${i.includes}" ihtiv\xE2 etmeli.`:i.format==="regex"?`F\xE2sit metin: ${i.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${n[i.format]??s.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${s.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${s.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function h_e(){return{localeError:f_e()}}var g_e=()=>{let t={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(s))return"\u0627\u0631\u06D0";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"};return s=>{switch(s.code){case"invalid_type":return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${s.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${r(s.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;case"invalid_value":return s.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${Oe(s.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${ee(s.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${s.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${s.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} \u0648\u064A`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} ${a.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} \u0648\u064A`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:i.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:i.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${i.includes}" \u0648\u0644\u0631\u064A`:i.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${i.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${n[i.format]??s.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${s.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${s.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${s.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${s.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function v_e(){return{localeError:g_e()}}var y_e=()=>{let t={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"liczba";case"object":{if(Array.isArray(s))return"tablica";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"};return s=>{switch(s.code){case"invalid_type":return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${s.expected}, otrzymano ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${Oe(s.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${s.maximum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${s.minimum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${i.prefix}"`:i.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${i.suffix}"`:i.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${i.includes}"`:i.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${i.pattern}`:`Nieprawid\u0142ow(y/a/e) ${n[i.format]??s.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${s.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${s.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${s.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function b_e(){return{localeError:y_e()}}var x_e=()=>{let t={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(s))return"array";if(s===null)return"nulo";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Tipo inv\xE1lido: esperado ${s.expected}, recebido ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entrada inv\xE1lida: esperado ${Oe(s.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Muito grande: esperado que ${s.origin??"valor"} tivesse ${i}${s.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${s.origin??"valor"} fosse ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Muito pequeno: esperado que ${s.origin} tivesse ${i}${s.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${s.origin} fosse ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${i.prefix}"`:i.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${i.suffix}"`:i.format==="includes"?`Texto inv\xE1lido: deve incluir "${i.includes}"`:i.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${i.pattern}`:`${n[i.format]??s.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${s.divisor}`;case"unrecognized_keys":return`Chave${s.keys.length>1?"s":""} desconhecida${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${s.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${s.origin}`;default:return"Campo inv\xE1lido"}}};function __e(){return{localeError:x_e()}}function YF(t,e,r,n){let s=Math.abs(t),i=s%10,a=s%100;return a>=11&&a<=19?n:i===1?e:i>=2&&i<=4?r:n}var w_e=()=>{let t={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0441\u0438\u0432";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${s.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${Oe(s.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);if(a){let o=Number(s.maximum),c=YF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${s.maximum.toString()} ${c}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);if(a){let o=Number(s.minimum),c=YF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${s.minimum.toString()} ${c}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin} \u0431\u0443\u0434\u0435\u0442 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${s.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${s.keys.length>1?"\u0438":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${s.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${s.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function S_e(){return{localeError:w_e()}}var E_e=()=>{let t={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0161tevilo";case"object":{if(Array.isArray(s))return"tabela";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"};return s=>{switch(s.code){case"invalid_type":return`Neveljaven vnos: pri\u010Dakovano ${s.expected}, prejeto ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${Oe(s.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Preveliko: pri\u010Dakovano, da bo ${s.origin??"vrednost"} imelo ${i}${s.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${s.origin??"vrednost"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Premajhno: pri\u010Dakovano, da bo ${s.origin} imelo ${i}${s.minimum.toString()} ${a.unit}`:`Premajhno: pri\u010Dakovano, da bo ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${i.prefix}"`:i.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${i.suffix}"`:i.format==="includes"?`Neveljaven niz: mora vsebovati "${i.includes}"`:i.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${i.pattern}`:`Neveljaven ${n[i.format]??s.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${s.divisor}`;case"unrecognized_keys":return`Neprepoznan${s.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${s.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${s.origin}`;default:return"Neveljaven vnos"}}};function k_e(){return{localeError:E_e()}}var T_e=()=>{let t={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"antal";case"object":{if(Array.isArray(s))return"lista";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return s=>{switch(s.code){case"invalid_type":return`Ogiltig inmatning: f\xF6rv\xE4ntat ${s.expected}, fick ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${Oe(s.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`F\xF6r stor(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.maximum.toString()} ${a.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${s.origin??"v\xE4rdet"} att ha ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`F\xF6r lite(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.minimum.toString()} ${a.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${i.prefix}"`:i.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${i.suffix}"`:i.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${i.includes}"`:i.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${i.pattern}"`:`Ogiltig(t) ${n[i.format]??s.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${s.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${s.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function R_e(){return{localeError:T_e()}}var P_e=()=>{let t={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1":"\u0B8E\u0BA3\u0BCD";case"object":{if(Array.isArray(s))return"\u0B85\u0BA3\u0BBF";if(s===null)return"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${Oe(s.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${ee(s.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${s.maximum.toString()} ${a.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${s.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin} ${i}${s.minimum.toString()} ${a.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin} ${i}${s.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${i.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${s.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${s.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${s.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function I_e(){return{localeError:P_e()}}var C_e=()=>{let t={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)":"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02";case"object":{if(Array.isArray(s))return"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)";if(s===null)return"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"};return s=>{switch(s.code){case"invalid_type":return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${s.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${Oe(s.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",a=e(s.origin);return a?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.maximum.toString()} ${a.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",a=e(s.origin);return a?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.minimum.toString()} ${a.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${i.prefix}"`:i.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${i.suffix}"`:i.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${i.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:i.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${i.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${s.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${s.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${s.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function O_e(){return{localeError:C_e()}}var A_e=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},j_e=()=>{let t={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function e(n){return t[n]??null}let r={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"};return n=>{switch(n.code){case"invalid_type":return`Ge\xE7ersiz de\u011Fer: beklenen ${n.expected}, al\u0131nan ${A_e(n.input)}`;case"invalid_value":return n.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${Oe(n.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`\xC7ok b\xFCy\xFCk: beklenen ${n.origin??"de\u011Fer"} ${s}${n.maximum.toString()} ${i.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${n.origin??"de\u011Fer"} ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`\xC7ok k\xFC\xE7\xFCk: beklenen ${n.origin} ${s}${n.minimum.toString()} ${i.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${n.origin} ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Ge\xE7ersiz metin: "${s.prefix}" ile ba\u015Flamal\u0131`:s.format==="ends_with"?`Ge\xE7ersiz metin: "${s.suffix}" ile bitmeli`:s.format==="includes"?`Ge\xE7ersiz metin: "${s.includes}" i\xE7ermeli`:s.format==="regex"?`Ge\xE7ersiz metin: ${s.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${r[s.format]??n.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${n.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${n.keys.length>1?"lar":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`${n.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${n.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function N_e(){return{localeError:j_e()}}var D_e=()=>{let t={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0438\u0432";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${s.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${Oe(s.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin} \u0431\u0443\u0434\u0435 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${s.keys.length>1?"\u0456":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${s.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${s.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function M_e(){return{localeError:D_e()}}var z_e=()=>{let t={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0646\u0645\u0628\u0631";case"object":{if(Array.isArray(s))return"\u0622\u0631\u06D2";if(s===null)return"\u0646\u0644";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"};return s=>{switch(s.code){case"invalid_type":return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${s.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${r(s.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;case"invalid_value":return s.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${Oe(s.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${ee(s.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${s.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${s.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${i}${s.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${s.origin} \u06A9\u06D2 ${i}${s.minimum.toString()} ${a.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${s.origin} \u06A9\u0627 ${i}${s.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${i.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${s.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${s.keys.length>1?"\u0632":""}: ${ee(s.keys,"\u060C ")}`;case"invalid_key":return`${s.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${s.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function $_e(){return{localeError:z_e()}}var L_e=()=>{let t={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"s\u1ED1";case"object":{if(Array.isArray(s))return"m\u1EA3ng";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"};return s=>{switch(s.code){case"invalid_type":return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${s.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${Oe(s.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${s.origin??"gi\xE1 tr\u1ECB"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${s.origin??"gi\xE1 tr\u1ECB"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${i.prefix}"`:i.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${i.suffix}"`:i.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${i.includes}"`:i.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${i.pattern}`:`${n[i.format]??s.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${s.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${ee(s.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${s.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${s.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function U_e(){return{localeError:L_e()}}var q_e=()=>{let t={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u975E\u6570\u5B57(NaN)":"\u6570\u5B57";case"object":{if(Array.isArray(s))return"\u6570\u7EC4";if(s===null)return"\u7A7A\u503C(null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"};return s=>{switch(s.code){case"invalid_type":return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${s.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${Oe(s.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${s.origin??"\u503C"} ${i}${s.maximum.toString()} ${a.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${s.origin??"\u503C"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${s.origin} ${i}${s.minimum.toString()} ${a.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.prefix}" \u5F00\u5934`:i.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.suffix}" \u7ED3\u5C3E`:i.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${i.pattern}`:`\u65E0\u6548${n[i.format]??s.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${s.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${s.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function F_e(){return{localeError:q_e()}}var H_e=()=>{let t={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"};return s=>{switch(s.code){case"invalid_type":return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${s.expected}\uFF0C\u4F46\u6536\u5230 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${Oe(s.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${s.origin??"\u503C"} \u61C9\u70BA ${i}${s.maximum.toString()} ${a.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${s.origin??"\u503C"} \u61C9\u70BA ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${s.origin} \u61C9\u70BA ${i}${s.minimum.toString()} ${a.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${s.origin} \u61C9\u70BA ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.prefix}" \u958B\u982D`:i.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.suffix}" \u7D50\u5C3E`:i.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${i.pattern}`:`\u7121\u6548\u7684 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${s.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${s.keys.length>1?"\u5011":""}\uFF1A${ee(s.keys,"\u3001")}`;case"invalid_key":return`${s.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${s.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function B_e(){return{localeError:H_e()}}var gH=Symbol("ZodOutput"),vH=Symbol("ZodInput"),Qd=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];if(this._map.set(e,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}remove(e){return this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function KT(){return new Qd}var to=KT();function yH(t,e){return new t({type:"string",...J(e)})}function bH(t,e){return new t({type:"string",coerce:!0,...J(e)})}function JT(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...J(e)})}function iy(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...J(e)})}function QT(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...J(e)})}function YT(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...J(e)})}function XT(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...J(e)})}function eR(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...J(e)})}function tR(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...J(e)})}function rR(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...J(e)})}function nR(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...J(e)})}function sR(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...J(e)})}function iR(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...J(e)})}function aR(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...J(e)})}function oR(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...J(e)})}function cR(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...J(e)})}function lR(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...J(e)})}function uR(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...J(e)})}function pR(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...J(e)})}function dR(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...J(e)})}function mR(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...J(e)})}function fR(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...J(e)})}function hR(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...J(e)})}function gR(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...J(e)})}var xH={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function _H(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...J(e)})}function wH(t,e){return new t({type:"string",format:"date",check:"string_format",...J(e)})}function SH(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...J(e)})}function EH(t,e){return new t({type:"string",format:"duration",check:"string_format",...J(e)})}function kH(t,e){return new t({type:"number",checks:[],...J(e)})}function TH(t,e){return new t({type:"number",coerce:!0,checks:[],...J(e)})}function RH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...J(e)})}function PH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...J(e)})}function IH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...J(e)})}function CH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...J(e)})}function OH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...J(e)})}function AH(t,e){return new t({type:"boolean",...J(e)})}function jH(t,e){return new t({type:"boolean",coerce:!0,...J(e)})}function NH(t,e){return new t({type:"bigint",...J(e)})}function DH(t,e){return new t({type:"bigint",coerce:!0,...J(e)})}function MH(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...J(e)})}function zH(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...J(e)})}function $H(t,e){return new t({type:"symbol",...J(e)})}function LH(t,e){return new t({type:"undefined",...J(e)})}function UH(t,e){return new t({type:"null",...J(e)})}function qH(t){return new t({type:"any"})}function ay(t){return new t({type:"unknown"})}function FH(t,e){return new t({type:"never",...J(e)})}function HH(t,e){return new t({type:"void",...J(e)})}function BH(t,e){return new t({type:"date",...J(e)})}function WH(t,e){return new t({type:"date",coerce:!0,...J(e)})}function ZH(t,e){return new t({type:"nan",...J(e)})}function oo(t,e){return new zT({check:"less_than",...J(e),value:t,inclusive:!1})}function ys(t,e){return new zT({check:"less_than",...J(e),value:t,inclusive:!0})}function co(t,e){return new $T({check:"greater_than",...J(e),value:t,inclusive:!1})}function kn(t,e){return new $T({check:"greater_than",...J(e),value:t,inclusive:!0})}function GH(t){return co(0,t)}function VH(t){return oo(0,t)}function KH(t){return ys(0,t)}function JH(t){return kn(0,t)}function Yd(t,e){return new V9({check:"multiple_of",...J(e),value:t})}function Ey(t,e){return new Q9({check:"max_size",...J(e),maximum:t})}function Xd(t,e){return new Y9({check:"min_size",...J(e),minimum:t})}function vR(t,e){return new X9({check:"size_equals",...J(e),size:t})}function ky(t,e){return new e5({check:"max_length",...J(e),maximum:t})}function ml(t,e){return new t5({check:"min_length",...J(e),minimum:t})}function Ty(t,e){return new r5({check:"length_equals",...J(e),length:t})}function yR(t,e){return new n5({check:"string_format",format:"regex",...J(e),pattern:t})}function bR(t){return new s5({check:"string_format",format:"lowercase",...J(t)})}function xR(t){return new i5({check:"string_format",format:"uppercase",...J(t)})}function _R(t,e){return new a5({check:"string_format",format:"includes",...J(e),includes:t})}function wR(t,e){return new o5({check:"string_format",format:"starts_with",...J(e),prefix:t})}function SR(t,e){return new c5({check:"string_format",format:"ends_with",...J(e),suffix:t})}function QH(t,e,r){return new l5({check:"property",property:t,schema:e,...J(r)})}function ER(t,e){return new u5({check:"mime_type",mime:t,...J(e)})}function mo(t){return new p5({check:"overwrite",tx:t})}function kR(t){return mo(e=>e.normalize(t))}function TR(){return mo(t=>t.trim())}function RR(){return mo(t=>t.toLowerCase())}function PR(){return mo(t=>t.toUpperCase())}function IR(t,e,r){return new t({type:"array",element:e,...J(r)})}function W_e(t,e,r){return new t({type:"union",options:e,...J(r)})}function Z_e(t,e,r,n){return new t({type:"union",options:r,discriminator:e,...J(n)})}function G_e(t,e,r){return new t({type:"intersection",left:e,right:r})}function YH(t,e,r,n){let s=r instanceof Pe;return new t({type:"tuple",items:e,rest:s?r:null,...J(s?n:r)})}function V_e(t,e,r,n){return new t({type:"record",keyType:e,valueType:r,...J(n)})}function K_e(t,e,r,n){return new t({type:"map",keyType:e,valueType:r,...J(n)})}function J_e(t,e,r){return new t({type:"set",valueType:e,...J(r)})}function Q_e(t,e,r){let n=Array.isArray(e)?Object.fromEntries(e.map(s=>[s,s])):e;return new t({type:"enum",entries:n,...J(r)})}function Y_e(t,e,r){return new t({type:"enum",entries:e,...J(r)})}function X_e(t,e,r){return new t({type:"literal",values:Array.isArray(e)?e:[e],...J(r)})}function XH(t,e){return new t({type:"file",...J(e)})}function e0e(t,e){return new t({type:"transform",transform:e})}function t0e(t,e){return new t({type:"optional",innerType:e})}function r0e(t,e){return new t({type:"nullable",innerType:e})}function n0e(t,e,r){return new t({type:"default",innerType:e,get defaultValue(){return typeof r=="function"?r():r}})}function s0e(t,e,r){return new t({type:"nonoptional",innerType:e,...J(r)})}function i0e(t,e){return new t({type:"success",innerType:e})}function a0e(t,e,r){return new t({type:"catch",innerType:e,catchValue:typeof r=="function"?r:()=>r})}function o0e(t,e,r){return new t({type:"pipe",in:e,out:r})}function c0e(t,e){return new t({type:"readonly",innerType:e})}function l0e(t,e,r){return new t({type:"template_literal",parts:e,...J(r)})}function u0e(t,e){return new t({type:"lazy",getter:e})}function p0e(t,e){return new t({type:"promise",innerType:e})}function eB(t,e,r){let n=J(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function tB(t,e,r){return new t({type:"custom",check:"custom",fn:e,...J(r)})}function rB(t,e){let r=J(e),n=r.truthy??["true","1","yes","on","y","enabled"],s=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(d=>typeof d=="string"?d.toLowerCase():d),s=s.map(d=>typeof d=="string"?d.toLowerCase():d));let i=new Set(n),a=new Set(s),o=t.Pipe??GT,c=t.Boolean??qT,l=t.String??sm,u=new(t.Transform??ZT)({type:"transform",transform:(d,m)=>{let f=d;return r.case!=="sensitive"&&(f=f.toLowerCase()),i.has(f)?!0:a.has(f)?!1:(m.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...a],input:m.value,inst:u}),{})},error:r.error}),p=new o({type:"pipe",in:new l({type:"string",error:r.error}),out:u,error:r.error});return new o({type:"pipe",in:p,out:new c({type:"boolean",error:r.error}),error:r.error})}function nB(t,e,r,n={}){let s=J(n),i={...J(n),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:a=>r.test(a),...s};return r instanceof RegExp&&(i.pattern=r),new t(i)}var oy=class{constructor(e){this._def=e,this.def=e}implement(e){if(typeof e!="function")throw Error("implement() must be called with a function");let r=(...n)=>{let s=this._def.input?ty(this._def.input,n,void 0,{callee:r}):n;if(!Array.isArray(s))throw Error("Invalid arguments schema: not an array or tuple schema.");let i=e(...s);return this._def.output?ty(this._def.output,i,void 0,{callee:r}):i};return r}implementAsync(e){if(typeof e!="function")throw Error("implement() must be called with a function");let r=async(...n)=>{let s=this._def.input?await ry(this._def.input,n,void 0,{callee:r}):n;if(!Array.isArray(s))throw Error("Invalid arguments schema: not an array or tuple schema.");let i=await e(...s);return this._def.output?ry(this._def.output,i,void 0,{callee:r}):i};return r}input(...e){let r=this.constructor;return Array.isArray(e[0])?new r({type:"function",input:new Sy({type:"tuple",items:e[0],rest:e[1]}),output:this._def.output}):new r({type:"function",input:e[0],output:this._def.output})}output(e){return new this.constructor({type:"function",input:this._def.input,output:e})}};function sB(t){return new oy({type:"function",input:Array.isArray(t?.input)?YH(Sy,t?.input):t?.input??IR(HT,ay(sy)),output:t?.output??ay(sy)})}var em=class{constructor(e){this.counter=0,this.metadataRegistry=e?.metadata??to,this.target=e?.target??"draft-2020-12",this.unrepresentable=e?.unrepresentable??"throw",this.override=e?.override??(()=>{}),this.io=e?.io??"output",this.seen=new Map}process(e,r={path:[],schemaPath:[]}){var n;let s=e._zod.def,i={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},a=this.seen.get(e);if(a)return a.count++,r.schemaPath.includes(e)&&(a.cycle=r.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:r.path};this.seen.set(e,o);let c=e._zod.toJSONSchema?.();if(c)o.schema=c;else{let u={...r,schemaPath:[...r.schemaPath,e],path:r.path},p=e._zod.parent;if(p)o.ref=p,this.process(p,u),this.seen.get(p).isParent=!0;else{let d=o.schema;switch(s.type){case"string":{let m=d;m.type="string";let{minimum:f,maximum:g,format:v,patterns:h,contentEncoding:y}=e._zod.bag;if(typeof f=="number"&&(m.minLength=f),typeof g=="number"&&(m.maxLength=g),v&&(m.format=i[v]??v,m.format===""&&delete m.format),y&&(m.contentEncoding=y),h&&h.size>0){let b=[...h];b.length===1?m.pattern=b[0].source:b.length>1&&(o.schema.allOf=[...b.map(x=>({...this.target==="draft-7"?{type:"string"}:{},pattern:x.source}))])}break}case"number":{let m=d,{minimum:f,maximum:g,format:v,multipleOf:h,exclusiveMaximum:y,exclusiveMinimum:b}=e._zod.bag;typeof v=="string"&&v.includes("int")?m.type="integer":m.type="number",typeof b=="number"&&(m.exclusiveMinimum=b),typeof f=="number"&&(m.minimum=f,typeof b=="number"&&(b>=f?delete m.minimum:delete m.exclusiveMinimum)),typeof y=="number"&&(m.exclusiveMaximum=y),typeof g=="number"&&(m.maximum=g,typeof y=="number"&&(y<=g?delete m.maximum:delete m.exclusiveMaximum)),typeof h=="number"&&(m.multipleOf=h);break}case"boolean":{let m=d;m.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema");break}case"null":{d.type="null";break}case"any":break;case"unknown":break;case"undefined":case"never":{d.not={};break}case"void":{if(this.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema");break}case"date":{if(this.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema");break}case"array":{let m=d,{minimum:f,maximum:g}=e._zod.bag;typeof f=="number"&&(m.minItems=f),typeof g=="number"&&(m.maxItems=g),m.type="array",m.items=this.process(s.element,{...u,path:[...u.path,"items"]});break}case"object":{let m=d;m.type="object",m.properties={};let f=s.shape;for(let h in f)m.properties[h]=this.process(f[h],{...u,path:[...u.path,"properties",h]});let g=new Set(Object.keys(f)),v=new Set([...g].filter(h=>{let y=s.shape[h]._zod;return this.io==="input"?y.optin===void 0:y.optout===void 0}));v.size>0&&(m.required=Array.from(v)),s.catchall?._zod.def.type==="never"?m.additionalProperties=!1:s.catchall?s.catchall&&(m.additionalProperties=this.process(s.catchall,{...u,path:[...u.path,"additionalProperties"]})):this.io==="output"&&(m.additionalProperties=!1);break}case"union":{let m=d;m.anyOf=s.options.map((f,g)=>this.process(f,{...u,path:[...u.path,"anyOf",g]}));break}case"intersection":{let m=d,f=this.process(s.left,{...u,path:[...u.path,"allOf",0]}),g=this.process(s.right,{...u,path:[...u.path,"allOf",1]}),v=y=>"allOf"in y&&Object.keys(y).length===1,h=[...v(f)?f.allOf:[f],...v(g)?g.allOf:[g]];m.allOf=h;break}case"tuple":{let m=d;m.type="array";let f=s.items.map((h,y)=>this.process(h,{...u,path:[...u.path,"prefixItems",y]}));if(this.target==="draft-2020-12"?m.prefixItems=f:m.items=f,s.rest){let h=this.process(s.rest,{...u,path:[...u.path,"items"]});this.target==="draft-2020-12"?m.items=h:m.additionalItems=h}s.rest&&(m.items=this.process(s.rest,{...u,path:[...u.path,"items"]}));let{minimum:g,maximum:v}=e._zod.bag;typeof g=="number"&&(m.minItems=g),typeof v=="number"&&(m.maxItems=v);break}case"record":{let m=d;m.type="object",m.propertyNames=this.process(s.keyType,{...u,path:[...u.path,"propertyNames"]}),m.additionalProperties=this.process(s.valueType,{...u,path:[...u.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema");break}case"enum":{let m=d,f=ST(s.entries);f.every(g=>typeof g=="number")&&(m.type="number"),f.every(g=>typeof g=="string")&&(m.type="string"),m.enum=f;break}case"literal":{let m=d,f=[];for(let g of s.values)if(g===void 0){if(this.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof g=="bigint"){if(this.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");f.push(Number(g))}else f.push(g);if(f.length!==0)if(f.length===1){let g=f[0];m.type=g===null?"null":typeof g,m.const=g}else f.every(g=>typeof g=="number")&&(m.type="number"),f.every(g=>typeof g=="string")&&(m.type="string"),f.every(g=>typeof g=="boolean")&&(m.type="string"),f.every(g=>g===null)&&(m.type="null"),m.enum=f;break}case"file":{let m=d,f={type:"string",format:"binary",contentEncoding:"binary"},{minimum:g,maximum:v,mime:h}=e._zod.bag;g!==void 0&&(f.minLength=g),v!==void 0&&(f.maxLength=v),h?h.length===1?(f.contentMediaType=h[0],Object.assign(m,f)):m.anyOf=h.map(y=>({...f,contentMediaType:y})):Object.assign(m,f);break}case"transform":{if(this.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let m=this.process(s.innerType,u);d.anyOf=[m,{type:"null"}];break}case"nonoptional":{this.process(s.innerType,u),o.ref=s.innerType;break}case"success":{let m=d;m.type="boolean";break}case"default":{this.process(s.innerType,u),o.ref=s.innerType,d.default=JSON.parse(JSON.stringify(s.defaultValue));break}case"prefault":{this.process(s.innerType,u),o.ref=s.innerType,this.io==="input"&&(d._prefault=JSON.parse(JSON.stringify(s.defaultValue)));break}case"catch":{this.process(s.innerType,u),o.ref=s.innerType;let m;try{m=s.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}d.default=m;break}case"nan":{if(this.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let m=d,f=e._zod.pattern;if(!f)throw Error("Pattern not found in template literal");m.type="string",m.pattern=f.source;break}case"pipe":{let m=this.io==="input"?s.in._zod.def.type==="transform"?s.out:s.in:s.out;this.process(m,u),o.ref=m;break}case"readonly":{this.process(s.innerType,u),o.ref=s.innerType,d.readOnly=!0;break}case"promise":{this.process(s.innerType,u),o.ref=s.innerType;break}case"optional":{this.process(s.innerType,u),o.ref=s.innerType;break}case"lazy":{let m=e._zod.innerType;this.process(m,u),o.ref=m;break}case"custom":{if(this.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema");break}default:}}}let l=this.metadataRegistry.get(e);return l&&Object.assign(o.schema,l),this.io==="input"&&ir(e)&&(delete o.schema.examples,delete o.schema.default),this.io==="input"&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,this.seen.get(e).schema}emit(e,r){let n={cycles:r?.cycles??"ref",reused:r?.reused??"inline",external:r?.external??void 0},s=this.seen.get(e);if(!s)throw Error("Unprocessed schema. This is a bug in Zod.");let i=u=>{let p=this.target==="draft-2020-12"?"$defs":"definitions";if(n.external){let f=n.external.registry.get(u[0])?.id;if(f)return{ref:n.external.uri(f)};let g=u[1].defId??u[1].schema.id??`schema${this.counter++}`;return u[1].defId=g,{defId:g,ref:`${n.external.uri("__shared")}#/${p}/${g}`}}if(u[1]===s)return{ref:"#"};let d=`#/${p}/`,m=u[1].schema.id??`__schema${this.counter++}`;return{defId:m,ref:d+m}},a=u=>{if(u[1].schema.$ref)return;let p=u[1],{ref:d,defId:m}=i(u);p.def={...p.schema},m&&(p.defId=m);let f=p.schema;for(let g in f)delete f[g];f.$ref=d};for(let u of this.seen.entries()){let p=u[1];if(e===u[0]){a(u);continue}if(n.external){let d=n.external.registry.get(u[0])?.id;if(e!==u[0]&&d){a(u);continue}}if(this.metadataRegistry.get(u[0])?.id){a(u);continue}if(p.cycle){if(n.cycles==="throw")throw Error(`Cycle detected: #/${p.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`);n.cycles==="ref"&&a(u);continue}if(p.count>1&&n.reused==="ref"){a(u);continue}}let o=(u,p)=>{let d=this.seen.get(u),m=d.def??d.schema,f={...m};if(d.ref===null)return;let g=d.ref;if(d.ref=null,g){o(g,p);let v=this.seen.get(g).schema;v.$ref&&p.target==="draft-7"?(m.allOf=m.allOf??[],m.allOf.push(v)):(Object.assign(m,v),Object.assign(m,f))}d.isParent||this.override({zodSchema:u,jsonSchema:m,path:d.path??[]})};for(let u of[...this.seen.entries()].reverse())o(u[0],{target:this.target});let c={};this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),Object.assign(c,s.def);let l=n.external?.defs??{};for(let u of this.seen.entries()){let p=u[1];p.def&&p.defId&&(l[p.defId]=p.def)}!n.external&&Object.keys(l).length>0&&(this.target==="draft-2020-12"?c.$defs=l:c.definitions=l);try{return JSON.parse(JSON.stringify(c))}catch{throw Error("Error converting schema to JSON.")}}};function lB(t,e){if(t instanceof Yd){let n=new tm(e),s={};for(let o of t._idmap.entries()){let[c,l]=o;n.process(l)}let i={},a={registry:t,uri:e?.uri||(o=>o),defs:s};for(let o of t._idmap.entries()){let[c,l]=o;i[c]=n.emit(l,{...e,external:a})}if(Object.keys(s).length>0){let o=n.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[o]:s}}return{schemas:i}}let r=new tm(e);return r.process(t),r.emit(t,e)}function ir(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;switch(n.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return ir(n.element,r);case"object":{for(let s in n.shape)if(ir(n.shape[s],r))return!0;return!1}case"union":{for(let s of n.options)if(ir(s,r))return!0;return!1}case"intersection":return ir(n.left,r)||ir(n.right,r);case"tuple":{for(let s of n.items)if(ir(s,r))return!0;return!!(n.rest&&ir(n.rest,r))}case"record":return ir(n.keyType,r)||ir(n.valueType,r);case"map":return ir(n.keyType,r)||ir(n.valueType,r);case"set":return ir(n.valueType,r);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return ir(n.innerType,r);case"lazy":return ir(n.getter(),r);case"default":return ir(n.innerType,r);case"prefault":return ir(n.innerType,r);case"custom":return!1;case"transform":return!0;case"pipe":return ir(n.in,r)||ir(n.out,r);case"success":return!1;case"catch":return!1;default:}throw Error(`Unknown schema type: ${n.type}`)}var y0e={},b0e=j("ZodMiniType",(t,e)=>{if(!t._zod)throw Error("Uninitialized schema in ZodMiniType.");Pe.init(t,e),t.def=e,t.parse=(r,n)=>ny(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>DT(t,r,n),t.parseAsync=async(r,n)=>sy(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>zT(t,r,n),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>ws(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t)}),B$e=j("ZodMiniObject",(t,e)=>{GT.init(t,e),b0e.init(t,e),Be.defineLazy(t,"shape",()=>e.shape)});var Vc={};uo(Vc,{xid:()=>j0e,void:()=>ewe,uuidv7:()=>T0e,uuidv6:()=>E0e,uuidv4:()=>k0e,uuid:()=>S0e,url:()=>R0e,uppercase:()=>SR,unknown:()=>$t,union:()=>vt,undefined:()=>Y0e,ulid:()=>A0e,uint64:()=>J0e,uint32:()=>G0e,tuple:()=>swe,trim:()=>IR,treeifyError:()=>v9,transform:()=>c1,toUpperCase:()=>OR,toLowerCase:()=>CR,toJSONSchema:()=>lB,templateLiteral:()=>mwe,symbol:()=>Q0e,superRefine:()=>e3,success:()=>pwe,stringbool:()=>gwe,stringFormat:()=>H0e,string:()=>L,strictObject:()=>nwe,startsWith:()=>ER,size:()=>xR,setErrorMap:()=>bwe,set:()=>owe,safeParseAsync:()=>yB,safeParse:()=>vB,registry:()=>YT,regexes:()=>$T,regex:()=>_R,refine:()=>XB,record:()=>Ot,readonly:()=>ZB,property:()=>tB,promise:()=>fwe,prettifyError:()=>b9,preprocess:()=>d1,prefault:()=>LB,positive:()=>QH,pipe:()=>dy,partialRecord:()=>iwe,parseAsync:()=>gB,parse:()=>hB,overwrite:()=>fo,optional:()=>Lt,object:()=>oe,number:()=>mt,nullish:()=>uwe,nullable:()=>py,null:()=>jy,normalize:()=>PR,nonpositive:()=>XH,nonoptional:()=>UB,nonnegative:()=>eB,never:()=>Ny,negative:()=>YH,nativeEnum:()=>cwe,nanoid:()=>I0e,nan:()=>dwe,multipleOf:()=>Xd,minSize:()=>em,minLength:()=>fl,mime:()=>RR,maxSize:()=>Ty,maxLength:()=>Ry,map:()=>awe,lte:()=>ys,lt:()=>co,lowercase:()=>wR,looseObject:()=>Kr,locales:()=>QT,literal:()=>de,length:()=>Py,lazy:()=>KB,ksuid:()=>N0e,keyof:()=>rwe,jwt:()=>F0e,json:()=>vwe,iso:()=>jR,ipv6:()=>M0e,ipv4:()=>D0e,intersection:()=>My,int64:()=>K0e,int32:()=>Z0e,int:()=>hT,instanceof:()=>hwe,includes:()=>kR,guid:()=>w0e,gte:()=>En,gt:()=>lo,globalRegistry:()=>ro,getErrorMap:()=>xwe,function:()=>cB,formatError:()=>OT,float64:()=>W0e,float32:()=>B0e,flattenError:()=>CT,file:()=>lwe,enum:()=>vn,endsWith:()=>TR,emoji:()=>P0e,email:()=>_0e,e164:()=>q0e,discriminatedUnion:()=>i1,date:()=>twe,custom:()=>YB,cuid2:()=>O0e,cuid:()=>C0e,core:()=>i9,config:()=>Yr,coerce:()=>t3,clone:()=>ws,cidrv6:()=>$0e,cidrv4:()=>z0e,check:()=>QB,catch:()=>HB,boolean:()=>ar,bigint:()=>V0e,base64url:()=>U0e,base64:()=>L0e,array:()=>We,any:()=>X0e,_default:()=>zB,_ZodString:()=>$R,ZodXID:()=>ZR,ZodVoid:()=>TB,ZodUnknown:()=>kB,ZodUnion:()=>s1,ZodUndefined:()=>_B,ZodUUID:()=>di,ZodURL:()=>UR,ZodULID:()=>WR,ZodType:()=>ze,ZodTuple:()=>CB,ZodTransform:()=>o1,ZodTemplateLiteral:()=>GB,ZodSymbol:()=>xB,ZodSuccess:()=>qB,ZodStringFormat:()=>At,ZodString:()=>Iy,ZodSet:()=>AB,ZodRecord:()=>a1,ZodRealError:()=>am,ZodReadonly:()=>WB,ZodPromise:()=>JB,ZodPrefault:()=>$B,ZodPipe:()=>p1,ZodOptional:()=>l1,ZodObject:()=>Dy,ZodNumberFormat:()=>xl,ZodNumber:()=>Cy,ZodNullable:()=>DB,ZodNull:()=>wB,ZodNonOptional:()=>u1,ZodNever:()=>EB,ZodNanoID:()=>FR,ZodNaN:()=>BB,ZodMap:()=>OB,ZodLiteral:()=>jB,ZodLazy:()=>VB,ZodKSUID:()=>GR,ZodJWT:()=>t1,ZodIssueCode:()=>ywe,ZodIntersection:()=>IB,ZodISOTime:()=>MR,ZodISODuration:()=>zR,ZodISODateTime:()=>NR,ZodISODate:()=>DR,ZodIPv6:()=>KR,ZodIPv4:()=>VR,ZodGUID:()=>uy,ZodFile:()=>NB,ZodError:()=>x0e,ZodEnum:()=>rm,ZodEmoji:()=>qR,ZodEmail:()=>LR,ZodE164:()=>e1,ZodDiscriminatedUnion:()=>PB,ZodDefault:()=>MB,ZodDate:()=>n1,ZodCustomStringFormat:()=>bB,ZodCustom:()=>zy,ZodCatch:()=>FB,ZodCUID2:()=>BR,ZodCUID:()=>HR,ZodCIDRv6:()=>QR,ZodCIDRv4:()=>JR,ZodBoolean:()=>Oy,ZodBigIntFormat:()=>r1,ZodBigInt:()=>Ay,ZodBase64URL:()=>XR,ZodBase64:()=>YR,ZodArray:()=>RB,ZodAny:()=>SB,TimePrecision:()=>kH,NEVER:()=>a9,$output:()=>xH,$input:()=>_H,$brand:()=>o9});var jR={};uo(jR,{time:()=>dB,duration:()=>mB,datetime:()=>uB,date:()=>pB,ZodISOTime:()=>MR,ZodISODuration:()=>zR,ZodISODateTime:()=>NR,ZodISODate:()=>DR});var NR=j("ZodISODateTime",(t,e)=>{P5.init(t,e),At.init(t,e)});function uB(t){return EH(NR,t)}var DR=j("ZodISODate",(t,e)=>{I5.init(t,e),At.init(t,e)});function pB(t){return TH(DR,t)}var MR=j("ZodISOTime",(t,e)=>{C5.init(t,e),At.init(t,e)});function dB(t){return RH(MR,t)}var zR=j("ZodISODuration",(t,e)=>{O5.init(t,e),At.init(t,e)});function mB(t){return PH(zR,t)}var fB=(t,e)=>{IT.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>OT(t,r)},flatten:{value:r=>CT(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},x0e=j("ZodError",fB),am=j("ZodError",fB,{Parent:Error}),hB=AT(am),gB=jT(am),vB=NT(am),yB=MT(am),ze=j("ZodType",(t,e)=>(Pe.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>ws(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t),t.parse=(r,n)=>hB(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>vB(t,r,n),t.parseAsync=async(r,n)=>gB(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>yB(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(XB(r,n)),t.superRefine=r=>t.check(e3(r)),t.overwrite=r=>t.check(fo(r)),t.optional=()=>Lt(t),t.nullable=()=>py(t),t.nullish=()=>Lt(py(t)),t.nonoptional=r=>UB(t,r),t.array=()=>We(t),t.or=r=>vt([t,r]),t.and=r=>My(t,r),t.transform=r=>dy(t,c1(r)),t.default=r=>zB(t,r),t.prefault=r=>LB(t,r),t.catch=r=>HB(t,r),t.pipe=r=>dy(t,r),t.readonly=()=>ZB(t),t.describe=r=>{let n=t.clone();return ro.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return ro.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return ro.get(t);let n=t.clone();return ro.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),$R=j("_ZodString",(t,e)=>{im.init(t,e),ze.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(_R(...n)),t.includes=(...n)=>t.check(kR(...n)),t.startsWith=(...n)=>t.check(ER(...n)),t.endsWith=(...n)=>t.check(TR(...n)),t.min=(...n)=>t.check(fl(...n)),t.max=(...n)=>t.check(Ry(...n)),t.length=(...n)=>t.check(Py(...n)),t.nonempty=(...n)=>t.check(fl(1,...n)),t.lowercase=n=>t.check(wR(n)),t.uppercase=n=>t.check(SR(n)),t.trim=()=>t.check(IR()),t.normalize=(...n)=>t.check(PR(...n)),t.toLowerCase=()=>t.check(CR()),t.toUpperCase=()=>t.check(OR())}),Iy=j("ZodString",(t,e)=>{im.init(t,e),$R.init(t,e),t.email=r=>t.check(XT(LR,r)),t.url=r=>t.check(sR(UR,r)),t.jwt=r=>t.check(bR(t1,r)),t.emoji=r=>t.check(iR(qR,r)),t.guid=r=>t.check(oy(uy,r)),t.uuid=r=>t.check(eR(di,r)),t.uuidv4=r=>t.check(tR(di,r)),t.uuidv6=r=>t.check(rR(di,r)),t.uuidv7=r=>t.check(nR(di,r)),t.nanoid=r=>t.check(aR(FR,r)),t.guid=r=>t.check(oy(uy,r)),t.cuid=r=>t.check(oR(HR,r)),t.cuid2=r=>t.check(cR(BR,r)),t.ulid=r=>t.check(lR(WR,r)),t.base64=r=>t.check(gR(YR,r)),t.base64url=r=>t.check(vR(XR,r)),t.xid=r=>t.check(uR(ZR,r)),t.ksuid=r=>t.check(pR(GR,r)),t.ipv4=r=>t.check(dR(VR,r)),t.ipv6=r=>t.check(mR(KR,r)),t.cidrv4=r=>t.check(fR(JR,r)),t.cidrv6=r=>t.check(hR(QR,r)),t.e164=r=>t.check(yR(e1,r)),t.datetime=r=>t.check(uB(r)),t.date=r=>t.check(pB(r)),t.time=r=>t.check(dB(r)),t.duration=r=>t.check(mB(r))});function L(t){return wH(Iy,t)}var At=j("ZodStringFormat",(t,e)=>{Et.init(t,e),$R.init(t,e)}),LR=j("ZodEmail",(t,e)=>{b5.init(t,e),At.init(t,e)});function _0e(t){return XT(LR,t)}var uy=j("ZodGUID",(t,e)=>{v5.init(t,e),At.init(t,e)});function w0e(t){return oy(uy,t)}var di=j("ZodUUID",(t,e)=>{y5.init(t,e),At.init(t,e)});function S0e(t){return eR(di,t)}function k0e(t){return tR(di,t)}function E0e(t){return rR(di,t)}function T0e(t){return nR(di,t)}var UR=j("ZodURL",(t,e)=>{x5.init(t,e),At.init(t,e)});function R0e(t){return sR(UR,t)}var qR=j("ZodEmoji",(t,e)=>{_5.init(t,e),At.init(t,e)});function P0e(t){return iR(qR,t)}var FR=j("ZodNanoID",(t,e)=>{w5.init(t,e),At.init(t,e)});function I0e(t){return aR(FR,t)}var HR=j("ZodCUID",(t,e)=>{S5.init(t,e),At.init(t,e)});function C0e(t){return oR(HR,t)}var BR=j("ZodCUID2",(t,e)=>{k5.init(t,e),At.init(t,e)});function O0e(t){return cR(BR,t)}var WR=j("ZodULID",(t,e)=>{E5.init(t,e),At.init(t,e)});function A0e(t){return lR(WR,t)}var ZR=j("ZodXID",(t,e)=>{T5.init(t,e),At.init(t,e)});function j0e(t){return uR(ZR,t)}var GR=j("ZodKSUID",(t,e)=>{R5.init(t,e),At.init(t,e)});function N0e(t){return pR(GR,t)}var VR=j("ZodIPv4",(t,e)=>{A5.init(t,e),At.init(t,e)});function D0e(t){return dR(VR,t)}var KR=j("ZodIPv6",(t,e)=>{j5.init(t,e),At.init(t,e)});function M0e(t){return mR(KR,t)}var JR=j("ZodCIDRv4",(t,e)=>{N5.init(t,e),At.init(t,e)});function z0e(t){return fR(JR,t)}var QR=j("ZodCIDRv6",(t,e)=>{D5.init(t,e),At.init(t,e)});function $0e(t){return hR(QR,t)}var YR=j("ZodBase64",(t,e)=>{M5.init(t,e),At.init(t,e)});function L0e(t){return gR(YR,t)}var XR=j("ZodBase64URL",(t,e)=>{$5.init(t,e),At.init(t,e)});function U0e(t){return vR(XR,t)}var e1=j("ZodE164",(t,e)=>{L5.init(t,e),At.init(t,e)});function q0e(t){return yR(e1,t)}var t1=j("ZodJWT",(t,e)=>{q5.init(t,e),At.init(t,e)});function F0e(t){return bR(t1,t)}var bB=j("ZodCustomStringFormat",(t,e)=>{F5.init(t,e),At.init(t,e)});function H0e(t,e,r={}){return oB(bB,t,e,r)}var Cy=j("ZodNumber",(t,e)=>{HT.init(t,e),ze.init(t,e),t.gt=(n,s)=>t.check(lo(n,s)),t.gte=(n,s)=>t.check(En(n,s)),t.min=(n,s)=>t.check(En(n,s)),t.lt=(n,s)=>t.check(co(n,s)),t.lte=(n,s)=>t.check(ys(n,s)),t.max=(n,s)=>t.check(ys(n,s)),t.int=n=>t.check(hT(n)),t.safe=n=>t.check(hT(n)),t.positive=n=>t.check(lo(0,n)),t.nonnegative=n=>t.check(En(0,n)),t.negative=n=>t.check(co(0,n)),t.nonpositive=n=>t.check(ys(0,n)),t.multipleOf=(n,s)=>t.check(Xd(n,s)),t.step=(n,s)=>t.check(Xd(n,s)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function mt(t){return IH(Cy,t)}var xl=j("ZodNumberFormat",(t,e)=>{H5.init(t,e),Cy.init(t,e)});function hT(t){return OH(xl,t)}function B0e(t){return AH(xl,t)}function W0e(t){return jH(xl,t)}function Z0e(t){return NH(xl,t)}function G0e(t){return DH(xl,t)}var Oy=j("ZodBoolean",(t,e)=>{BT.init(t,e),ze.init(t,e)});function ar(t){return MH(Oy,t)}var Ay=j("ZodBigInt",(t,e)=>{WT.init(t,e),ze.init(t,e),t.gte=(n,s)=>t.check(En(n,s)),t.min=(n,s)=>t.check(En(n,s)),t.gt=(n,s)=>t.check(lo(n,s)),t.gte=(n,s)=>t.check(En(n,s)),t.min=(n,s)=>t.check(En(n,s)),t.lt=(n,s)=>t.check(co(n,s)),t.lte=(n,s)=>t.check(ys(n,s)),t.max=(n,s)=>t.check(ys(n,s)),t.positive=n=>t.check(lo(BigInt(0),n)),t.negative=n=>t.check(co(BigInt(0),n)),t.nonpositive=n=>t.check(ys(BigInt(0),n)),t.nonnegative=n=>t.check(En(BigInt(0),n)),t.multipleOf=(n,s)=>t.check(Xd(n,s));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function V0e(t){return $H(Ay,t)}var r1=j("ZodBigIntFormat",(t,e)=>{B5.init(t,e),Ay.init(t,e)});function K0e(t){return UH(r1,t)}function J0e(t){return qH(r1,t)}var xB=j("ZodSymbol",(t,e)=>{W5.init(t,e),ze.init(t,e)});function Q0e(t){return FH(xB,t)}var _B=j("ZodUndefined",(t,e)=>{Z5.init(t,e),ze.init(t,e)});function Y0e(t){return HH(_B,t)}var wB=j("ZodNull",(t,e)=>{G5.init(t,e),ze.init(t,e)});function jy(t){return BH(wB,t)}var SB=j("ZodAny",(t,e)=>{V5.init(t,e),ze.init(t,e)});function X0e(){return WH(SB)}var kB=j("ZodUnknown",(t,e)=>{ay.init(t,e),ze.init(t,e)});function $t(){return cy(kB)}var EB=j("ZodNever",(t,e)=>{K5.init(t,e),ze.init(t,e)});function Ny(t){return ZH(EB,t)}var TB=j("ZodVoid",(t,e)=>{J5.init(t,e),ze.init(t,e)});function ewe(t){return GH(TB,t)}var n1=j("ZodDate",(t,e)=>{Q5.init(t,e),ze.init(t,e),t.min=(n,s)=>t.check(En(n,s)),t.max=(n,s)=>t.check(ys(n,s));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function twe(t){return VH(n1,t)}var RB=j("ZodArray",(t,e)=>{ZT.init(t,e),ze.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(fl(r,n)),t.nonempty=r=>t.check(fl(1,r)),t.max=(r,n)=>t.check(Ry(r,n)),t.length=(r,n)=>t.check(Py(r,n)),t.unwrap=()=>t.element});function We(t,e){return AR(RB,t,e)}function rwe(t){let e=t._zod.def.shape;return de(Object.keys(e))}var Dy=j("ZodObject",(t,e)=>{GT.init(t,e),ze.init(t,e),Be.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>vn(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:$t()}),t.loose=()=>t.clone({...t._zod.def,catchall:$t()}),t.strict=()=>t.clone({...t._zod.def,catchall:Ny()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>Be.extend(t,r),t.merge=r=>Be.merge(t,r),t.pick=r=>Be.pick(t,r),t.omit=r=>Be.omit(t,r),t.partial=(...r)=>Be.partial(l1,t,r[0]),t.required=(...r)=>Be.required(u1,t,r[0])});function oe(t,e){let r={type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},...Be.normalizeParams(e)};return new Dy(r)}function nwe(t,e){return new Dy({type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},catchall:Ny(),...Be.normalizeParams(e)})}function Kr(t,e){return new Dy({type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},catchall:$t(),...Be.normalizeParams(e)})}var s1=j("ZodUnion",(t,e)=>{VT.init(t,e),ze.init(t,e),t.options=e.options});function vt(t,e){return new s1({type:"union",options:t,...Be.normalizeParams(e)})}var PB=j("ZodDiscriminatedUnion",(t,e)=>{s1.init(t,e),Y5.init(t,e)});function i1(t,e,r){return new PB({type:"union",options:e,discriminator:t,...Be.normalizeParams(r)})}var IB=j("ZodIntersection",(t,e)=>{X5.init(t,e),ze.init(t,e)});function My(t,e){return new IB({type:"intersection",left:t,right:e})}var CB=j("ZodTuple",(t,e)=>{Ey.init(t,e),ze.init(t,e),t.rest=r=>t.clone({...t._zod.def,rest:r})});function swe(t,e,r){let n=e instanceof Pe,s=n?r:e;return new CB({type:"tuple",items:t,rest:n?e:null,...Be.normalizeParams(s)})}var a1=j("ZodRecord",(t,e)=>{eH.init(t,e),ze.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function Ot(t,e,r){return new a1({type:"record",keyType:t,valueType:e,...Be.normalizeParams(r)})}function iwe(t,e,r){return new a1({type:"record",keyType:vt([t,Ny()]),valueType:e,...Be.normalizeParams(r)})}var OB=j("ZodMap",(t,e)=>{tH.init(t,e),ze.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function awe(t,e,r){return new OB({type:"map",keyType:t,valueType:e,...Be.normalizeParams(r)})}var AB=j("ZodSet",(t,e)=>{rH.init(t,e),ze.init(t,e),t.min=(...r)=>t.check(em(...r)),t.nonempty=r=>t.check(em(1,r)),t.max=(...r)=>t.check(Ty(...r)),t.size=(...r)=>t.check(xR(...r))});function owe(t,e){return new AB({type:"set",valueType:t,...Be.normalizeParams(e)})}var rm=j("ZodEnum",(t,e)=>{nH.init(t,e),ze.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,s)=>{let i={};for(let a of n)if(r.has(a))i[a]=e.entries[a];else throw Error(`Key ${a} not found in enum`);return new rm({...e,checks:[],...Be.normalizeParams(s),entries:i})},t.exclude=(n,s)=>{let i={...e.entries};for(let a of n)if(r.has(a))delete i[a];else throw Error(`Key ${a} not found in enum`);return new rm({...e,checks:[],...Be.normalizeParams(s),entries:i})}});function vn(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new rm({type:"enum",entries:r,...Be.normalizeParams(e)})}function cwe(t,e){return new rm({type:"enum",entries:t,...Be.normalizeParams(e)})}var jB=j("ZodLiteral",(t,e)=>{sH.init(t,e),ze.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function de(t,e){return new jB({type:"literal",values:Array.isArray(t)?t:[t],...Be.normalizeParams(e)})}var NB=j("ZodFile",(t,e)=>{iH.init(t,e),ze.init(t,e),t.min=(r,n)=>t.check(em(r,n)),t.max=(r,n)=>t.check(Ty(r,n)),t.mime=(r,n)=>t.check(RR(Array.isArray(r)?r:[r],n))});function lwe(t){return nB(NB,t)}var o1=j("ZodTransform",(t,e)=>{KT.init(t,e),ze.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=i=>{if(typeof i=="string")r.issues.push(Be.issue(i,r.value,e));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=t),a.continue??(a.continue=!0),r.issues.push(Be.issue(a))}};let s=e.transform(r.value,r);return s instanceof Promise?s.then(i=>(r.value=i,r)):(r.value=s,r)}});function c1(t){return new o1({type:"transform",transform:t})}var l1=j("ZodOptional",(t,e)=>{aH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Lt(t){return new l1({type:"optional",innerType:t})}var DB=j("ZodNullable",(t,e)=>{oH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function py(t){return new DB({type:"nullable",innerType:t})}function uwe(t){return Lt(py(t))}var MB=j("ZodDefault",(t,e)=>{cH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function zB(t,e){return new MB({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var $B=j("ZodPrefault",(t,e)=>{lH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function LB(t,e){return new $B({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var u1=j("ZodNonOptional",(t,e)=>{uH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function UB(t,e){return new u1({type:"nonoptional",innerType:t,...Be.normalizeParams(e)})}var qB=j("ZodSuccess",(t,e)=>{pH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function pwe(t){return new qB({type:"success",innerType:t})}var FB=j("ZodCatch",(t,e)=>{dH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function HB(t,e){return new FB({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var BB=j("ZodNaN",(t,e)=>{mH.init(t,e),ze.init(t,e)});function dwe(t){return JH(BB,t)}var p1=j("ZodPipe",(t,e)=>{JT.init(t,e),ze.init(t,e),t.in=e.in,t.out=e.out});function dy(t,e){return new p1({type:"pipe",in:t,out:e})}var WB=j("ZodReadonly",(t,e)=>{fH.init(t,e),ze.init(t,e)});function ZB(t){return new WB({type:"readonly",innerType:t})}var GB=j("ZodTemplateLiteral",(t,e)=>{hH.init(t,e),ze.init(t,e)});function mwe(t,e){return new GB({type:"template_literal",parts:t,...Be.normalizeParams(e)})}var VB=j("ZodLazy",(t,e)=>{vH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.getter()});function KB(t){return new VB({type:"lazy",getter:t})}var JB=j("ZodPromise",(t,e)=>{gH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function fwe(t){return new JB({type:"promise",innerType:t})}var zy=j("ZodCustom",(t,e)=>{yH.init(t,e),ze.init(t,e)});function QB(t,e){let r=new Yt({check:"custom",...Be.normalizeParams(e)});return r._zod.check=t,r}function YB(t,e){return sB(zy,t??(()=>!0),e)}function XB(t,e={}){return iB(zy,t,e)}function e3(t,e){let r=QB(n=>(n.addIssue=s=>{if(typeof s=="string")n.issues.push(Be.issue(s,n.value,r._zod.def));else{let i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),n.issues.push(Be.issue(i))}},t(n.value,n)),e);return r}function hwe(t,e={error:`Input not instance of ${t.name}`}){let r=new zy({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...Be.normalizeParams(e)});return r._zod.bag.Class=t,r}var gwe=(...t)=>aB({Pipe:p1,Boolean:Oy,String:Iy,Transform:o1},...t);function vwe(t){let e=KB(()=>vt([L(t),mt(),ar(),jy(),We(e),Ot(L(),e)]));return e}function d1(t,e){return dy(c1(t),e)}var ywe={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function bwe(t){Yr({customError:t})}function xwe(){return Yr().customError}var t3={};uo(t3,{string:()=>_we,number:()=>wwe,date:()=>Ewe,boolean:()=>Swe,bigint:()=>kwe});function _we(t){return SH(Iy,t)}function wwe(t){return CH(Cy,t)}function Swe(t){return zH(Oy,t)}function kwe(t){return LH(Ay,t)}function Ewe(t){return KH(n1,t)}Yr(bH());var Twe="io.modelcontextprotocol/related-task",$y="2.0",Rr=YB(t=>t!==null&&(typeof t=="object"||typeof t=="function")),r3=vt([L(),mt().int()]),n3=L(),W$e=Kr({ttl:vt([mt(),jy()]).optional(),pollInterval:mt().optional()}),Rwe=oe({ttl:mt().optional()}),Pwe=oe({taskId:L()}),m1=Kr({progressToken:r3.optional(),[Twe]:Pwe.optional()}),In=oe({_meta:m1.optional()}),Ly=In.extend({task:Rwe.optional()});var Pr=oe({method:L(),params:In.loose().optional()}),Qn=oe({_meta:m1.optional()}),Yn=oe({method:L(),params:Qn.loose().optional()}),Ir=Kr({_meta:m1.optional()}),Uy=vt([L(),mt().int()]),Iwe=oe({jsonrpc:de($y),id:Uy,...Pr.shape}).strict();var Cwe=oe({jsonrpc:de($y),...Yn.shape}).strict();var s3=oe({jsonrpc:de($y),id:Uy,result:Ir}).strict();var n8;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(n8||(n8={}));var i3=oe({jsonrpc:de($y),id:Uy.optional(),error:oe({code:mt().int(),message:L(),data:$t().optional()})}).strict();var Z$e=vt([Iwe,Cwe,s3,i3]),G$e=vt([s3,i3]),a3=Ir.strict(),Owe=Qn.extend({requestId:Uy.optional(),reason:L().optional()}),o3=Yn.extend({method:de("notifications/cancelled"),params:Owe}),Awe=oe({src:L(),mimeType:L().optional(),sizes:We(L()).optional(),theme:vn(["light","dark"]).optional()}),om=oe({icons:We(Awe).optional()}),hl=oe({name:L(),title:L().optional()}),c3=hl.extend({...hl.shape,...om.shape,version:L(),websiteUrl:L().optional(),description:L().optional()}),jwe=My(oe({applyDefaults:ar().optional()}),Ot(L(),$t())),Nwe=d1(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,My(oe({form:jwe.optional(),url:Rr.optional()}),Ot(L(),$t()).optional())),Dwe=Kr({list:Rr.optional(),cancel:Rr.optional(),requests:Kr({sampling:Kr({createMessage:Rr.optional()}).optional(),elicitation:Kr({create:Rr.optional()}).optional()}).optional()}),Mwe=Kr({list:Rr.optional(),cancel:Rr.optional(),requests:Kr({tools:Kr({call:Rr.optional()}).optional()}).optional()}),zwe=oe({experimental:Ot(L(),Rr).optional(),sampling:oe({context:Rr.optional(),tools:Rr.optional()}).optional(),elicitation:Nwe.optional(),roots:oe({listChanged:ar().optional()}).optional(),tasks:Dwe.optional()}),$we=In.extend({protocolVersion:L(),capabilities:zwe,clientInfo:c3}),Lwe=Pr.extend({method:de("initialize"),params:$we}),Uwe=oe({experimental:Ot(L(),Rr).optional(),logging:Rr.optional(),completions:Rr.optional(),prompts:oe({listChanged:ar().optional()}).optional(),resources:oe({subscribe:ar().optional(),listChanged:ar().optional()}).optional(),tools:oe({listChanged:ar().optional()}).optional(),tasks:Mwe.optional()}),qwe=Ir.extend({protocolVersion:L(),capabilities:Uwe,serverInfo:c3,instructions:L().optional()}),Fwe=Yn.extend({method:de("notifications/initialized"),params:Qn.optional()}),l3=Pr.extend({method:de("ping"),params:In.optional()}),Hwe=oe({progress:mt(),total:Lt(mt()),message:Lt(L())}),Bwe=oe({...Qn.shape,...Hwe.shape,progressToken:r3}),u3=Yn.extend({method:de("notifications/progress"),params:Bwe}),Wwe=In.extend({cursor:n3.optional()}),cm=Pr.extend({params:Wwe.optional()}),lm=Ir.extend({nextCursor:n3.optional()}),Zwe=vn(["working","input_required","completed","failed","cancelled"]),um=oe({taskId:L(),status:Zwe,ttl:vt([mt(),jy()]),createdAt:L(),lastUpdatedAt:L(),pollInterval:Lt(mt()),statusMessage:Lt(L())}),p3=Ir.extend({task:um}),Gwe=Qn.merge(um),d3=Yn.extend({method:de("notifications/tasks/status"),params:Gwe}),m3=Pr.extend({method:de("tasks/get"),params:In.extend({taskId:L()})}),f3=Ir.merge(um),h3=Pr.extend({method:de("tasks/result"),params:In.extend({taskId:L()})}),V$e=Ir.loose(),g3=cm.extend({method:de("tasks/list")}),v3=lm.extend({tasks:We(um)}),y3=Pr.extend({method:de("tasks/cancel"),params:In.extend({taskId:L()})}),K$e=Ir.merge(um),b3=oe({uri:L(),mimeType:Lt(L()),_meta:Ot(L(),$t()).optional()}),x3=b3.extend({text:L()}),f1=L().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),_3=b3.extend({blob:f1}),pm=vn(["user","assistant"]),_l=oe({audience:We(pm).optional(),priority:mt().min(0).max(1).optional(),lastModified:jR.datetime({offset:!0}).optional()}),w3=oe({...hl.shape,...om.shape,uri:L(),description:Lt(L()),mimeType:Lt(L()),annotations:_l.optional(),_meta:Lt(Kr({}))}),Vwe=oe({...hl.shape,...om.shape,uriTemplate:L(),description:Lt(L()),mimeType:Lt(L()),annotations:_l.optional(),_meta:Lt(Kr({}))}),Kwe=cm.extend({method:de("resources/list")}),Jwe=lm.extend({resources:We(w3)}),Qwe=cm.extend({method:de("resources/templates/list")}),Ywe=lm.extend({resourceTemplates:We(Vwe)}),h1=In.extend({uri:L()}),Xwe=h1,eSe=Pr.extend({method:de("resources/read"),params:Xwe}),tSe=Ir.extend({contents:We(vt([x3,_3]))}),rSe=Yn.extend({method:de("notifications/resources/list_changed"),params:Qn.optional()}),nSe=h1,sSe=Pr.extend({method:de("resources/subscribe"),params:nSe}),iSe=h1,aSe=Pr.extend({method:de("resources/unsubscribe"),params:iSe}),oSe=Qn.extend({uri:L()}),cSe=Yn.extend({method:de("notifications/resources/updated"),params:oSe}),lSe=oe({name:L(),description:Lt(L()),required:Lt(ar())}),uSe=oe({...hl.shape,...om.shape,description:Lt(L()),arguments:Lt(We(lSe)),_meta:Lt(Kr({}))}),pSe=cm.extend({method:de("prompts/list")}),dSe=lm.extend({prompts:We(uSe)}),mSe=In.extend({name:L(),arguments:Ot(L(),L()).optional()}),fSe=Pr.extend({method:de("prompts/get"),params:mSe}),g1=oe({type:de("text"),text:L(),annotations:_l.optional(),_meta:Ot(L(),$t()).optional()}),v1=oe({type:de("image"),data:f1,mimeType:L(),annotations:_l.optional(),_meta:Ot(L(),$t()).optional()}),y1=oe({type:de("audio"),data:f1,mimeType:L(),annotations:_l.optional(),_meta:Ot(L(),$t()).optional()}),hSe=oe({type:de("tool_use"),name:L(),id:L(),input:Ot(L(),$t()),_meta:Ot(L(),$t()).optional()}),gSe=oe({type:de("resource"),resource:vt([x3,_3]),annotations:_l.optional(),_meta:Ot(L(),$t()).optional()}),vSe=w3.extend({type:de("resource_link")}),b1=vt([g1,v1,y1,vSe,gSe]),ySe=oe({role:pm,content:b1}),bSe=Ir.extend({description:L().optional(),messages:We(ySe)}),xSe=Yn.extend({method:de("notifications/prompts/list_changed"),params:Qn.optional()}),_Se=oe({title:L().optional(),readOnlyHint:ar().optional(),destructiveHint:ar().optional(),idempotentHint:ar().optional(),openWorldHint:ar().optional()}),wSe=oe({taskSupport:vn(["required","optional","forbidden"]).optional()}),S3=oe({...hl.shape,...om.shape,description:L().optional(),inputSchema:oe({type:de("object"),properties:Ot(L(),Rr).optional(),required:We(L()).optional()}).catchall($t()),outputSchema:oe({type:de("object"),properties:Ot(L(),Rr).optional(),required:We(L()).optional()}).catchall($t()).optional(),annotations:_Se.optional(),execution:wSe.optional(),_meta:Ot(L(),$t()).optional()}),SSe=cm.extend({method:de("tools/list")}),kSe=lm.extend({tools:We(S3)}),k3=Ir.extend({content:We(b1).default([]),structuredContent:Ot(L(),$t()).optional(),isError:ar().optional()}),J$e=k3.or(Ir.extend({toolResult:$t()})),ESe=Ly.extend({name:L(),arguments:Ot(L(),$t()).optional()}),TSe=Pr.extend({method:de("tools/call"),params:ESe}),RSe=Yn.extend({method:de("notifications/tools/list_changed"),params:Qn.optional()}),Q$e=oe({autoRefresh:ar().default(!0),debounceMs:mt().int().nonnegative().default(300)}),E3=vn(["debug","info","notice","warning","error","critical","alert","emergency"]),PSe=In.extend({level:E3}),ISe=Pr.extend({method:de("logging/setLevel"),params:PSe}),CSe=Qn.extend({level:E3,logger:L().optional(),data:$t()}),OSe=Yn.extend({method:de("notifications/message"),params:CSe}),ASe=oe({name:L().optional()}),jSe=oe({hints:We(ASe).optional(),costPriority:mt().min(0).max(1).optional(),speedPriority:mt().min(0).max(1).optional(),intelligencePriority:mt().min(0).max(1).optional()}),NSe=oe({mode:vn(["auto","required","none"]).optional()}),DSe=oe({type:de("tool_result"),toolUseId:L().describe("The unique identifier for the corresponding tool call."),content:We(b1).default([]),structuredContent:oe({}).loose().optional(),isError:ar().optional(),_meta:Ot(L(),$t()).optional()}),MSe=i1("type",[g1,v1,y1]),my=i1("type",[g1,v1,y1,hSe,DSe]),zSe=oe({role:pm,content:vt([my,We(my)]),_meta:Ot(L(),$t()).optional()}),$Se=Ly.extend({messages:We(zSe),modelPreferences:jSe.optional(),systemPrompt:L().optional(),includeContext:vn(["none","thisServer","allServers"]).optional(),temperature:mt().optional(),maxTokens:mt().int(),stopSequences:We(L()).optional(),metadata:Rr.optional(),tools:We(S3).optional(),toolChoice:NSe.optional()}),LSe=Pr.extend({method:de("sampling/createMessage"),params:$Se}),USe=Ir.extend({model:L(),stopReason:Lt(vn(["endTurn","stopSequence","maxTokens"]).or(L())),role:pm,content:MSe}),qSe=Ir.extend({model:L(),stopReason:Lt(vn(["endTurn","stopSequence","maxTokens","toolUse"]).or(L())),role:pm,content:vt([my,We(my)])}),FSe=oe({type:de("boolean"),title:L().optional(),description:L().optional(),default:ar().optional()}),HSe=oe({type:de("string"),title:L().optional(),description:L().optional(),minLength:mt().optional(),maxLength:mt().optional(),format:vn(["email","uri","date","date-time"]).optional(),default:L().optional()}),BSe=oe({type:vn(["number","integer"]),title:L().optional(),description:L().optional(),minimum:mt().optional(),maximum:mt().optional(),default:mt().optional()}),WSe=oe({type:de("string"),title:L().optional(),description:L().optional(),enum:We(L()),default:L().optional()}),ZSe=oe({type:de("string"),title:L().optional(),description:L().optional(),oneOf:We(oe({const:L(),title:L()})),default:L().optional()}),GSe=oe({type:de("string"),title:L().optional(),description:L().optional(),enum:We(L()),enumNames:We(L()).optional(),default:L().optional()}),VSe=vt([WSe,ZSe]),KSe=oe({type:de("array"),title:L().optional(),description:L().optional(),minItems:mt().optional(),maxItems:mt().optional(),items:oe({type:de("string"),enum:We(L())}),default:We(L()).optional()}),JSe=oe({type:de("array"),title:L().optional(),description:L().optional(),minItems:mt().optional(),maxItems:mt().optional(),items:oe({anyOf:We(oe({const:L(),title:L()}))}),default:We(L()).optional()}),QSe=vt([KSe,JSe]),YSe=vt([GSe,VSe,QSe]),XSe=vt([YSe,FSe,HSe,BSe]),eke=Ly.extend({mode:de("form").optional(),message:L(),requestedSchema:oe({type:de("object"),properties:Ot(L(),XSe),required:We(L()).optional()})}),tke=Ly.extend({mode:de("url"),message:L(),elicitationId:L(),url:L().url()}),rke=vt([eke,tke]),nke=Pr.extend({method:de("elicitation/create"),params:rke}),ske=Qn.extend({elicitationId:L()}),ike=Yn.extend({method:de("notifications/elicitation/complete"),params:ske}),ake=Ir.extend({action:vn(["accept","decline","cancel"]),content:d1(t=>t===null?void 0:t,Ot(L(),vt([L(),mt(),ar(),We(L())])).optional())}),oke=oe({type:de("ref/resource"),uri:L()}),cke=oe({type:de("ref/prompt"),name:L()}),lke=In.extend({ref:vt([cke,oke]),argument:oe({name:L(),value:L()}),context:oe({arguments:Ot(L(),L()).optional()}).optional()}),uke=Pr.extend({method:de("completion/complete"),params:lke});var pke=Ir.extend({completion:Kr({values:We(L()).max(100),total:Lt(mt().int()),hasMore:Lt(ar())})}),dke=oe({uri:L().startsWith("file://"),name:L().optional(),_meta:Ot(L(),$t()).optional()}),mke=Pr.extend({method:de("roots/list"),params:In.optional()}),fke=Ir.extend({roots:We(dke)}),hke=Yn.extend({method:de("notifications/roots/list_changed"),params:Qn.optional()}),Y$e=vt([l3,Lwe,uke,ISe,fSe,pSe,Kwe,Qwe,eSe,sSe,aSe,TSe,SSe,m3,h3,g3,y3]),X$e=vt([o3,u3,Fwe,hke,d3]),eLe=vt([a3,USe,qSe,ake,fke,f3,v3,p3]),tLe=vt([l3,LSe,nke,mke,m3,h3,g3,y3]),rLe=vt([o3,u3,OSe,cSe,rSe,RSe,xSe,d3,ike]),nLe=vt([a3,qwe,pke,bSe,dSe,Jwe,Ywe,tSe,k3,kSe,f3,v3,p3]);var sLe=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var iLe=i8(d8(),1),aLe=i8(yge(),1);var s8;(function(t){t.Completable="McpCompletable"})(s8||(s8={}));function gke(t){let e;return()=>e??=t()}var oLe=gke(()=>Vc.object({session_id:Vc.string(),ws_url:Vc.string(),work_dir:Vc.string().optional(),session_key:Vc.string().optional()}));function T3(t){return Ebe(t)}var Ss=Q(require("fs"),1),wl=Q(require("path"),1),P3=Q(require("os"),1),I3=Q(require("readline"),1);re();var x1=wl.default.join(P3.default.homedir(),".claude","projects"),R3=["[MEMORY]","MEMORY PROCESSING START","MEMORY PROCESSING CONTINUED","PROGRESS SUMMARY CHECKPOINT","expert observation and knowledge extraction","","pragmatic code reviewer"],yke=1440*60*1e3;function C3(t){let e={deleted:0,failed:0,errors:[]};if(t.length===0)return e;let r;try{r=O3()}catch(n){return e.errors.push(`Failed to read projects directory: ${n}`),e}for(let n of t){if(!xke(n)){e.errors.push(`Invalid session ID format: ${n}`),e.failed++;continue}let s=!1;for(let i of r)if(A3(i,n)){s=!0,e.deleted++;break}s||_.debug("CLEANUP","Session file not found (may already be cleaned up)",{claudeSessionId:n})}return e.deleted>0&&_.info("CLEANUP",`Deleted ${e.deleted} memory session files`,{sessionIds:t.slice(0,5),total:t.length}),e}async function _1(t=yke){let e={deleted:0,failed:0,errors:[]},r;try{r=O3()}catch(n){return e.errors.push(`Failed to read projects directory: ${n}`),e}for(let n of r){let s;try{s=Ss.default.readdirSync(n).filter(i=>i.endsWith(".jsonl"))}catch{continue}for(let i of s){let a=wl.default.join(n,i);try{if(!await bke(a))continue;let c=i.replace(".jsonl","");A3(n,c)&&e.deleted++}catch(o){e.failed++,e.errors.push(`Failed to check ${i}: ${o}`)}}}return e.deleted>0&&_.info("CLEANUP",`Ephemeral session cleanup: deleted ${e.deleted} session files`),e}async function bke(t){try{let e=Ss.default.createReadStream(t,{encoding:"utf8"}),r=I3.default.createInterface({input:e,crlfDelay:1/0}),n=!1;for await(let s of r)try{let i=JSON.parse(s);if(i.type==="last-prompt"&&i.lastPrompt&&R3.some(a=>i.lastPrompt.includes(a)))return r.close(),e.destroy(),!0;if(i.type==="user"){if(n)continue;n=!0;let a="",o=i.message?.content;if(typeof o=="string")a=o;else if(Array.isArray(o)){for(let c of o)if(c?.type==="text"&&c.text){a=c.text;break}}if(a&&R3.some(c=>a.includes(c)))return r.close(),e.destroy(),!0}}catch{}return r.close(),e.destroy(),!1}catch{return!1}}function O3(){return Ss.default.existsSync(x1)?Ss.default.readdirSync(x1).map(t=>wl.default.join(x1,t)).filter(t=>{try{return Ss.default.statSync(t).isDirectory()}catch{return!1}}):[]}function A3(t,e){let r=!1,n=wl.default.join(t,`${e}.jsonl`);if(Ss.default.existsSync(n))try{Ss.default.unlinkSync(n),r=!0}catch(i){_.warn("CLEANUP","Failed to delete session JSONL",{claudeSessionId:e,error:String(i)})}let s=wl.default.join(t,e);if(Ss.default.existsSync(s))try{Ss.default.statSync(s).isDirectory()&&(Ss.default.rmSync(s,{recursive:!0,force:!0}),r=!0)}catch(i){_.warn("CLEANUP","Failed to delete session directory",{claudeSessionId:e,error:String(i)})}return r}function xke(t){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)}var j3=1e5,qy=class{dbManager;sessionManager;constructor(e,r){this.dbManager=e,this.sessionManager=r}async startSession(e,r){let n,s=this.findClaudeExecutable(),i=this.getModelId(),a=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"];if(!e.memorySessionId)throw new Error(`Session ${e.sessionDbId} has no memory_session_id - this should not happen`);_.info("SDK","Starting SDK V2 session",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,memorySessionId:e.memorySessionId,lastPromptNumber:e.lastPromptNumber});let o=aF(),c=this.createSDKSession(i,s,a);try{let l=et.getInstance().getActiveMode(),p=e.lastPromptNumber===1?q6(e.project,e.contentSessionId,e.userPrompt,l):bE(e.userPrompt,e.lastPromptNumber,e.contentSessionId,l);e.conversationHistory.push({role:"user",content:p}),await c.send(p),await this.processStreamResponse(c,e,r,n),this.captureClaudeSessionId(c,e);for await(let m of this.sessionManager.getMessageBatchIterator(e.sessionDbId)){if(e.abortController.signal.aborted){_.warn("SDK","Session aborted",{sessionId:e.sessionDbId});break}let f=m.filter(v=>v.type==="observation"),g=m.filter(v=>v.type==="summarize");if(m.length>1&&_.info("SDK","Processing batch",{sessionId:e.sessionDbId,total:m.length,observations:f.length,summarizes:g.length}),f.length>0){for(let y of f)y.cwd&&(n=y.cwd),y.prompt_number!==void 0&&(e.lastPromptNumber=y.prompt_number);let v=f.map(y=>({id:0,tool_name:y.tool_name,tool_input:JSON.stringify(y.tool_input),tool_output:JSON.stringify(y.tool_response),created_at_epoch:y._originalTimestamp??Date.now(),cwd:y.cwd})),h=f.length===1?yE(v[0]):F6(v);if(e.conversationHistory.push({role:"user",content:h}),e.conversationHistory.length>12){let y=e.conversationHistory.slice(0,2),b=e.conversationHistory.slice(-10);e.conversationHistory.length=0,e.conversationHistory.push(...y,...b)}await c.send(h),await this.processStreamResponse(c,e,r,n),c=await this.maybeRotateSession(c,e,i,s,a,l,r,n)}for(let v of g){if(e.abortController.signal.aborted)break;let h=H6({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:v.last_assistant_message||""},l);e.conversationHistory.push({role:"user",content:h}),await c.send(h),await this.processStreamResponse(c,e,r,n),c=await this.maybeRotateSession(c,e,i,s,a,l,r,n)}}let d=Date.now()-e.startTime;_.success("SDK","V2 Agent completed",{sessionId:e.sessionDbId,duration:`${(d/1e3).toFixed(1)}s`})}finally{if(this.captureClaudeSessionId(c,e),c.close(),e.claudeSessionIds.length>0)try{let l=C3(e.claudeSessionIds);l.deleted>0&&_.info("SDK","Cleaned up Claude session files",{sessionId:e.sessionDbId,deletedFiles:l.deleted,trackedIds:e.claudeSessionIds.length})}catch(l){_.warn("SDK","Failed to clean up Claude session files",{sessionId:e.sessionDbId},l)}o&&o()}}async processStreamResponse(e,r,n,s){let i=r.earliestPendingTimestamp;for await(let a of e.stream())if(a.type==="assistant"){let o=a.message.content,c=Array.isArray(o)?o.filter(m=>m.type==="text").map(m=>m.text).join(` -`):typeof o=="string"?o:"",l=c.length,u=r.cumulativeInputTokens+r.cumulativeOutputTokens,p=a.message.usage;p&&(r.cumulativeInputTokens+=p.input_tokens||0,r.cumulativeOutputTokens+=p.output_tokens||0,p.cache_creation_input_tokens&&(r.cumulativeInputTokens+=p.cache_creation_input_tokens),_.debug("SDK","Token usage captured",{sessionId:r.sessionDbId,inputTokens:p.input_tokens,outputTokens:p.output_tokens,cumulativeInput:r.cumulativeInputTokens,cumulativeOutput:r.cumulativeOutputTokens}));let d=r.cumulativeInputTokens+r.cumulativeOutputTokens-u;if(l>0){let m=l>100?c.substring(0,100)+"...":c;_.dataOut("SDK",`V2 Response received (${l} chars)`,{sessionId:r.sessionDbId,promptNumber:r.lastPromptNumber},m)}await TE(c,r,this.dbManager,this.sessionManager,n,d,i,"SDK",s)}}createSDKSession(e,r,n){return T3({model:e,disallowedTools:n,pathToClaudeCodeExecutable:r})}async maybeRotateSession(e,r,n,s,i,a,o,c){let l=r.cumulativeInputTokens+r.cumulativeOutputTokens;if(l<=j3)return e;_.info("SDK","Rotating SDK session due to token limit",{totalTokens:l,threshold:j3});try{e.close()}catch(d){_.warn("SDK","Error closing session during rotation",{},d)}let u=this.createSDKSession(n,s,i),p=bE(r.userPrompt,r.lastPromptNumber,r.contentSessionId,a);return await u.send(p),await this.processStreamResponse(u,r,o,c),this.captureClaudeSessionId(u,r),r.cumulativeInputTokens=0,r.cumulativeOutputTokens=0,u}captureClaudeSessionId(e,r){try{let n=e.sessionId;n&&!r.claudeSessionIds.includes(n)&&(r.claudeSessionIds.push(n),_.debug("SDK","Captured Claude session ID for cleanup",{sessionId:r.sessionDbId,claudeSessionId:n,totalTracked:r.claudeSessionIds.length}))}catch{}}findClaudeExecutable(){let e=Ae.loadFromFile(Ht);if(e.CLAUDE_CODE_PATH){let{existsSync:r}=require("fs");if(!r(e.CLAUDE_CODE_PATH))throw new Error(`CLAUDE_CODE_PATH is set to "${e.CLAUDE_CODE_PATH}" but the file does not exist.`);return e.CLAUDE_CODE_PATH}try{let r=(0,N3.execSync)(process.platform==="win32"?"where claude":"which claude",{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}).trim().split(` +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`);n.cycles==="ref"&&a(u);continue}if(p.count>1&&n.reused==="ref"){a(u);continue}}let o=(u,p)=>{let d=this.seen.get(u),m=d.def??d.schema,f={...m};if(d.ref===null)return;let g=d.ref;if(d.ref=null,g){o(g,p);let v=this.seen.get(g).schema;v.$ref&&p.target==="draft-7"?(m.allOf=m.allOf??[],m.allOf.push(v)):(Object.assign(m,v),Object.assign(m,f))}d.isParent||this.override({zodSchema:u,jsonSchema:m,path:d.path??[]})};for(let u of[...this.seen.entries()].reverse())o(u[0],{target:this.target});let c={};this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),Object.assign(c,s.def);let l=n.external?.defs??{};for(let u of this.seen.entries()){let p=u[1];p.def&&p.defId&&(l[p.defId]=p.def)}!n.external&&Object.keys(l).length>0&&(this.target==="draft-2020-12"?c.$defs=l:c.definitions=l);try{return JSON.parse(JSON.stringify(c))}catch{throw Error("Error converting schema to JSON.")}}};function iB(t,e){if(t instanceof Qd){let n=new em(e),s={};for(let o of t._idmap.entries()){let[c,l]=o;n.process(l)}let i={},a={registry:t,uri:e?.uri||(o=>o),defs:s};for(let o of t._idmap.entries()){let[c,l]=o;i[c]=n.emit(l,{...e,external:a})}if(Object.keys(s).length>0){let o=n.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[o]:s}}return{schemas:i}}let r=new em(e);return r.process(t),r.emit(t,e)}function ir(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;switch(n.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return ir(n.element,r);case"object":{for(let s in n.shape)if(ir(n.shape[s],r))return!0;return!1}case"union":{for(let s of n.options)if(ir(s,r))return!0;return!1}case"intersection":return ir(n.left,r)||ir(n.right,r);case"tuple":{for(let s of n.items)if(ir(s,r))return!0;return!!(n.rest&&ir(n.rest,r))}case"record":return ir(n.keyType,r)||ir(n.valueType,r);case"map":return ir(n.keyType,r)||ir(n.valueType,r);case"set":return ir(n.valueType,r);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return ir(n.innerType,r);case"lazy":return ir(n.getter(),r);case"default":return ir(n.innerType,r);case"prefault":return ir(n.innerType,r);case"custom":return!1;case"transform":return!0;case"pipe":return ir(n.in,r)||ir(n.out,r);case"success":return!1;case"catch":return!1;default:}throw Error(`Unknown schema type: ${n.type}`)}var d0e={},m0e=j("ZodMiniType",(t,e)=>{if(!t._zod)throw Error("Uninitialized schema in ZodMiniType.");Pe.init(t,e),t.def=e,t.parse=(r,n)=>ty(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>AT(t,r,n),t.parseAsync=async(r,n)=>ry(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>NT(t,r,n),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>ws(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t)}),z$e=j("ZodMiniObject",(t,e)=>{BT.init(t,e),m0e.init(t,e),Be.defineLazy(t,"shape",()=>e.shape)});var Gc={};lo(Gc,{xid:()=>R0e,void:()=>V0e,uuidv7:()=>x0e,uuidv6:()=>b0e,uuidv4:()=>y0e,uuid:()=>v0e,url:()=>_0e,uppercase:()=>xR,unknown:()=>$t,union:()=>vt,undefined:()=>Z0e,ulid:()=>T0e,uint64:()=>B0e,uint32:()=>q0e,tuple:()=>Y0e,trim:()=>TR,treeifyError:()=>m9,transform:()=>i1,toUpperCase:()=>PR,toLowerCase:()=>RR,toJSONSchema:()=>iB,templateLiteral:()=>owe,symbol:()=>W0e,superRefine:()=>JB,success:()=>iwe,stringbool:()=>uwe,stringFormat:()=>z0e,string:()=>L,strictObject:()=>Q0e,startsWith:()=>wR,size:()=>vR,setErrorMap:()=>mwe,set:()=>twe,safeParseAsync:()=>fB,safeParse:()=>mB,registry:()=>KT,regexes:()=>DT,regex:()=>yR,refine:()=>KB,record:()=>Ot,readonly:()=>FB,property:()=>QH,promise:()=>cwe,prettifyError:()=>h9,preprocess:()=>l1,prefault:()=>DB,positive:()=>GH,pipe:()=>uy,partialRecord:()=>X0e,parseAsync:()=>dB,parse:()=>pB,overwrite:()=>mo,optional:()=>Lt,object:()=>oe,number:()=>mt,nullish:()=>swe,nullable:()=>ly,null:()=>Oy,normalize:()=>kR,nonpositive:()=>KH,nonoptional:()=>MB,nonnegative:()=>JH,never:()=>Ay,negative:()=>VH,nativeEnum:()=>rwe,nanoid:()=>S0e,nan:()=>awe,multipleOf:()=>Yd,minSize:()=>Xd,minLength:()=>ml,mime:()=>ER,maxSize:()=>Ey,maxLength:()=>ky,map:()=>ewe,lte:()=>ys,lt:()=>oo,lowercase:()=>bR,looseObject:()=>Kr,locales:()=>VT,literal:()=>de,length:()=>Ty,lazy:()=>WB,ksuid:()=>P0e,keyof:()=>J0e,jwt:()=>M0e,json:()=>pwe,iso:()=>CR,ipv6:()=>C0e,ipv4:()=>I0e,intersection:()=>Ny,int64:()=>H0e,int32:()=>U0e,int:()=>dT,instanceof:()=>lwe,includes:()=>_R,guid:()=>g0e,gte:()=>kn,gt:()=>co,globalRegistry:()=>to,getErrorMap:()=>fwe,function:()=>sB,formatError:()=>PT,float64:()=>L0e,float32:()=>$0e,flattenError:()=>RT,file:()=>nwe,enum:()=>vn,endsWith:()=>SR,emoji:()=>w0e,email:()=>h0e,e164:()=>D0e,discriminatedUnion:()=>r1,date:()=>K0e,custom:()=>VB,cuid2:()=>k0e,cuid:()=>E0e,core:()=>t9,config:()=>Yr,coerce:()=>QB,clone:()=>ws,cidrv6:()=>A0e,cidrv4:()=>O0e,check:()=>GB,catch:()=>LB,boolean:()=>ar,bigint:()=>F0e,base64url:()=>N0e,base64:()=>j0e,array:()=>We,any:()=>G0e,_default:()=>jB,_ZodString:()=>DR,ZodXID:()=>HR,ZodVoid:()=>wB,ZodUnknown:()=>xB,ZodUnion:()=>t1,ZodUndefined:()=>vB,ZodUUID:()=>di,ZodURL:()=>zR,ZodULID:()=>FR,ZodType:()=>ze,ZodTuple:()=>TB,ZodTransform:()=>s1,ZodTemplateLiteral:()=>HB,ZodSymbol:()=>gB,ZodSuccess:()=>zB,ZodStringFormat:()=>At,ZodString:()=>Ry,ZodSet:()=>PB,ZodRecord:()=>n1,ZodRealError:()=>im,ZodReadonly:()=>qB,ZodPromise:()=>ZB,ZodPrefault:()=>NB,ZodPipe:()=>c1,ZodOptional:()=>a1,ZodObject:()=>jy,ZodNumberFormat:()=>bl,ZodNumber:()=>Py,ZodNullable:()=>OB,ZodNull:()=>yB,ZodNonOptional:()=>o1,ZodNever:()=>_B,ZodNanoID:()=>LR,ZodNaN:()=>UB,ZodMap:()=>RB,ZodLiteral:()=>IB,ZodLazy:()=>BB,ZodKSUID:()=>BR,ZodJWT:()=>YR,ZodIssueCode:()=>dwe,ZodIntersection:()=>kB,ZodISOTime:()=>jR,ZodISODuration:()=>NR,ZodISODateTime:()=>OR,ZodISODate:()=>AR,ZodIPv6:()=>ZR,ZodIPv4:()=>WR,ZodGUID:()=>cy,ZodFile:()=>CB,ZodError:()=>f0e,ZodEnum:()=>tm,ZodEmoji:()=>$R,ZodEmail:()=>MR,ZodE164:()=>QR,ZodDiscriminatedUnion:()=>EB,ZodDefault:()=>AB,ZodDate:()=>e1,ZodCustomStringFormat:()=>hB,ZodCustom:()=>Dy,ZodCatch:()=>$B,ZodCUID2:()=>qR,ZodCUID:()=>UR,ZodCIDRv6:()=>VR,ZodCIDRv4:()=>GR,ZodBoolean:()=>Iy,ZodBigIntFormat:()=>XR,ZodBigInt:()=>Cy,ZodBase64URL:()=>JR,ZodBase64:()=>KR,ZodArray:()=>SB,ZodAny:()=>bB,TimePrecision:()=>xH,NEVER:()=>r9,$output:()=>gH,$input:()=>vH,$brand:()=>n9});var CR={};lo(CR,{time:()=>cB,duration:()=>lB,datetime:()=>aB,date:()=>oB,ZodISOTime:()=>jR,ZodISODuration:()=>NR,ZodISODateTime:()=>OR,ZodISODate:()=>AR});var OR=j("ZodISODateTime",(t,e)=>{E5.init(t,e),At.init(t,e)});function aB(t){return _H(OR,t)}var AR=j("ZodISODate",(t,e)=>{k5.init(t,e),At.init(t,e)});function oB(t){return wH(AR,t)}var jR=j("ZodISOTime",(t,e)=>{T5.init(t,e),At.init(t,e)});function cB(t){return SH(jR,t)}var NR=j("ZodISODuration",(t,e)=>{R5.init(t,e),At.init(t,e)});function lB(t){return EH(NR,t)}var uB=(t,e)=>{TT.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>PT(t,r)},flatten:{value:r=>RT(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},f0e=j("ZodError",uB),im=j("ZodError",uB,{Parent:Error}),pB=IT(im),dB=CT(im),mB=OT(im),fB=jT(im),ze=j("ZodType",(t,e)=>(Pe.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>ws(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t),t.parse=(r,n)=>pB(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>mB(t,r,n),t.parseAsync=async(r,n)=>dB(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>fB(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(KB(r,n)),t.superRefine=r=>t.check(JB(r)),t.overwrite=r=>t.check(mo(r)),t.optional=()=>Lt(t),t.nullable=()=>ly(t),t.nullish=()=>Lt(ly(t)),t.nonoptional=r=>MB(t,r),t.array=()=>We(t),t.or=r=>vt([t,r]),t.and=r=>Ny(t,r),t.transform=r=>uy(t,i1(r)),t.default=r=>jB(t,r),t.prefault=r=>DB(t,r),t.catch=r=>LB(t,r),t.pipe=r=>uy(t,r),t.readonly=()=>FB(t),t.describe=r=>{let n=t.clone();return to.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return to.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return to.get(t);let n=t.clone();return to.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),DR=j("_ZodString",(t,e)=>{sm.init(t,e),ze.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(yR(...n)),t.includes=(...n)=>t.check(_R(...n)),t.startsWith=(...n)=>t.check(wR(...n)),t.endsWith=(...n)=>t.check(SR(...n)),t.min=(...n)=>t.check(ml(...n)),t.max=(...n)=>t.check(ky(...n)),t.length=(...n)=>t.check(Ty(...n)),t.nonempty=(...n)=>t.check(ml(1,...n)),t.lowercase=n=>t.check(bR(n)),t.uppercase=n=>t.check(xR(n)),t.trim=()=>t.check(TR()),t.normalize=(...n)=>t.check(kR(...n)),t.toLowerCase=()=>t.check(RR()),t.toUpperCase=()=>t.check(PR())}),Ry=j("ZodString",(t,e)=>{sm.init(t,e),DR.init(t,e),t.email=r=>t.check(JT(MR,r)),t.url=r=>t.check(tR(zR,r)),t.jwt=r=>t.check(gR(YR,r)),t.emoji=r=>t.check(rR($R,r)),t.guid=r=>t.check(iy(cy,r)),t.uuid=r=>t.check(QT(di,r)),t.uuidv4=r=>t.check(YT(di,r)),t.uuidv6=r=>t.check(XT(di,r)),t.uuidv7=r=>t.check(eR(di,r)),t.nanoid=r=>t.check(nR(LR,r)),t.guid=r=>t.check(iy(cy,r)),t.cuid=r=>t.check(sR(UR,r)),t.cuid2=r=>t.check(iR(qR,r)),t.ulid=r=>t.check(aR(FR,r)),t.base64=r=>t.check(mR(KR,r)),t.base64url=r=>t.check(fR(JR,r)),t.xid=r=>t.check(oR(HR,r)),t.ksuid=r=>t.check(cR(BR,r)),t.ipv4=r=>t.check(lR(WR,r)),t.ipv6=r=>t.check(uR(ZR,r)),t.cidrv4=r=>t.check(pR(GR,r)),t.cidrv6=r=>t.check(dR(VR,r)),t.e164=r=>t.check(hR(QR,r)),t.datetime=r=>t.check(aB(r)),t.date=r=>t.check(oB(r)),t.time=r=>t.check(cB(r)),t.duration=r=>t.check(lB(r))});function L(t){return yH(Ry,t)}var At=j("ZodStringFormat",(t,e)=>{kt.init(t,e),DR.init(t,e)}),MR=j("ZodEmail",(t,e)=>{h5.init(t,e),At.init(t,e)});function h0e(t){return JT(MR,t)}var cy=j("ZodGUID",(t,e)=>{m5.init(t,e),At.init(t,e)});function g0e(t){return iy(cy,t)}var di=j("ZodUUID",(t,e)=>{f5.init(t,e),At.init(t,e)});function v0e(t){return QT(di,t)}function y0e(t){return YT(di,t)}function b0e(t){return XT(di,t)}function x0e(t){return eR(di,t)}var zR=j("ZodURL",(t,e)=>{g5.init(t,e),At.init(t,e)});function _0e(t){return tR(zR,t)}var $R=j("ZodEmoji",(t,e)=>{v5.init(t,e),At.init(t,e)});function w0e(t){return rR($R,t)}var LR=j("ZodNanoID",(t,e)=>{y5.init(t,e),At.init(t,e)});function S0e(t){return nR(LR,t)}var UR=j("ZodCUID",(t,e)=>{b5.init(t,e),At.init(t,e)});function E0e(t){return sR(UR,t)}var qR=j("ZodCUID2",(t,e)=>{x5.init(t,e),At.init(t,e)});function k0e(t){return iR(qR,t)}var FR=j("ZodULID",(t,e)=>{_5.init(t,e),At.init(t,e)});function T0e(t){return aR(FR,t)}var HR=j("ZodXID",(t,e)=>{w5.init(t,e),At.init(t,e)});function R0e(t){return oR(HR,t)}var BR=j("ZodKSUID",(t,e)=>{S5.init(t,e),At.init(t,e)});function P0e(t){return cR(BR,t)}var WR=j("ZodIPv4",(t,e)=>{P5.init(t,e),At.init(t,e)});function I0e(t){return lR(WR,t)}var ZR=j("ZodIPv6",(t,e)=>{I5.init(t,e),At.init(t,e)});function C0e(t){return uR(ZR,t)}var GR=j("ZodCIDRv4",(t,e)=>{C5.init(t,e),At.init(t,e)});function O0e(t){return pR(GR,t)}var VR=j("ZodCIDRv6",(t,e)=>{O5.init(t,e),At.init(t,e)});function A0e(t){return dR(VR,t)}var KR=j("ZodBase64",(t,e)=>{A5.init(t,e),At.init(t,e)});function j0e(t){return mR(KR,t)}var JR=j("ZodBase64URL",(t,e)=>{N5.init(t,e),At.init(t,e)});function N0e(t){return fR(JR,t)}var QR=j("ZodE164",(t,e)=>{D5.init(t,e),At.init(t,e)});function D0e(t){return hR(QR,t)}var YR=j("ZodJWT",(t,e)=>{z5.init(t,e),At.init(t,e)});function M0e(t){return gR(YR,t)}var hB=j("ZodCustomStringFormat",(t,e)=>{$5.init(t,e),At.init(t,e)});function z0e(t,e,r={}){return nB(hB,t,e,r)}var Py=j("ZodNumber",(t,e)=>{UT.init(t,e),ze.init(t,e),t.gt=(n,s)=>t.check(co(n,s)),t.gte=(n,s)=>t.check(kn(n,s)),t.min=(n,s)=>t.check(kn(n,s)),t.lt=(n,s)=>t.check(oo(n,s)),t.lte=(n,s)=>t.check(ys(n,s)),t.max=(n,s)=>t.check(ys(n,s)),t.int=n=>t.check(dT(n)),t.safe=n=>t.check(dT(n)),t.positive=n=>t.check(co(0,n)),t.nonnegative=n=>t.check(kn(0,n)),t.negative=n=>t.check(oo(0,n)),t.nonpositive=n=>t.check(ys(0,n)),t.multipleOf=(n,s)=>t.check(Yd(n,s)),t.step=(n,s)=>t.check(Yd(n,s)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function mt(t){return kH(Py,t)}var bl=j("ZodNumberFormat",(t,e)=>{L5.init(t,e),Py.init(t,e)});function dT(t){return RH(bl,t)}function $0e(t){return PH(bl,t)}function L0e(t){return IH(bl,t)}function U0e(t){return CH(bl,t)}function q0e(t){return OH(bl,t)}var Iy=j("ZodBoolean",(t,e)=>{qT.init(t,e),ze.init(t,e)});function ar(t){return AH(Iy,t)}var Cy=j("ZodBigInt",(t,e)=>{FT.init(t,e),ze.init(t,e),t.gte=(n,s)=>t.check(kn(n,s)),t.min=(n,s)=>t.check(kn(n,s)),t.gt=(n,s)=>t.check(co(n,s)),t.gte=(n,s)=>t.check(kn(n,s)),t.min=(n,s)=>t.check(kn(n,s)),t.lt=(n,s)=>t.check(oo(n,s)),t.lte=(n,s)=>t.check(ys(n,s)),t.max=(n,s)=>t.check(ys(n,s)),t.positive=n=>t.check(co(BigInt(0),n)),t.negative=n=>t.check(oo(BigInt(0),n)),t.nonpositive=n=>t.check(ys(BigInt(0),n)),t.nonnegative=n=>t.check(kn(BigInt(0),n)),t.multipleOf=(n,s)=>t.check(Yd(n,s));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function F0e(t){return NH(Cy,t)}var XR=j("ZodBigIntFormat",(t,e)=>{U5.init(t,e),Cy.init(t,e)});function H0e(t){return MH(XR,t)}function B0e(t){return zH(XR,t)}var gB=j("ZodSymbol",(t,e)=>{q5.init(t,e),ze.init(t,e)});function W0e(t){return $H(gB,t)}var vB=j("ZodUndefined",(t,e)=>{F5.init(t,e),ze.init(t,e)});function Z0e(t){return LH(vB,t)}var yB=j("ZodNull",(t,e)=>{H5.init(t,e),ze.init(t,e)});function Oy(t){return UH(yB,t)}var bB=j("ZodAny",(t,e)=>{B5.init(t,e),ze.init(t,e)});function G0e(){return qH(bB)}var xB=j("ZodUnknown",(t,e)=>{sy.init(t,e),ze.init(t,e)});function $t(){return ay(xB)}var _B=j("ZodNever",(t,e)=>{W5.init(t,e),ze.init(t,e)});function Ay(t){return FH(_B,t)}var wB=j("ZodVoid",(t,e)=>{Z5.init(t,e),ze.init(t,e)});function V0e(t){return HH(wB,t)}var e1=j("ZodDate",(t,e)=>{G5.init(t,e),ze.init(t,e),t.min=(n,s)=>t.check(kn(n,s)),t.max=(n,s)=>t.check(ys(n,s));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function K0e(t){return BH(e1,t)}var SB=j("ZodArray",(t,e)=>{HT.init(t,e),ze.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(ml(r,n)),t.nonempty=r=>t.check(ml(1,r)),t.max=(r,n)=>t.check(ky(r,n)),t.length=(r,n)=>t.check(Ty(r,n)),t.unwrap=()=>t.element});function We(t,e){return IR(SB,t,e)}function J0e(t){let e=t._zod.def.shape;return de(Object.keys(e))}var jy=j("ZodObject",(t,e)=>{BT.init(t,e),ze.init(t,e),Be.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>vn(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:$t()}),t.loose=()=>t.clone({...t._zod.def,catchall:$t()}),t.strict=()=>t.clone({...t._zod.def,catchall:Ay()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>Be.extend(t,r),t.merge=r=>Be.merge(t,r),t.pick=r=>Be.pick(t,r),t.omit=r=>Be.omit(t,r),t.partial=(...r)=>Be.partial(a1,t,r[0]),t.required=(...r)=>Be.required(o1,t,r[0])});function oe(t,e){let r={type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},...Be.normalizeParams(e)};return new jy(r)}function Q0e(t,e){return new jy({type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},catchall:Ay(),...Be.normalizeParams(e)})}function Kr(t,e){return new jy({type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},catchall:$t(),...Be.normalizeParams(e)})}var t1=j("ZodUnion",(t,e)=>{WT.init(t,e),ze.init(t,e),t.options=e.options});function vt(t,e){return new t1({type:"union",options:t,...Be.normalizeParams(e)})}var EB=j("ZodDiscriminatedUnion",(t,e)=>{t1.init(t,e),V5.init(t,e)});function r1(t,e,r){return new EB({type:"union",options:e,discriminator:t,...Be.normalizeParams(r)})}var kB=j("ZodIntersection",(t,e)=>{K5.init(t,e),ze.init(t,e)});function Ny(t,e){return new kB({type:"intersection",left:t,right:e})}var TB=j("ZodTuple",(t,e)=>{Sy.init(t,e),ze.init(t,e),t.rest=r=>t.clone({...t._zod.def,rest:r})});function Y0e(t,e,r){let n=e instanceof Pe,s=n?r:e;return new TB({type:"tuple",items:t,rest:n?e:null,...Be.normalizeParams(s)})}var n1=j("ZodRecord",(t,e)=>{J5.init(t,e),ze.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function Ot(t,e,r){return new n1({type:"record",keyType:t,valueType:e,...Be.normalizeParams(r)})}function X0e(t,e,r){return new n1({type:"record",keyType:vt([t,Ay()]),valueType:e,...Be.normalizeParams(r)})}var RB=j("ZodMap",(t,e)=>{Q5.init(t,e),ze.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function ewe(t,e,r){return new RB({type:"map",keyType:t,valueType:e,...Be.normalizeParams(r)})}var PB=j("ZodSet",(t,e)=>{Y5.init(t,e),ze.init(t,e),t.min=(...r)=>t.check(Xd(...r)),t.nonempty=r=>t.check(Xd(1,r)),t.max=(...r)=>t.check(Ey(...r)),t.size=(...r)=>t.check(vR(...r))});function twe(t,e){return new PB({type:"set",valueType:t,...Be.normalizeParams(e)})}var tm=j("ZodEnum",(t,e)=>{X5.init(t,e),ze.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,s)=>{let i={};for(let a of n)if(r.has(a))i[a]=e.entries[a];else throw Error(`Key ${a} not found in enum`);return new tm({...e,checks:[],...Be.normalizeParams(s),entries:i})},t.exclude=(n,s)=>{let i={...e.entries};for(let a of n)if(r.has(a))delete i[a];else throw Error(`Key ${a} not found in enum`);return new tm({...e,checks:[],...Be.normalizeParams(s),entries:i})}});function vn(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new tm({type:"enum",entries:r,...Be.normalizeParams(e)})}function rwe(t,e){return new tm({type:"enum",entries:t,...Be.normalizeParams(e)})}var IB=j("ZodLiteral",(t,e)=>{eH.init(t,e),ze.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function de(t,e){return new IB({type:"literal",values:Array.isArray(t)?t:[t],...Be.normalizeParams(e)})}var CB=j("ZodFile",(t,e)=>{tH.init(t,e),ze.init(t,e),t.min=(r,n)=>t.check(Xd(r,n)),t.max=(r,n)=>t.check(Ey(r,n)),t.mime=(r,n)=>t.check(ER(Array.isArray(r)?r:[r],n))});function nwe(t){return XH(CB,t)}var s1=j("ZodTransform",(t,e)=>{ZT.init(t,e),ze.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=i=>{if(typeof i=="string")r.issues.push(Be.issue(i,r.value,e));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=t),a.continue??(a.continue=!0),r.issues.push(Be.issue(a))}};let s=e.transform(r.value,r);return s instanceof Promise?s.then(i=>(r.value=i,r)):(r.value=s,r)}});function i1(t){return new s1({type:"transform",transform:t})}var a1=j("ZodOptional",(t,e)=>{rH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Lt(t){return new a1({type:"optional",innerType:t})}var OB=j("ZodNullable",(t,e)=>{nH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function ly(t){return new OB({type:"nullable",innerType:t})}function swe(t){return Lt(ly(t))}var AB=j("ZodDefault",(t,e)=>{sH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function jB(t,e){return new AB({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var NB=j("ZodPrefault",(t,e)=>{iH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function DB(t,e){return new NB({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var o1=j("ZodNonOptional",(t,e)=>{aH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function MB(t,e){return new o1({type:"nonoptional",innerType:t,...Be.normalizeParams(e)})}var zB=j("ZodSuccess",(t,e)=>{oH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function iwe(t){return new zB({type:"success",innerType:t})}var $B=j("ZodCatch",(t,e)=>{cH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function LB(t,e){return new $B({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var UB=j("ZodNaN",(t,e)=>{lH.init(t,e),ze.init(t,e)});function awe(t){return ZH(UB,t)}var c1=j("ZodPipe",(t,e)=>{GT.init(t,e),ze.init(t,e),t.in=e.in,t.out=e.out});function uy(t,e){return new c1({type:"pipe",in:t,out:e})}var qB=j("ZodReadonly",(t,e)=>{uH.init(t,e),ze.init(t,e)});function FB(t){return new qB({type:"readonly",innerType:t})}var HB=j("ZodTemplateLiteral",(t,e)=>{pH.init(t,e),ze.init(t,e)});function owe(t,e){return new HB({type:"template_literal",parts:t,...Be.normalizeParams(e)})}var BB=j("ZodLazy",(t,e)=>{mH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.getter()});function WB(t){return new BB({type:"lazy",getter:t})}var ZB=j("ZodPromise",(t,e)=>{dH.init(t,e),ze.init(t,e),t.unwrap=()=>t._zod.def.innerType});function cwe(t){return new ZB({type:"promise",innerType:t})}var Dy=j("ZodCustom",(t,e)=>{fH.init(t,e),ze.init(t,e)});function GB(t,e){let r=new Yt({check:"custom",...Be.normalizeParams(e)});return r._zod.check=t,r}function VB(t,e){return eB(Dy,t??(()=>!0),e)}function KB(t,e={}){return tB(Dy,t,e)}function JB(t,e){let r=GB(n=>(n.addIssue=s=>{if(typeof s=="string")n.issues.push(Be.issue(s,n.value,r._zod.def));else{let i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),n.issues.push(Be.issue(i))}},t(n.value,n)),e);return r}function lwe(t,e={error:`Input not instance of ${t.name}`}){let r=new Dy({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...Be.normalizeParams(e)});return r._zod.bag.Class=t,r}var uwe=(...t)=>rB({Pipe:c1,Boolean:Iy,String:Ry,Transform:s1},...t);function pwe(t){let e=WB(()=>vt([L(t),mt(),ar(),Oy(),We(e),Ot(L(),e)]));return e}function l1(t,e){return uy(i1(t),e)}var dwe={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function mwe(t){Yr({customError:t})}function fwe(){return Yr().customError}var QB={};lo(QB,{string:()=>hwe,number:()=>gwe,date:()=>bwe,boolean:()=>vwe,bigint:()=>ywe});function hwe(t){return bH(Ry,t)}function gwe(t){return TH(Py,t)}function vwe(t){return jH(Iy,t)}function ywe(t){return DH(Cy,t)}function bwe(t){return WH(e1,t)}Yr(hH());var xwe="io.modelcontextprotocol/related-task",My="2.0",Rr=VB(t=>t!==null&&(typeof t=="object"||typeof t=="function")),YB=vt([L(),mt().int()]),XB=L(),$$e=Kr({ttl:vt([mt(),Oy()]).optional(),pollInterval:mt().optional()}),_we=oe({ttl:mt().optional()}),wwe=oe({taskId:L()}),u1=Kr({progressToken:YB.optional(),[xwe]:wwe.optional()}),In=oe({_meta:u1.optional()}),zy=In.extend({task:_we.optional()});var Pr=oe({method:L(),params:In.loose().optional()}),Qn=oe({_meta:u1.optional()}),Yn=oe({method:L(),params:Qn.loose().optional()}),Ir=Kr({_meta:u1.optional()}),$y=vt([L(),mt().int()]),Swe=oe({jsonrpc:de(My),id:$y,...Pr.shape}).strict();var Ewe=oe({jsonrpc:de(My),...Yn.shape}).strict();var e3=oe({jsonrpc:de(My),id:$y,result:Ir}).strict();var XF;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(XF||(XF={}));var t3=oe({jsonrpc:de(My),id:$y.optional(),error:oe({code:mt().int(),message:L(),data:$t().optional()})}).strict();var L$e=vt([Swe,Ewe,e3,t3]),U$e=vt([e3,t3]),r3=Ir.strict(),kwe=Qn.extend({requestId:$y.optional(),reason:L().optional()}),n3=Yn.extend({method:de("notifications/cancelled"),params:kwe}),Twe=oe({src:L(),mimeType:L().optional(),sizes:We(L()).optional(),theme:vn(["light","dark"]).optional()}),am=oe({icons:We(Twe).optional()}),fl=oe({name:L(),title:L().optional()}),s3=fl.extend({...fl.shape,...am.shape,version:L(),websiteUrl:L().optional(),description:L().optional()}),Rwe=Ny(oe({applyDefaults:ar().optional()}),Ot(L(),$t())),Pwe=l1(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Ny(oe({form:Rwe.optional(),url:Rr.optional()}),Ot(L(),$t()).optional())),Iwe=Kr({list:Rr.optional(),cancel:Rr.optional(),requests:Kr({sampling:Kr({createMessage:Rr.optional()}).optional(),elicitation:Kr({create:Rr.optional()}).optional()}).optional()}),Cwe=Kr({list:Rr.optional(),cancel:Rr.optional(),requests:Kr({tools:Kr({call:Rr.optional()}).optional()}).optional()}),Owe=oe({experimental:Ot(L(),Rr).optional(),sampling:oe({context:Rr.optional(),tools:Rr.optional()}).optional(),elicitation:Pwe.optional(),roots:oe({listChanged:ar().optional()}).optional(),tasks:Iwe.optional()}),Awe=In.extend({protocolVersion:L(),capabilities:Owe,clientInfo:s3}),jwe=Pr.extend({method:de("initialize"),params:Awe}),Nwe=oe({experimental:Ot(L(),Rr).optional(),logging:Rr.optional(),completions:Rr.optional(),prompts:oe({listChanged:ar().optional()}).optional(),resources:oe({subscribe:ar().optional(),listChanged:ar().optional()}).optional(),tools:oe({listChanged:ar().optional()}).optional(),tasks:Cwe.optional()}),Dwe=Ir.extend({protocolVersion:L(),capabilities:Nwe,serverInfo:s3,instructions:L().optional()}),Mwe=Yn.extend({method:de("notifications/initialized"),params:Qn.optional()}),i3=Pr.extend({method:de("ping"),params:In.optional()}),zwe=oe({progress:mt(),total:Lt(mt()),message:Lt(L())}),$we=oe({...Qn.shape,...zwe.shape,progressToken:YB}),a3=Yn.extend({method:de("notifications/progress"),params:$we}),Lwe=In.extend({cursor:XB.optional()}),om=Pr.extend({params:Lwe.optional()}),cm=Ir.extend({nextCursor:XB.optional()}),Uwe=vn(["working","input_required","completed","failed","cancelled"]),lm=oe({taskId:L(),status:Uwe,ttl:vt([mt(),Oy()]),createdAt:L(),lastUpdatedAt:L(),pollInterval:Lt(mt()),statusMessage:Lt(L())}),o3=Ir.extend({task:lm}),qwe=Qn.merge(lm),c3=Yn.extend({method:de("notifications/tasks/status"),params:qwe}),l3=Pr.extend({method:de("tasks/get"),params:In.extend({taskId:L()})}),u3=Ir.merge(lm),p3=Pr.extend({method:de("tasks/result"),params:In.extend({taskId:L()})}),q$e=Ir.loose(),d3=om.extend({method:de("tasks/list")}),m3=cm.extend({tasks:We(lm)}),f3=Pr.extend({method:de("tasks/cancel"),params:In.extend({taskId:L()})}),F$e=Ir.merge(lm),h3=oe({uri:L(),mimeType:Lt(L()),_meta:Ot(L(),$t()).optional()}),g3=h3.extend({text:L()}),p1=L().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),v3=h3.extend({blob:p1}),um=vn(["user","assistant"]),xl=oe({audience:We(um).optional(),priority:mt().min(0).max(1).optional(),lastModified:CR.datetime({offset:!0}).optional()}),y3=oe({...fl.shape,...am.shape,uri:L(),description:Lt(L()),mimeType:Lt(L()),annotations:xl.optional(),_meta:Lt(Kr({}))}),Fwe=oe({...fl.shape,...am.shape,uriTemplate:L(),description:Lt(L()),mimeType:Lt(L()),annotations:xl.optional(),_meta:Lt(Kr({}))}),Hwe=om.extend({method:de("resources/list")}),Bwe=cm.extend({resources:We(y3)}),Wwe=om.extend({method:de("resources/templates/list")}),Zwe=cm.extend({resourceTemplates:We(Fwe)}),d1=In.extend({uri:L()}),Gwe=d1,Vwe=Pr.extend({method:de("resources/read"),params:Gwe}),Kwe=Ir.extend({contents:We(vt([g3,v3]))}),Jwe=Yn.extend({method:de("notifications/resources/list_changed"),params:Qn.optional()}),Qwe=d1,Ywe=Pr.extend({method:de("resources/subscribe"),params:Qwe}),Xwe=d1,eSe=Pr.extend({method:de("resources/unsubscribe"),params:Xwe}),tSe=Qn.extend({uri:L()}),rSe=Yn.extend({method:de("notifications/resources/updated"),params:tSe}),nSe=oe({name:L(),description:Lt(L()),required:Lt(ar())}),sSe=oe({...fl.shape,...am.shape,description:Lt(L()),arguments:Lt(We(nSe)),_meta:Lt(Kr({}))}),iSe=om.extend({method:de("prompts/list")}),aSe=cm.extend({prompts:We(sSe)}),oSe=In.extend({name:L(),arguments:Ot(L(),L()).optional()}),cSe=Pr.extend({method:de("prompts/get"),params:oSe}),m1=oe({type:de("text"),text:L(),annotations:xl.optional(),_meta:Ot(L(),$t()).optional()}),f1=oe({type:de("image"),data:p1,mimeType:L(),annotations:xl.optional(),_meta:Ot(L(),$t()).optional()}),h1=oe({type:de("audio"),data:p1,mimeType:L(),annotations:xl.optional(),_meta:Ot(L(),$t()).optional()}),lSe=oe({type:de("tool_use"),name:L(),id:L(),input:Ot(L(),$t()),_meta:Ot(L(),$t()).optional()}),uSe=oe({type:de("resource"),resource:vt([g3,v3]),annotations:xl.optional(),_meta:Ot(L(),$t()).optional()}),pSe=y3.extend({type:de("resource_link")}),g1=vt([m1,f1,h1,pSe,uSe]),dSe=oe({role:um,content:g1}),mSe=Ir.extend({description:L().optional(),messages:We(dSe)}),fSe=Yn.extend({method:de("notifications/prompts/list_changed"),params:Qn.optional()}),hSe=oe({title:L().optional(),readOnlyHint:ar().optional(),destructiveHint:ar().optional(),idempotentHint:ar().optional(),openWorldHint:ar().optional()}),gSe=oe({taskSupport:vn(["required","optional","forbidden"]).optional()}),b3=oe({...fl.shape,...am.shape,description:L().optional(),inputSchema:oe({type:de("object"),properties:Ot(L(),Rr).optional(),required:We(L()).optional()}).catchall($t()),outputSchema:oe({type:de("object"),properties:Ot(L(),Rr).optional(),required:We(L()).optional()}).catchall($t()).optional(),annotations:hSe.optional(),execution:gSe.optional(),_meta:Ot(L(),$t()).optional()}),vSe=om.extend({method:de("tools/list")}),ySe=cm.extend({tools:We(b3)}),x3=Ir.extend({content:We(g1).default([]),structuredContent:Ot(L(),$t()).optional(),isError:ar().optional()}),H$e=x3.or(Ir.extend({toolResult:$t()})),bSe=zy.extend({name:L(),arguments:Ot(L(),$t()).optional()}),xSe=Pr.extend({method:de("tools/call"),params:bSe}),_Se=Yn.extend({method:de("notifications/tools/list_changed"),params:Qn.optional()}),B$e=oe({autoRefresh:ar().default(!0),debounceMs:mt().int().nonnegative().default(300)}),_3=vn(["debug","info","notice","warning","error","critical","alert","emergency"]),wSe=In.extend({level:_3}),SSe=Pr.extend({method:de("logging/setLevel"),params:wSe}),ESe=Qn.extend({level:_3,logger:L().optional(),data:$t()}),kSe=Yn.extend({method:de("notifications/message"),params:ESe}),TSe=oe({name:L().optional()}),RSe=oe({hints:We(TSe).optional(),costPriority:mt().min(0).max(1).optional(),speedPriority:mt().min(0).max(1).optional(),intelligencePriority:mt().min(0).max(1).optional()}),PSe=oe({mode:vn(["auto","required","none"]).optional()}),ISe=oe({type:de("tool_result"),toolUseId:L().describe("The unique identifier for the corresponding tool call."),content:We(g1).default([]),structuredContent:oe({}).loose().optional(),isError:ar().optional(),_meta:Ot(L(),$t()).optional()}),CSe=r1("type",[m1,f1,h1]),py=r1("type",[m1,f1,h1,lSe,ISe]),OSe=oe({role:um,content:vt([py,We(py)]),_meta:Ot(L(),$t()).optional()}),ASe=zy.extend({messages:We(OSe),modelPreferences:RSe.optional(),systemPrompt:L().optional(),includeContext:vn(["none","thisServer","allServers"]).optional(),temperature:mt().optional(),maxTokens:mt().int(),stopSequences:We(L()).optional(),metadata:Rr.optional(),tools:We(b3).optional(),toolChoice:PSe.optional()}),jSe=Pr.extend({method:de("sampling/createMessage"),params:ASe}),NSe=Ir.extend({model:L(),stopReason:Lt(vn(["endTurn","stopSequence","maxTokens"]).or(L())),role:um,content:CSe}),DSe=Ir.extend({model:L(),stopReason:Lt(vn(["endTurn","stopSequence","maxTokens","toolUse"]).or(L())),role:um,content:vt([py,We(py)])}),MSe=oe({type:de("boolean"),title:L().optional(),description:L().optional(),default:ar().optional()}),zSe=oe({type:de("string"),title:L().optional(),description:L().optional(),minLength:mt().optional(),maxLength:mt().optional(),format:vn(["email","uri","date","date-time"]).optional(),default:L().optional()}),$Se=oe({type:vn(["number","integer"]),title:L().optional(),description:L().optional(),minimum:mt().optional(),maximum:mt().optional(),default:mt().optional()}),LSe=oe({type:de("string"),title:L().optional(),description:L().optional(),enum:We(L()),default:L().optional()}),USe=oe({type:de("string"),title:L().optional(),description:L().optional(),oneOf:We(oe({const:L(),title:L()})),default:L().optional()}),qSe=oe({type:de("string"),title:L().optional(),description:L().optional(),enum:We(L()),enumNames:We(L()).optional(),default:L().optional()}),FSe=vt([LSe,USe]),HSe=oe({type:de("array"),title:L().optional(),description:L().optional(),minItems:mt().optional(),maxItems:mt().optional(),items:oe({type:de("string"),enum:We(L())}),default:We(L()).optional()}),BSe=oe({type:de("array"),title:L().optional(),description:L().optional(),minItems:mt().optional(),maxItems:mt().optional(),items:oe({anyOf:We(oe({const:L(),title:L()}))}),default:We(L()).optional()}),WSe=vt([HSe,BSe]),ZSe=vt([qSe,FSe,WSe]),GSe=vt([ZSe,MSe,zSe,$Se]),VSe=zy.extend({mode:de("form").optional(),message:L(),requestedSchema:oe({type:de("object"),properties:Ot(L(),GSe),required:We(L()).optional()})}),KSe=zy.extend({mode:de("url"),message:L(),elicitationId:L(),url:L().url()}),JSe=vt([VSe,KSe]),QSe=Pr.extend({method:de("elicitation/create"),params:JSe}),YSe=Qn.extend({elicitationId:L()}),XSe=Yn.extend({method:de("notifications/elicitation/complete"),params:YSe}),eEe=Ir.extend({action:vn(["accept","decline","cancel"]),content:l1(t=>t===null?void 0:t,Ot(L(),vt([L(),mt(),ar(),We(L())])).optional())}),tEe=oe({type:de("ref/resource"),uri:L()}),rEe=oe({type:de("ref/prompt"),name:L()}),nEe=In.extend({ref:vt([rEe,tEe]),argument:oe({name:L(),value:L()}),context:oe({arguments:Ot(L(),L()).optional()}).optional()}),sEe=Pr.extend({method:de("completion/complete"),params:nEe});var iEe=Ir.extend({completion:Kr({values:We(L()).max(100),total:Lt(mt().int()),hasMore:Lt(ar())})}),aEe=oe({uri:L().startsWith("file://"),name:L().optional(),_meta:Ot(L(),$t()).optional()}),oEe=Pr.extend({method:de("roots/list"),params:In.optional()}),cEe=Ir.extend({roots:We(aEe)}),lEe=Yn.extend({method:de("notifications/roots/list_changed"),params:Qn.optional()}),W$e=vt([i3,jwe,sEe,SSe,cSe,iSe,Hwe,Wwe,Vwe,Ywe,eSe,xSe,vSe,l3,p3,d3,f3]),Z$e=vt([n3,a3,Mwe,lEe,c3]),G$e=vt([r3,NSe,DSe,eEe,cEe,u3,m3,o3]),V$e=vt([i3,jSe,QSe,oEe,l3,p3,d3,f3]),K$e=vt([n3,a3,kSe,rSe,Jwe,_Se,fSe,c3,XSe]),J$e=vt([r3,Dwe,iEe,mSe,aSe,Bwe,Zwe,Kwe,x3,ySe,u3,m3,o3]);var Q$e=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var Y$e=t8(c8(),1),X$e=t8(dge(),1);var e8;(function(t){t.Completable="McpCompletable"})(e8||(e8={}));function uEe(t){let e;return()=>e??=t()}var eLe=uEe(()=>Gc.object({session_id:Gc.string(),ws_url:Gc.string(),work_dir:Gc.string().optional(),session_key:Gc.string().optional()}));function w3(t){return bbe(t)}var Ss=Q(require("fs"),1),_l=Q(require("path"),1),E3=Q(require("os"),1),k3=Q(require("readline"),1);re();var v1=_l.default.join(E3.default.homedir(),".claude","projects"),S3=["[MEMORY]","MEMORY PROCESSING START","MEMORY PROCESSING CONTINUED","PROGRESS SUMMARY CHECKPOINT","expert observation and knowledge extraction","","pragmatic code reviewer"],dEe=1440*60*1e3;function T3(t){let e={deleted:0,failed:0,errors:[]};if(t.length===0)return e;let r;try{r=R3()}catch(n){return e.errors.push(`Failed to read projects directory: ${n}`),e}for(let n of t){if(!fEe(n)){e.errors.push(`Invalid session ID format: ${n}`),e.failed++;continue}let s=!1;for(let i of r)if(P3(i,n)){s=!0,e.deleted++;break}s||_.debug("CLEANUP","Session file not found (may already be cleaned up)",{claudeSessionId:n})}return e.deleted>0&&_.info("CLEANUP",`Deleted ${e.deleted} memory session files`,{sessionIds:t.slice(0,5),total:t.length}),e}async function y1(t=dEe){let e={deleted:0,failed:0,errors:[]},r;try{r=R3()}catch(n){return e.errors.push(`Failed to read projects directory: ${n}`),e}for(let n of r){let s;try{s=Ss.default.readdirSync(n).filter(i=>i.endsWith(".jsonl"))}catch{continue}for(let i of s){let a=_l.default.join(n,i);try{if(!await mEe(a))continue;let c=i.replace(".jsonl","");P3(n,c)&&e.deleted++}catch(o){e.failed++,e.errors.push(`Failed to check ${i}: ${o}`)}}}return e.deleted>0&&_.info("CLEANUP",`Ephemeral session cleanup: deleted ${e.deleted} session files`),e}async function mEe(t){try{let e=Ss.default.createReadStream(t,{encoding:"utf8"}),r=k3.default.createInterface({input:e,crlfDelay:1/0}),n=!1;for await(let s of r)try{let i=JSON.parse(s);if(i.type==="last-prompt"&&i.lastPrompt&&S3.some(a=>i.lastPrompt.includes(a)))return r.close(),e.destroy(),!0;if(i.type==="user"){if(n)continue;n=!0;let a="",o=i.message?.content;if(typeof o=="string")a=o;else if(Array.isArray(o)){for(let c of o)if(c?.type==="text"&&c.text){a=c.text;break}}if(a&&S3.some(c=>a.includes(c)))return r.close(),e.destroy(),!0}}catch{}return r.close(),e.destroy(),!1}catch{return!1}}function R3(){return Ss.default.existsSync(v1)?Ss.default.readdirSync(v1).map(t=>_l.default.join(v1,t)).filter(t=>{try{return Ss.default.statSync(t).isDirectory()}catch{return!1}}):[]}function P3(t,e){let r=!1,n=_l.default.join(t,`${e}.jsonl`);if(Ss.default.existsSync(n))try{Ss.default.unlinkSync(n),r=!0}catch(i){_.warn("CLEANUP","Failed to delete session JSONL",{claudeSessionId:e,error:String(i)})}let s=_l.default.join(t,e);if(Ss.default.existsSync(s))try{Ss.default.statSync(s).isDirectory()&&(Ss.default.rmSync(s,{recursive:!0,force:!0}),r=!0)}catch(i){_.warn("CLEANUP","Failed to delete session directory",{claudeSessionId:e,error:String(i)})}return r}function fEe(t){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)}var I3=1e5,Ly=class{dbManager;sessionManager;constructor(e,r){this.dbManager=e,this.sessionManager=r}async startSession(e,r){let n,s=this.findClaudeExecutable(),i=this.getModelId(),a=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"];if(!e.memorySessionId)throw new Error(`Session ${e.sessionDbId} has no memory_session_id - this should not happen`);_.info("SDK","Starting SDK V2 session",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,memorySessionId:e.memorySessionId,lastPromptNumber:e.lastPromptNumber});let o=rF(),c=this.createSDKSession(i,s,a);try{let l=et.getInstance().getActiveMode(),p=e.lastPromptNumber===1?z6(e.project,e.contentSessionId,e.userPrompt,l):gk(e.userPrompt,e.lastPromptNumber,e.contentSessionId,l);e.conversationHistory.push({role:"user",content:p}),await c.send(p),await this.processStreamResponse(c,e,r,n),this.captureClaudeSessionId(c,e);for await(let m of this.sessionManager.getMessageBatchIterator(e.sessionDbId)){if(e.abortController.signal.aborted){_.warn("SDK","Session aborted",{sessionId:e.sessionDbId});break}let f=m.filter(v=>v.type==="observation"),g=m.filter(v=>v.type==="summarize");if(m.length>1&&_.info("SDK","Processing batch",{sessionId:e.sessionDbId,total:m.length,observations:f.length,summarizes:g.length}),f.length>0){for(let y of f)y.cwd&&(n=y.cwd),y.prompt_number!==void 0&&(e.lastPromptNumber=y.prompt_number);let v=f.map(y=>({id:0,tool_name:y.tool_name,tool_input:JSON.stringify(y.tool_input),tool_output:JSON.stringify(y.tool_response),created_at_epoch:y._originalTimestamp??Date.now(),cwd:y.cwd})),h=f.length===1?hk(v[0]):$6(v);if(e.conversationHistory.push({role:"user",content:h}),e.conversationHistory.length>12){let y=e.conversationHistory.slice(0,2),b=e.conversationHistory.slice(-10);e.conversationHistory.length=0,e.conversationHistory.push(...y,...b)}await c.send(h),await this.processStreamResponse(c,e,r,n),c=await this.maybeRotateSession(c,e,i,s,a,l,r,n)}for(let v of g){if(e.abortController.signal.aborted)break;let h=L6({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:v.last_assistant_message||""},l);e.conversationHistory.push({role:"user",content:h}),await c.send(h),await this.processStreamResponse(c,e,r,n),c=await this.maybeRotateSession(c,e,i,s,a,l,r,n)}}let d=Date.now()-e.startTime;_.success("SDK","V2 Agent completed",{sessionId:e.sessionDbId,duration:`${(d/1e3).toFixed(1)}s`})}finally{if(this.captureClaudeSessionId(c,e),c.close(),e.claudeSessionIds.length>0)try{let l=T3(e.claudeSessionIds);l.deleted>0&&_.info("SDK","Cleaned up Claude session files",{sessionId:e.sessionDbId,deletedFiles:l.deleted,trackedIds:e.claudeSessionIds.length})}catch(l){_.warn("SDK","Failed to clean up Claude session files",{sessionId:e.sessionDbId},l)}o&&o()}}async processStreamResponse(e,r,n,s){let i=r.earliestPendingTimestamp;for await(let a of e.stream())if(a.type==="assistant"){let o=a.message.content,c=Array.isArray(o)?o.filter(m=>m.type==="text").map(m=>m.text).join(` +`):typeof o=="string"?o:"",l=c.length,u=r.cumulativeInputTokens+r.cumulativeOutputTokens,p=a.message.usage;p&&(r.cumulativeInputTokens+=p.input_tokens||0,r.cumulativeOutputTokens+=p.output_tokens||0,p.cache_creation_input_tokens&&(r.cumulativeInputTokens+=p.cache_creation_input_tokens),_.debug("SDK","Token usage captured",{sessionId:r.sessionDbId,inputTokens:p.input_tokens,outputTokens:p.output_tokens,cumulativeInput:r.cumulativeInputTokens,cumulativeOutput:r.cumulativeOutputTokens}));let d=r.cumulativeInputTokens+r.cumulativeOutputTokens-u;if(l>0){let m=l>100?c.substring(0,100)+"...":c;_.dataOut("SDK",`V2 Response received (${l} chars)`,{sessionId:r.sessionDbId,promptNumber:r.lastPromptNumber},m)}await Sk(c,r,this.dbManager,this.sessionManager,n,d,i,"SDK",s)}}createSDKSession(e,r,n){return w3({model:e,disallowedTools:n,pathToClaudeCodeExecutable:r})}async maybeRotateSession(e,r,n,s,i,a,o,c){let l=r.cumulativeInputTokens+r.cumulativeOutputTokens;if(l<=I3)return e;_.info("SDK","Rotating SDK session due to token limit",{totalTokens:l,threshold:I3});try{e.close()}catch(d){_.warn("SDK","Error closing session during rotation",{},d)}let u=this.createSDKSession(n,s,i),p=gk(r.userPrompt,r.lastPromptNumber,r.contentSessionId,a);return await u.send(p),await this.processStreamResponse(u,r,o,c),this.captureClaudeSessionId(u,r),r.cumulativeInputTokens=0,r.cumulativeOutputTokens=0,u}captureClaudeSessionId(e,r){try{let n=e.sessionId;n&&!r.claudeSessionIds.includes(n)&&(r.claudeSessionIds.push(n),_.debug("SDK","Captured Claude session ID for cleanup",{sessionId:r.sessionDbId,claudeSessionId:n,totalTracked:r.claudeSessionIds.length}))}catch{}}findClaudeExecutable(){let e=Ae.loadFromFile(Ht);if(e.CLAUDE_CODE_PATH){let{existsSync:r}=require("fs");if(!r(e.CLAUDE_CODE_PATH))throw new Error(`CLAUDE_CODE_PATH is set to "${e.CLAUDE_CODE_PATH}" but the file does not exist.`);return e.CLAUDE_CODE_PATH}try{let r=(0,C3.execSync)(process.platform==="win32"?"where claude":"which claude",{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}).trim().split(` `)[0].trim();if(r)return r}catch(r){_.debug("SDK","Claude executable auto-detection failed",{},r)}throw new Error(`Claude executable not found. Please either: 1. Add "claude" to your system PATH, or -2. Set CLAUDE_CODE_PATH in ~/.pilot/memory/settings.json`)}getModelId(){let e=M3.default.join((0,D3.homedir)(),".pilot/memory","settings.json");return Ae.loadFromFile(e).CLAUDE_PILOT_MODEL}};re();var _ke={observations:["id, memory_session_id, project, type, title, subtitle, narrative, text, facts, concepts, files_read, files_modified, prompt_number, created_at, created_at_epoch"]},Fy=class{dbManager;constructor(e){this.dbManager=e}stripProjectPath(e,r){let n=`/${r}/`,s=e.indexOf(n);return s!==-1?e.substring(s+n.length):e}stripProjectPaths(e,r){if(!e)return e;try{let s=JSON.parse(e).map(i=>this.stripProjectPath(i,r));return JSON.stringify(s)}catch(n){return _.debug("WORKER","File paths is plain string, using as-is",{},n),e}}sanitizeObservation(e){return{...e,files_read:this.stripProjectPaths(e.files_read,e.project),files_modified:this.stripProjectPaths(e.files_modified,e.project)}}getObservations(e,r,n){let s=this.dbManager.getSessionStore().db,i=` +2. Set CLAUDE_CODE_PATH in ~/.pilot/memory/settings.json`)}getModelId(){let e=A3.default.join((0,O3.homedir)(),".pilot/memory","settings.json");return Ae.loadFromFile(e).CLAUDE_PILOT_MODEL}};re();var hEe={observations:["id, memory_session_id, project, type, title, subtitle, narrative, text, facts, concepts, files_read, files_modified, prompt_number, created_at, created_at_epoch"]},Uy=class{dbManager;constructor(e){this.dbManager=e}stripProjectPath(e,r){let n=`/${r}/`,s=e.indexOf(n);return s!==-1?e.substring(s+n.length):e}stripProjectPaths(e,r){if(!e)return e;try{let s=JSON.parse(e).map(i=>this.stripProjectPath(i,r));return JSON.stringify(s)}catch(n){return _.debug("WORKER","File paths is plain string, using as-is",{},n),e}}sanitizeObservation(e){return{...e,files_read:this.stripProjectPaths(e.files_read,e.project),files_modified:this.stripProjectPaths(e.files_modified,e.project)}}getObservations(e,r,n){let s=this.dbManager.getSessionStore().db,i=` SELECT o.id, o.memory_session_id, o.project, o.type, o.title, o.subtitle, o.narrative, o.text, o.facts, o.concepts, o.files_read, o.files_modified, @@ -1388,10 +1388,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs. SELECT up.id, up.content_session_id, s.project, up.prompt_number, up.prompt_text, up.created_at, up.created_at_epoch FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id - `,a=[];n&&(i+=" WHERE s.project = ?",a.push(n)),i+=" ORDER BY up.created_at_epoch DESC LIMIT ? OFFSET ?",a.push(r+1,e);let c=s.prepare(i).all(...a);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}paginate(e,r,n,s,i){let a=_ke[e];if(!a||!a.includes(r))throw new Error(`Disallowed query: table=${e}`);let o=this.dbManager.getSessionStore().db,c=`SELECT ${r} FROM ${e}`,l=[];i&&(c+=" WHERE project = ?",l.push(i)),c+=" ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?",l.push(s+1,n);let p=o.prepare(c).all(...l);return{items:p.slice(0,s),hasMore:p.length>s,offset:n,limit:s}}};var z3=require("path");re();Lc();Hn();var hi=class{emptyResult(e){return{results:{observations:[],sessions:[],prompts:[]},usedChroma:e==="chroma"||e==="hybrid"||e==="vector",fellBack:!1,strategy:e}}};var Tt={RECENCY_WINDOW_DAYS:90,RECENCY_WINDOW_MS:7776e6,DEFAULT_LIMIT:20,CHROMA_BATCH_SIZE:100};re();var Sl=class extends hi{constructor(r,n){super();this.vectorSync=r;this.sessionStore=n}vectorSync;sessionStore;name="vector";canHandle(r){return!!r.query&&!!this.vectorSync}async search(r){let{query:n,searchType:s="all",obsType:i,concepts:a,files:o,limit:c=Tt.DEFAULT_LIMIT,project:l,orderBy:u="date_desc"}=r;if(!n)return this.emptyResult("vector");let p=s==="all"||s==="observations",d=s==="all"||s==="sessions",m=s==="all"||s==="prompts",f=[],g=[],v=[];try{let h=this.buildWhereFilter(s);_.debug("SEARCH","VectorSearchStrategy: Querying vector DB",{query:n,searchType:s});let y=await this.vectorSync.query(n,Tt.CHROMA_BATCH_SIZE,h);if(_.debug("SEARCH","VectorSearchStrategy: Vector DB returned matches",{matchCount:y.ids.length}),y.ids.length===0)return{results:{observations:[],sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"vector"};let b=this.filterByRecency(y);_.debug("SEARCH","VectorSearchStrategy: Filtered by recency",{count:b.length});let x=this.categorizeByDocType(b,{searchObservations:p,searchSessions:d,searchPrompts:m});if(x.obsIds.length>0){let w={type:i,concepts:a,files:o,orderBy:u,limit:c,project:l};f=this.sessionStore.getObservationsByIds(x.obsIds,w)}return x.sessionIds.length>0&&(g=this.sessionStore.getSessionSummariesByIds(x.sessionIds,{orderBy:u,limit:c,project:l})),x.promptIds.length>0&&(v=this.sessionStore.getUserPromptsByIds(x.promptIds,{orderBy:u,limit:c,project:l})),_.debug("SEARCH","VectorSearchStrategy: Hydrated results",{observations:f.length,sessions:g.length,prompts:v.length}),{results:{observations:f,sessions:g,prompts:v},usedChroma:!0,fellBack:!1,strategy:"vector"}}catch(h){return _.error("SEARCH","VectorSearchStrategy: Search failed",{},h),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"vector"}}}buildWhereFilter(r){switch(r){case"observations":return{doc_type:"observation"};case"sessions":return{doc_type:"session_summary"};case"prompts":return{doc_type:"user_prompt"};default:return}}filterByRecency(r){let n=Date.now()-Tt.RECENCY_WINDOW_MS;return r.metadatas.map((s,i)=>({id:r.ids[i],meta:s})).filter(s=>s.meta&&s.meta.created_at_epoch>n)}categorizeByDocType(r,n){let s=[],i=[],a=[];for(let o of r){let c=o.meta?.doc_type;c==="observation"&&n.searchObservations?s.push(o.id):c==="session_summary"&&n.searchSessions?i.push(o.id):c==="user_prompt"&&n.searchPrompts&&a.push(o.id)}return{obsIds:s,sessionIds:i,promptIds:a}}};re();var dm=class extends hi{constructor(r){super();this.sessionSearch=r}sessionSearch;name="sqlite";canHandle(r){return!r.query||r.strategyHint==="sqlite"}async search(r){let{searchType:n="all",obsType:s,concepts:i,files:a,limit:o=Tt.DEFAULT_LIMIT,offset:c=0,project:l,dateRange:u,orderBy:p="date_desc"}=r,d=n==="all"||n==="observations",m=n==="all"||n==="sessions",f=n==="all"||n==="prompts",g=[],v=[],h=[],y={limit:o,offset:c,orderBy:p,project:l,dateRange:u};_.debug("SEARCH","SQLiteSearchStrategy: Filter-only query",{searchType:n,hasDateRange:!!u,hasProject:!!l});try{if(d){let b={...y,type:s,concepts:i,files:a};g=this.sessionSearch.searchObservations(void 0,b)}return m&&(v=this.sessionSearch.searchSessions(void 0,y)),f&&(h=this.sessionSearch.searchUserPrompts(void 0,y)),_.debug("SEARCH","SQLiteSearchStrategy: Results",{observations:g.length,sessions:v.length,prompts:h.length}),{results:{observations:g,sessions:v,prompts:h},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}catch(b){return _.error("SEARCH","SQLiteSearchStrategy: Search failed",{},b),this.emptyResult("sqlite")}}findByConcept(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByConcept(r,{limit:s,project:i,dateRange:a,orderBy:o})}findByType(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByType(r,{limit:s,project:i,dateRange:a,orderBy:o})}findByFile(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByFile(r,{limit:s,project:i,dateRange:a,orderBy:o})}};re();var mm=class extends hi{constructor(r,n,s){super();this.vectorSync=r;this.sessionStore=n;this.sessionSearch=s}vectorSync;sessionStore;sessionSearch;name="hybrid";canHandle(r){return!!this.vectorSync&&(!!r.concepts||!!r.files||!!r.type&&!!r.query||r.strategyHint==="hybrid")}async search(r){let{query:n,limit:s=Tt.DEFAULT_LIMIT,project:i}=r;return n?this.emptyResult("hybrid"):this.emptyResult("hybrid")}async findByConcept(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o};try{_.debug("SEARCH","HybridSearchStrategy: findByConcept",{concept:r});let l=this.sessionSearch.findByConcept(r,c);if(_.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:l.length}),l.length===0)return this.emptyResult("hybrid");let u=l.map(m=>m.id),p=await this.vectorSync.query(r,Math.min(u.length,Tt.CHROMA_BATCH_SIZE)),d=this.intersectWithRanking(u,p.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:d.length}),d.length>0){let m=this.sessionStore.getObservationsByIds(d,{limit:s});return m.sort((f,g)=>d.indexOf(f.id)-d.indexOf(g.id)),{results:{observations:m,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(l){return _.error("SEARCH","HybridSearchStrategy: findByConcept failed",{},l),{results:{observations:this.sessionSearch.findByConcept(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByType(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o},l=Array.isArray(r)?r.join(", "):r;try{_.debug("SEARCH","HybridSearchStrategy: findByType",{type:l});let u=this.sessionSearch.findByType(r,c);if(_.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:u.length}),u.length===0)return this.emptyResult("hybrid");let p=u.map(f=>f.id),d=await this.vectorSync.query(l,Math.min(p.length,Tt.CHROMA_BATCH_SIZE)),m=this.intersectWithRanking(p,d.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:m.length}),m.length>0){let f=this.sessionStore.getObservationsByIds(m,{limit:s});return f.sort((g,v)=>m.indexOf(g.id)-m.indexOf(v.id)),{results:{observations:f,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(u){return _.error("SEARCH","HybridSearchStrategy: findByType failed",{},u),{results:{observations:this.sessionSearch.findByType(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByFile(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o};try{_.debug("SEARCH","HybridSearchStrategy: findByFile",{filePath:r});let l=this.sessionSearch.findByFile(r,c);_.debug("SEARCH","HybridSearchStrategy: Found file matches",{observations:l.observations.length,sessions:l.sessions.length});let u=l.sessions;if(l.observations.length===0)return{observations:[],sessions:u,usedChroma:!1};let p=l.observations.map(f=>f.id),d=await this.vectorSync.query(r,Math.min(p.length,Tt.CHROMA_BATCH_SIZE)),m=this.intersectWithRanking(p,d.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked observations",{count:m.length}),m.length>0){let f=this.sessionStore.getObservationsByIds(m,{limit:s});return f.sort((g,v)=>m.indexOf(g.id)-m.indexOf(v.id)),{observations:f,sessions:u,usedChroma:!0}}return{observations:[],sessions:u,usedChroma:!1}}catch(l){_.error("SEARCH","HybridSearchStrategy: findByFile failed",{},l);let u=this.sessionSearch.findByFile(r,c);return{observations:u.observations,sessions:u.sessions,usedChroma:!1}}}intersectWithRanking(r,n){let s=new Set(r),i=[];for(let a of n)s.has(a)&&!i.includes(a)&&i.push(a);return i}};Hn();Lc();var wke=4,fm=class{formatSearchResults(e,r,n=!1){let s=e.observations.length+e.sessions.length+e.prompts.length;if(s===0)return n?this.formatChromaFailureMessage():`No results found matching "${r}"`;let i=this.combineResults(e);i.sort((l,u)=>u.epoch-l.epoch);let a=process.cwd(),o=Ka(i,l=>l.created_at),c=[];c.push(`Found ${s} result(s) matching "${r}" (${e.observations.length} obs, ${e.sessions.length} sessions, ${e.prompts.length} prompts)`),c.push("");for(let[l,u]of o){c.push(`### ${l}`),c.push("");let p=new Map;for(let d of u){let m="General";if(d.type==="observation"){let f=d.data;m=gs(f.files_modified,a,f.files_read)}p.has(m)||p.set(m,[]),p.get(m).push(d)}for(let[d,m]of p){c.push(`**${d}**`),c.push(this.formatSearchTableHeader());let f="";for(let g of m)if(g.type==="observation"){let v=this.formatObservationSearchRow(g.data,f);c.push(v.row),f=v.time}else if(g.type==="session"){let v=this.formatSessionSearchRow(g.data,f);c.push(v.row),f=v.time}else{let v=this.formatPromptSearchRow(g.data,f);c.push(v.row),f=v.time}c.push("")}}return c.join(` + `,a=[];n&&(i+=" WHERE s.project = ?",a.push(n)),i+=" ORDER BY up.created_at_epoch DESC LIMIT ? OFFSET ?",a.push(r+1,e);let c=s.prepare(i).all(...a);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}paginate(e,r,n,s,i){let a=hEe[e];if(!a||!a.includes(r))throw new Error(`Disallowed query: table=${e}`);let o=this.dbManager.getSessionStore().db,c=`SELECT ${r} FROM ${e}`,l=[];i&&(c+=" WHERE project = ?",l.push(i)),c+=" ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?",l.push(s+1,n);let p=o.prepare(c).all(...l);return{items:p.slice(0,s),hasMore:p.length>s,offset:n,limit:s}}};var j3=require("path");re();$c();Hn();var hi=class{emptyResult(e){return{results:{observations:[],sessions:[],prompts:[]},usedChroma:e==="chroma"||e==="hybrid"||e==="vector",fellBack:!1,strategy:e}}};var Tt={RECENCY_WINDOW_DAYS:90,RECENCY_WINDOW_MS:7776e6,DEFAULT_LIMIT:20,CHROMA_BATCH_SIZE:100};re();var wl=class extends hi{constructor(r,n){super();this.vectorSync=r;this.sessionStore=n}vectorSync;sessionStore;name="vector";canHandle(r){return!!r.query&&!!this.vectorSync}async search(r){let{query:n,searchType:s="all",obsType:i,concepts:a,files:o,limit:c=Tt.DEFAULT_LIMIT,project:l,orderBy:u="date_desc"}=r;if(!n)return this.emptyResult("vector");let p=s==="all"||s==="observations",d=s==="all"||s==="sessions",m=s==="all"||s==="prompts",f=[],g=[],v=[];try{let h=this.buildWhereFilter(s);_.debug("SEARCH","VectorSearchStrategy: Querying vector DB",{query:n,searchType:s});let y=await this.vectorSync.query(n,Tt.CHROMA_BATCH_SIZE,h);if(_.debug("SEARCH","VectorSearchStrategy: Vector DB returned matches",{matchCount:y.ids.length}),y.ids.length===0)return{results:{observations:[],sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"vector"};let b=this.filterByRecency(y);_.debug("SEARCH","VectorSearchStrategy: Filtered by recency",{count:b.length});let x=this.categorizeByDocType(b,{searchObservations:p,searchSessions:d,searchPrompts:m});if(x.obsIds.length>0){let w={type:i,concepts:a,files:o,orderBy:u,limit:c,project:l};f=this.sessionStore.getObservationsByIds(x.obsIds,w)}return x.sessionIds.length>0&&(g=this.sessionStore.getSessionSummariesByIds(x.sessionIds,{orderBy:u,limit:c,project:l})),x.promptIds.length>0&&(v=this.sessionStore.getUserPromptsByIds(x.promptIds,{orderBy:u,limit:c,project:l})),_.debug("SEARCH","VectorSearchStrategy: Hydrated results",{observations:f.length,sessions:g.length,prompts:v.length}),{results:{observations:f,sessions:g,prompts:v},usedChroma:!0,fellBack:!1,strategy:"vector"}}catch(h){return _.error("SEARCH","VectorSearchStrategy: Search failed",{},h),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"vector"}}}buildWhereFilter(r){switch(r){case"observations":return{doc_type:"observation"};case"sessions":return{doc_type:"session_summary"};case"prompts":return{doc_type:"user_prompt"};default:return}}filterByRecency(r){let n=Date.now()-Tt.RECENCY_WINDOW_MS;return r.metadatas.map((s,i)=>({id:r.ids[i],meta:s})).filter(s=>s.meta&&s.meta.created_at_epoch>n)}categorizeByDocType(r,n){let s=[],i=[],a=[];for(let o of r){let c=o.meta?.doc_type;c==="observation"&&n.searchObservations?s.push(o.id):c==="session_summary"&&n.searchSessions?i.push(o.id):c==="user_prompt"&&n.searchPrompts&&a.push(o.id)}return{obsIds:s,sessionIds:i,promptIds:a}}};re();var pm=class extends hi{constructor(r){super();this.sessionSearch=r}sessionSearch;name="sqlite";canHandle(r){return!r.query||r.strategyHint==="sqlite"}async search(r){let{searchType:n="all",obsType:s,concepts:i,files:a,limit:o=Tt.DEFAULT_LIMIT,offset:c=0,project:l,dateRange:u,orderBy:p="date_desc"}=r,d=n==="all"||n==="observations",m=n==="all"||n==="sessions",f=n==="all"||n==="prompts",g=[],v=[],h=[],y={limit:o,offset:c,orderBy:p,project:l,dateRange:u};_.debug("SEARCH","SQLiteSearchStrategy: Filter-only query",{searchType:n,hasDateRange:!!u,hasProject:!!l});try{if(d){let b={...y,type:s,concepts:i,files:a};g=this.sessionSearch.searchObservations(void 0,b)}return m&&(v=this.sessionSearch.searchSessions(void 0,y)),f&&(h=this.sessionSearch.searchUserPrompts(void 0,y)),_.debug("SEARCH","SQLiteSearchStrategy: Results",{observations:g.length,sessions:v.length,prompts:h.length}),{results:{observations:g,sessions:v,prompts:h},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}catch(b){return _.error("SEARCH","SQLiteSearchStrategy: Search failed",{},b),this.emptyResult("sqlite")}}findByConcept(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByConcept(r,{limit:s,project:i,dateRange:a,orderBy:o})}findByType(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByType(r,{limit:s,project:i,dateRange:a,orderBy:o})}findByFile(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByFile(r,{limit:s,project:i,dateRange:a,orderBy:o})}};re();var dm=class extends hi{constructor(r,n,s){super();this.vectorSync=r;this.sessionStore=n;this.sessionSearch=s}vectorSync;sessionStore;sessionSearch;name="hybrid";canHandle(r){return!!this.vectorSync&&(!!r.concepts||!!r.files||!!r.type&&!!r.query||r.strategyHint==="hybrid")}async search(r){let{query:n,limit:s=Tt.DEFAULT_LIMIT,project:i}=r;return n?this.emptyResult("hybrid"):this.emptyResult("hybrid")}async findByConcept(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o};try{_.debug("SEARCH","HybridSearchStrategy: findByConcept",{concept:r});let l=this.sessionSearch.findByConcept(r,c);if(_.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:l.length}),l.length===0)return this.emptyResult("hybrid");let u=l.map(m=>m.id),p=await this.vectorSync.query(r,Math.min(u.length,Tt.CHROMA_BATCH_SIZE)),d=this.intersectWithRanking(u,p.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:d.length}),d.length>0){let m=this.sessionStore.getObservationsByIds(d,{limit:s});return m.sort((f,g)=>d.indexOf(f.id)-d.indexOf(g.id)),{results:{observations:m,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(l){return _.error("SEARCH","HybridSearchStrategy: findByConcept failed",{},l),{results:{observations:this.sessionSearch.findByConcept(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByType(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o},l=Array.isArray(r)?r.join(", "):r;try{_.debug("SEARCH","HybridSearchStrategy: findByType",{type:l});let u=this.sessionSearch.findByType(r,c);if(_.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:u.length}),u.length===0)return this.emptyResult("hybrid");let p=u.map(f=>f.id),d=await this.vectorSync.query(l,Math.min(p.length,Tt.CHROMA_BATCH_SIZE)),m=this.intersectWithRanking(p,d.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:m.length}),m.length>0){let f=this.sessionStore.getObservationsByIds(m,{limit:s});return f.sort((g,v)=>m.indexOf(g.id)-m.indexOf(v.id)),{results:{observations:f,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(u){return _.error("SEARCH","HybridSearchStrategy: findByType failed",{},u),{results:{observations:this.sessionSearch.findByType(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByFile(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o};try{_.debug("SEARCH","HybridSearchStrategy: findByFile",{filePath:r});let l=this.sessionSearch.findByFile(r,c);_.debug("SEARCH","HybridSearchStrategy: Found file matches",{observations:l.observations.length,sessions:l.sessions.length});let u=l.sessions;if(l.observations.length===0)return{observations:[],sessions:u,usedChroma:!1};let p=l.observations.map(f=>f.id),d=await this.vectorSync.query(r,Math.min(p.length,Tt.CHROMA_BATCH_SIZE)),m=this.intersectWithRanking(p,d.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked observations",{count:m.length}),m.length>0){let f=this.sessionStore.getObservationsByIds(m,{limit:s});return f.sort((g,v)=>m.indexOf(g.id)-m.indexOf(v.id)),{observations:f,sessions:u,usedChroma:!0}}return{observations:[],sessions:u,usedChroma:!1}}catch(l){_.error("SEARCH","HybridSearchStrategy: findByFile failed",{},l);let u=this.sessionSearch.findByFile(r,c);return{observations:u.observations,sessions:u.sessions,usedChroma:!1}}}intersectWithRanking(r,n){let s=new Set(r),i=[];for(let a of n)s.has(a)&&!i.includes(a)&&i.push(a);return i}};Hn();$c();var gEe=4,mm=class{formatSearchResults(e,r,n=!1){let s=e.observations.length+e.sessions.length+e.prompts.length;if(s===0)return n?this.formatChromaFailureMessage():`No results found matching "${r}"`;let i=this.combineResults(e);i.sort((l,u)=>u.epoch-l.epoch);let a=process.cwd(),o=Va(i,l=>l.created_at),c=[];c.push(`Found ${s} result(s) matching "${r}" (${e.observations.length} obs, ${e.sessions.length} sessions, ${e.prompts.length} prompts)`),c.push("");for(let[l,u]of o){c.push(`### ${l}`),c.push("");let p=new Map;for(let d of u){let m="General";if(d.type==="observation"){let f=d.data;m=gs(f.files_modified,a,f.files_read)}p.has(m)||p.set(m,[]),p.get(m).push(d)}for(let[d,m]of p){c.push(`**${d}**`),c.push(this.formatSearchTableHeader());let f="";for(let g of m)if(g.type==="observation"){let v=this.formatObservationSearchRow(g.data,f);c.push(v.row),f=v.time}else if(g.type==="session"){let v=this.formatSessionSearchRow(g.data,f);c.push(v.row),f=v.time}else{let v=this.formatPromptSearchRow(g.data,f);c.push(v.row),f=v.time}c.push("")}}return c.join(` `)}combineResults(e){return[...e.observations.map(r=>({type:"observation",data:r,epoch:r.created_at_epoch,created_at:r.created_at})),...e.sessions.map(r=>({type:"session",data:r,epoch:r.created_at_epoch,created_at:r.created_at})),...e.prompts.map(r=>({type:"prompt",data:r,epoch:r.created_at_epoch,created_at:r.created_at}))]}formatSearchTableHeader(){return`| ID | Time | T | Title | Read | |----|------|---|-------|------|`}formatTableHeader(){return`| ID | Time | T | Title | Read | Work | -|-----|------|---|-------|------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,s=Zr(e.created_at_epoch),i=et.getInstance().getTypeIcon(e.type),a=e.title||"Untitled",o=this.estimateReadTokens(e);return{row:`| ${n} | ${s===r?'"':s} | ${i} | ${a} | ~${o} |`,time:s}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,s=Zr(e.created_at_epoch),i="\u{1F3AF}",a=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${s===r?'"':s} | ${i} | ${a} | - |`,time:s}}formatPromptSearchRow(e,r){let n=`#P${e.id}`,s=Zr(e.created_at_epoch),i="\u{1F4AC}",a=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${s===r?'"':s} | ${i} | ${a} | - |`,time:s}}formatObservationIndex(e,r){let n=`#${e.id}`,s=Zr(e.created_at_epoch),i=et.getInstance().getTypeIcon(e.type),a=e.title||"Untitled",o=this.estimateReadTokens(e),c=et.getInstance().getWorkEmoji(e.type),l=e.discovery_tokens||0,u=l>0?`${c} ${l}`:"-";return`| ${n} | ${s} | ${i} | ${a} | ~${o} | ${u} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,s=Zr(e.created_at_epoch),i="\u{1F3AF}",a=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${s} | ${i} | ${a} | - | - |`}formatPromptIndex(e,r){let n=`#P${e.id}`,s=Zr(e.created_at_epoch),i="\u{1F4AC}",a=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${s} | ${i} | ${a} | - | - |`}estimateReadTokens(e){let r=(e.title?.length||0)+(e.subtitle?.length||0)+(e.narrative?.length||0)+(e.facts?.length||0);return Math.ceil(r/wke)}formatChromaFailureMessage(){return`Vector search failed - semantic search unavailable. +|-----|------|---|-------|------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,s=Zr(e.created_at_epoch),i=et.getInstance().getTypeIcon(e.type),a=e.title||"Untitled",o=this.estimateReadTokens(e);return{row:`| ${n} | ${s===r?'"':s} | ${i} | ${a} | ~${o} |`,time:s}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,s=Zr(e.created_at_epoch),i="\u{1F3AF}",a=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${s===r?'"':s} | ${i} | ${a} | - |`,time:s}}formatPromptSearchRow(e,r){let n=`#P${e.id}`,s=Zr(e.created_at_epoch),i="\u{1F4AC}",a=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${s===r?'"':s} | ${i} | ${a} | - |`,time:s}}formatObservationIndex(e,r){let n=`#${e.id}`,s=Zr(e.created_at_epoch),i=et.getInstance().getTypeIcon(e.type),a=e.title||"Untitled",o=this.estimateReadTokens(e),c=et.getInstance().getWorkEmoji(e.type),l=e.discovery_tokens||0,u=l>0?`${c} ${l}`:"-";return`| ${n} | ${s} | ${i} | ${a} | ~${o} | ${u} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,s=Zr(e.created_at_epoch),i="\u{1F3AF}",a=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${s} | ${i} | ${a} | - | - |`}formatPromptIndex(e,r){let n=`#P${e.id}`,s=Zr(e.created_at_epoch),i="\u{1F4AC}",a=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${s} | ${i} | ${a} | - | - |`}estimateReadTokens(e){let r=(e.title?.length||0)+(e.subtitle?.length||0)+(e.narrative?.length||0)+(e.facts?.length||0);return Math.ceil(r/gEe)}formatChromaFailureMessage(){return`Vector search failed - semantic search unavailable. To enable semantic search: 1. Install uv: https://docs.astral.sh/uv/getting-started/installation/ @@ -1407,15 +1407,15 @@ Search Strategy: Tips: - Filter by type: obs_type="bugfix,feature" - Filter by date: dateStart="2025-01-01" -- Sort: orderBy="date_desc" or "date_asc"`}};Hn();Lc();var ho=class{buildTimeline(e){let r=[...e.observations.map(n=>({type:"observation",data:n,epoch:n.created_at_epoch})),...e.sessions.map(n=>({type:"session",data:n,epoch:n.created_at_epoch})),...e.prompts.map(n=>({type:"prompt",data:n,epoch:n.created_at_epoch}))];return r.sort((n,s)=>n.epoch-s.epoch),r}filterByDepth(e,r,n,s,i){if(e.length===0)return e;let a=this.findAnchorIndex(e,r,n);if(a===-1)return e;let o=Math.max(0,a-s),c=Math.min(e.length,a+i+1);return e.slice(o,c)}findAnchorIndex(e,r,n){if(typeof r=="number")return e.findIndex(i=>i.type==="observation"&&i.data.id===r);if(typeof r=="string"&&r.startsWith("S")){let i=parseInt(r.slice(1),10);return e.findIndex(a=>a.type==="session"&&a.data.id===i)}let s=e.findIndex(i=>i.epoch>=n);return s===-1?e.length-1:s}formatTimeline(e,r,n={}){let{query:s,depthBefore:i,depthAfter:a,cwd:o=process.cwd()}=n;if(e.length===0)return s?`Found observation matching "${s}", but no timeline context available.`:"No timeline items found";let c=[];if(s&&r){let p=e.find(m=>m.type==="observation"&&m.data.id===r),d=p?p.data.title||"Untitled":"Unknown";c.push(`# Timeline for query: "${s}"`),c.push(`**Anchor:** Observation #${r} - ${d}`)}else r?c.push(`# Timeline around anchor: ${r}`):c.push("# Timeline");i!==void 0&&a!==void 0?c.push(`**Window:** ${i} records before -> ${a} records after | **Items:** ${e.length}`):c.push(`**Items:** ${e.length}`),c.push("");let l=this.groupByDay(e),u=this.sortDaysChronologically(l);for(let[p,d]of u){c.push(`### ${p}`),c.push("");let m=null,f="",g=!1;for(let v of d){let h=this.isAnchorItem(v,r);if(v.type==="session"){g&&(c.push(""),g=!1,m=null,f="");let y=v.data,b=y.request||"Session summary",x=h?" <- **ANCHOR**":"";c.push(`**\u{1F3AF} #S${y.id}** ${b} (${Bn(v.epoch)})${x}`),c.push("")}else if(v.type==="prompt"){g&&(c.push(""),g=!1,m=null,f="");let y=v.data,b=y.prompt_text.length>100?y.prompt_text.substring(0,100)+"...":y.prompt_text;c.push(`**\u{1F4AC} User Prompt #${y.prompt_number}** (${Bn(v.epoch)})`),c.push(`> ${b}`),c.push("")}else if(v.type==="observation"){let y=v.data,b=gs(y.files_modified,o,y.files_read);b!==m&&(g&&c.push(""),c.push(`**${b}**`),c.push("| ID | Time | T | Title | Tokens |"),c.push("|----|------|---|-------|--------|"),m=b,g=!0,f="");let x=et.getInstance().getTypeIcon(y.type),w=Zr(v.epoch),S=y.title||"Untitled",k=$c(y.narrative),R=w!==f?w:'"';f=w;let O=h?" <- **ANCHOR**":"";c.push(`| #${y.id} | ${R} | ${x} | ${S}${O} | ~${k} |`)}}g&&c.push("")}return c.join(` -`)}groupByDay(e){let r=new Map;for(let n of e){let s=ii(n.epoch);r.has(s)||r.set(s,[]),r.get(s).push(n)}return r}sortDaysChronologically(e){return Array.from(e.entries()).sort((r,n)=>{let s=new Date(r[0]).getTime(),i=new Date(n[0]).getTime();return s-i})}isAnchorItem(e,r){return r===null?!1:typeof r=="number"&&e.type==="observation"?e.data.id===r:typeof r=="string"&&r.startsWith("S")&&e.type==="session"?`S${e.data.id}`===r:!1}};re();var hm=class{constructor(e,r,n){this.sessionSearch=e;this.sessionStore=r;this.vectorSync=n;this.sqliteStrategy=new dm(e),n&&(this.vectorStrategy=new Sl(n,r),this.hybridStrategy=new mm(n,r,e)),this.resultFormatter=new fm,this.timelineBuilder=new ho}sessionSearch;sessionStore;vectorSync;vectorStrategy=null;sqliteStrategy;hybridStrategy=null;resultFormatter;timelineBuilder;async search(e){let r=this.normalizeParams(e);return await this.executeWithFallback(r)}async executeWithFallback(e){if(!e.query)return _.debug("SEARCH","Orchestrator: Filter-only query, using SQLite",{}),await this.sqliteStrategy.search(e);if(this.vectorStrategy){_.debug("SEARCH","Orchestrator: Using vector semantic search",{});let r=await this.vectorStrategy.search(e);return r.usedChroma?r:(_.debug("SEARCH","Orchestrator: Vector search failed, falling back to SQLite",{}),{...await this.sqliteStrategy.search({...e,query:void 0}),fellBack:!0})}return _.debug("SEARCH","Orchestrator: Vector DB not available",{}),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByConcept(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByConcept(e,n):{results:{observations:this.sqliteStrategy.findByConcept(e,n),sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByType(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByType(e,n):{results:{observations:this.sqliteStrategy.findByType(e,n),sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByFile(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByFile(e,n):{...this.sqliteStrategy.findByFile(e,n),usedChroma:!1}}getTimeline(e,r,n,s,i){let a=this.timelineBuilder.buildTimeline(e);return this.timelineBuilder.filterByDepth(a,r,n,s,i)}formatTimeline(e,r,n={}){return this.timelineBuilder.formatTimeline(e,r,n)}formatSearchResults(e,r,n=!1){return this.resultFormatter.formatSearchResults(e,r,n)}getFormatter(){return this.resultFormatter}getTimelineBuilder(){return this.timelineBuilder}normalizeParams(e){let r={...e};return r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(n=>n.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(n=>n.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obsType=r.obs_type.split(",").map(n=>n.trim()).filter(Boolean),delete r.obs_type),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(n=>n.trim()).filter(Boolean)),r.type&&!r.searchType&&["observations","sessions","prompts"].includes(r.type)&&(r.searchType=r.type,delete r.type),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r}isVectorDbAvailable(){return!!this.vectorSync}isChromaAvailable(){return this.isVectorDbAvailable()}};var Hy=class{constructor(e,r,n,s,i){this.sessionSearch=e;this.sessionStore=r;this.vectorSync=n;this.formatter=s;this.timelineService=i;this.orchestrator=new hm(e,r,n),this.timelineBuilder=new ho}sessionSearch;sessionStore;vectorSync;formatter;timelineService;orchestrator;timelineBuilder;async queryVector(e,r,n){return await this.vectorSync.query(e,r,n)}normalizeParams(e){let r={...e};return r.filePath&&!r.files&&(r.files=r.filePath,delete r.filePath),r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(n=>n.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(n=>n.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obs_type=r.obs_type.split(",").map(n=>n.trim()).filter(Boolean)),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(n=>n.trim()).filter(Boolean)),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r.isFolder==="true"?r.isFolder=!0:r.isFolder==="false"&&(r.isFolder=!1),r}async search(e){let r=this.normalizeParams(e),{query:n,type:s,obs_type:i,concepts:a,files:o,format:c,...l}=r,u=[],p=[],d=[],m=!1,f=!s||s==="observations",g=!s||s==="sessions",v=!s||s==="prompts";if(!n||n==="*"){_.debug("SEARCH","Filter-only query (no query text), using direct SQLite filtering",{enablesDateFilters:!0});let E={...l,type:i,concepts:a,files:o};f&&(u=this.sessionSearch.searchObservations(void 0,E)),g&&(p=this.sessionSearch.searchSessions(void 0,l)),v&&(d=this.sessionSearch.searchUserPrompts(void 0,l))}else if(this.vectorSync){let E=!1;_.debug("SEARCH","Using ChromaDB semantic search",{typeFilter:s||"all"});let R;s==="observations"?R={doc_type:"observation"}:s==="sessions"?R={doc_type:"session_summary"}:s==="prompts"&&(R={doc_type:"user_prompt"});let O=await this.queryVector(n,100,R);if(E=!0,_.debug("SEARCH","ChromaDB returned semantic matches",{matchCount:O.ids.length}),O.ids.length>0){let C=Date.now()-Tt.RECENCY_WINDOW_MS,U=O.metadatas.map((K,yt)=>({id:O.ids[yt],meta:K,isRecent:K&&K.created_at_epoch>C})).filter(K=>K.isRecent);_.debug("SEARCH","Results within 90-day window",{count:U.length});let q=[],Z=[],se=[];for(let K of U){let yt=K.meta?.doc_type;yt==="observation"&&f?q.push(K.id):yt==="session_summary"&&g?Z.push(K.id):yt==="user_prompt"&&v&&se.push(K.id)}if(_.debug("SEARCH","Categorized results by type",{observations:q.length,sessions:Z.length,prompts:d.length}),q.length>0){let K={...l,type:i,concepts:a,files:o};u=this.sessionStore.getObservationsByIds(q,K)}Z.length>0&&(p=this.sessionStore.getSessionSummariesByIds(Z,{orderBy:"date_desc",limit:l.limit,project:l.project})),se.length>0&&(d=this.sessionStore.getUserPromptsByIds(se,{orderBy:"date_desc",limit:l.limit,project:l.project})),_.debug("SEARCH","Hydrated results from SQLite",{observations:u.length,sessions:p.length,prompts:d.length})}else _.debug("SEARCH","ChromaDB found no matches (final result, no FTS5 fallback)",{})}else n&&(m=!0,_.debug("SEARCH","ChromaDB not initialized - semantic search unavailable",{}),_.debug("SEARCH","Install UVX/Python to enable vector search",{url:"https://docs.astral.sh/uv/getting-started/installation/"}),u=[],p=[],d=[]);let h=u.length+p.length+d.length;if(c==="json")return{observations:u,sessions:p,prompts:d,totalResults:h,query:n||""};if(h===0)return m?{content:[{type:"text",text:`Vector search failed - semantic search unavailable. +- Sort: orderBy="date_desc" or "date_asc"`}};Hn();$c();var fo=class{buildTimeline(e){let r=[...e.observations.map(n=>({type:"observation",data:n,epoch:n.created_at_epoch})),...e.sessions.map(n=>({type:"session",data:n,epoch:n.created_at_epoch})),...e.prompts.map(n=>({type:"prompt",data:n,epoch:n.created_at_epoch}))];return r.sort((n,s)=>n.epoch-s.epoch),r}filterByDepth(e,r,n,s,i){if(e.length===0)return e;let a=this.findAnchorIndex(e,r,n);if(a===-1)return e;let o=Math.max(0,a-s),c=Math.min(e.length,a+i+1);return e.slice(o,c)}findAnchorIndex(e,r,n){if(typeof r=="number")return e.findIndex(i=>i.type==="observation"&&i.data.id===r);if(typeof r=="string"&&r.startsWith("S")){let i=parseInt(r.slice(1),10);return e.findIndex(a=>a.type==="session"&&a.data.id===i)}let s=e.findIndex(i=>i.epoch>=n);return s===-1?e.length-1:s}formatTimeline(e,r,n={}){let{query:s,depthBefore:i,depthAfter:a,cwd:o=process.cwd()}=n;if(e.length===0)return s?`Found observation matching "${s}", but no timeline context available.`:"No timeline items found";let c=[];if(s&&r){let p=e.find(m=>m.type==="observation"&&m.data.id===r),d=p?p.data.title||"Untitled":"Unknown";c.push(`# Timeline for query: "${s}"`),c.push(`**Anchor:** Observation #${r} - ${d}`)}else r?c.push(`# Timeline around anchor: ${r}`):c.push("# Timeline");i!==void 0&&a!==void 0?c.push(`**Window:** ${i} records before -> ${a} records after | **Items:** ${e.length}`):c.push(`**Items:** ${e.length}`),c.push("");let l=this.groupByDay(e),u=this.sortDaysChronologically(l);for(let[p,d]of u){c.push(`### ${p}`),c.push("");let m=null,f="",g=!1;for(let v of d){let h=this.isAnchorItem(v,r);if(v.type==="session"){g&&(c.push(""),g=!1,m=null,f="");let y=v.data,b=y.request||"Session summary",x=h?" <- **ANCHOR**":"";c.push(`**\u{1F3AF} #S${y.id}** ${b} (${Bn(v.epoch)})${x}`),c.push("")}else if(v.type==="prompt"){g&&(c.push(""),g=!1,m=null,f="");let y=v.data,b=y.prompt_text.length>100?y.prompt_text.substring(0,100)+"...":y.prompt_text;c.push(`**\u{1F4AC} User Prompt #${y.prompt_number}** (${Bn(v.epoch)})`),c.push(`> ${b}`),c.push("")}else if(v.type==="observation"){let y=v.data,b=gs(y.files_modified,o,y.files_read);b!==m&&(g&&c.push(""),c.push(`**${b}**`),c.push("| ID | Time | T | Title | Tokens |"),c.push("|----|------|---|-------|--------|"),m=b,g=!0,f="");let x=et.getInstance().getTypeIcon(y.type),w=Zr(v.epoch),S=y.title||"Untitled",E=zc(y.narrative),R=w!==f?w:'"';f=w;let O=h?" <- **ANCHOR**":"";c.push(`| #${y.id} | ${R} | ${x} | ${S}${O} | ~${E} |`)}}g&&c.push("")}return c.join(` +`)}groupByDay(e){let r=new Map;for(let n of e){let s=ii(n.epoch);r.has(s)||r.set(s,[]),r.get(s).push(n)}return r}sortDaysChronologically(e){return Array.from(e.entries()).sort((r,n)=>{let s=new Date(r[0]).getTime(),i=new Date(n[0]).getTime();return s-i})}isAnchorItem(e,r){return r===null?!1:typeof r=="number"&&e.type==="observation"?e.data.id===r:typeof r=="string"&&r.startsWith("S")&&e.type==="session"?`S${e.data.id}`===r:!1}};re();var fm=class{constructor(e,r,n){this.sessionSearch=e;this.sessionStore=r;this.vectorSync=n;this.sqliteStrategy=new pm(e),n&&(this.vectorStrategy=new wl(n,r),this.hybridStrategy=new dm(n,r,e)),this.resultFormatter=new mm,this.timelineBuilder=new fo}sessionSearch;sessionStore;vectorSync;vectorStrategy=null;sqliteStrategy;hybridStrategy=null;resultFormatter;timelineBuilder;async search(e){let r=this.normalizeParams(e);return await this.executeWithFallback(r)}async executeWithFallback(e){if(!e.query)return _.debug("SEARCH","Orchestrator: Filter-only query, using SQLite",{}),await this.sqliteStrategy.search(e);if(this.vectorStrategy){_.debug("SEARCH","Orchestrator: Using vector semantic search",{});let r=await this.vectorStrategy.search(e);return r.usedChroma?r:(_.debug("SEARCH","Orchestrator: Vector search failed, falling back to SQLite",{}),{...await this.sqliteStrategy.search({...e,query:void 0}),fellBack:!0})}return _.debug("SEARCH","Orchestrator: Vector DB not available",{}),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByConcept(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByConcept(e,n):{results:{observations:this.sqliteStrategy.findByConcept(e,n),sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByType(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByType(e,n):{results:{observations:this.sqliteStrategy.findByType(e,n),sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByFile(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByFile(e,n):{...this.sqliteStrategy.findByFile(e,n),usedChroma:!1}}getTimeline(e,r,n,s,i){let a=this.timelineBuilder.buildTimeline(e);return this.timelineBuilder.filterByDepth(a,r,n,s,i)}formatTimeline(e,r,n={}){return this.timelineBuilder.formatTimeline(e,r,n)}formatSearchResults(e,r,n=!1){return this.resultFormatter.formatSearchResults(e,r,n)}getFormatter(){return this.resultFormatter}getTimelineBuilder(){return this.timelineBuilder}normalizeParams(e){let r={...e};return r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(n=>n.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(n=>n.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obsType=r.obs_type.split(",").map(n=>n.trim()).filter(Boolean),delete r.obs_type),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(n=>n.trim()).filter(Boolean)),r.type&&!r.searchType&&["observations","sessions","prompts"].includes(r.type)&&(r.searchType=r.type,delete r.type),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r}isVectorDbAvailable(){return!!this.vectorSync}isChromaAvailable(){return this.isVectorDbAvailable()}};var qy=class{constructor(e,r,n,s,i){this.sessionSearch=e;this.sessionStore=r;this.vectorSync=n;this.formatter=s;this.timelineService=i;this.orchestrator=new fm(e,r,n),this.timelineBuilder=new fo}sessionSearch;sessionStore;vectorSync;formatter;timelineService;orchestrator;timelineBuilder;async queryVector(e,r,n){return await this.vectorSync.query(e,r,n)}normalizeParams(e){let r={...e};return r.filePath&&!r.files&&(r.files=r.filePath,delete r.filePath),r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(n=>n.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(n=>n.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obs_type=r.obs_type.split(",").map(n=>n.trim()).filter(Boolean)),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(n=>n.trim()).filter(Boolean)),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r.isFolder==="true"?r.isFolder=!0:r.isFolder==="false"&&(r.isFolder=!1),r}async search(e){let r=this.normalizeParams(e),{query:n,type:s,obs_type:i,concepts:a,files:o,format:c,...l}=r,u=[],p=[],d=[],m=!1,f=!s||s==="observations",g=!s||s==="sessions",v=!s||s==="prompts";if(!n||n==="*"){_.debug("SEARCH","Filter-only query (no query text), using direct SQLite filtering",{enablesDateFilters:!0});let k={...l,type:i,concepts:a,files:o};f&&(u=this.sessionSearch.searchObservations(void 0,k)),g&&(p=this.sessionSearch.searchSessions(void 0,l)),v&&(d=this.sessionSearch.searchUserPrompts(void 0,l))}else if(this.vectorSync){let k=!1;_.debug("SEARCH","Using ChromaDB semantic search",{typeFilter:s||"all"});let R;s==="observations"?R={doc_type:"observation"}:s==="sessions"?R={doc_type:"session_summary"}:s==="prompts"&&(R={doc_type:"user_prompt"});let O=await this.queryVector(n,100,R);if(k=!0,_.debug("SEARCH","ChromaDB returned semantic matches",{matchCount:O.ids.length}),O.ids.length>0){let C=Date.now()-Tt.RECENCY_WINDOW_MS,U=O.metadatas.map((K,yt)=>({id:O.ids[yt],meta:K,isRecent:K&&K.created_at_epoch>C})).filter(K=>K.isRecent);_.debug("SEARCH","Results within 90-day window",{count:U.length});let q=[],Z=[],se=[];for(let K of U){let yt=K.meta?.doc_type;yt==="observation"&&f?q.push(K.id):yt==="session_summary"&&g?Z.push(K.id):yt==="user_prompt"&&v&&se.push(K.id)}if(_.debug("SEARCH","Categorized results by type",{observations:q.length,sessions:Z.length,prompts:d.length}),q.length>0){let K={...l,type:i,concepts:a,files:o};u=this.sessionStore.getObservationsByIds(q,K)}Z.length>0&&(p=this.sessionStore.getSessionSummariesByIds(Z,{orderBy:"date_desc",limit:l.limit,project:l.project})),se.length>0&&(d=this.sessionStore.getUserPromptsByIds(se,{orderBy:"date_desc",limit:l.limit,project:l.project})),_.debug("SEARCH","Hydrated results from SQLite",{observations:u.length,sessions:p.length,prompts:d.length})}else _.debug("SEARCH","ChromaDB found no matches (final result, no FTS5 fallback)",{})}else n&&(m=!0,_.debug("SEARCH","ChromaDB not initialized - semantic search unavailable",{}),_.debug("SEARCH","Install UVX/Python to enable vector search",{url:"https://docs.astral.sh/uv/getting-started/installation/"}),u=[],p=[],d=[]);let h=u.length+p.length+d.length;if(c==="json")return{observations:u,sessions:p,prompts:d,totalResults:h,query:n||""};if(h===0)return m?{content:[{type:"text",text:`Vector search failed - semantic search unavailable. To enable semantic search: 1. Install uv: https://docs.astral.sh/uv/getting-started/installation/ 2. Restart the worker: npm run worker:restart -Note: You can still use filter-only searches (date ranges, types, files) without a query term.`}]}:{content:[{type:"text",text:`No results found${n&&n!=="*"?` matching "${n}"`:""}`}]};let y=[...u.map(E=>({type:"observation",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...p.map(E=>({type:"session",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...d.map(E=>({type:"prompt",data:E,epoch:E.created_at_epoch,created_at:E.created_at}))];l.orderBy==="date_desc"?y.sort((E,R)=>R.epoch-E.epoch):l.orderBy==="date_asc"&&y.sort((E,R)=>E.epoch-R.epoch);let b=y.slice(0,l.limit||20),x=process.cwd(),w=Ka(b,E=>E.created_at),S=[],k=n&&n!=="*"?` matching "${n}"`:"";S.push(`Found ${h} result(s)${k} (${u.length} obs, ${p.length} sessions, ${d.length} prompts)`),S.push("");for(let[E,R]of w){S.push(`### ${E}`),S.push("");let O=new Map;for(let C of R){let U="General";C.type==="observation"&&(U=gs(C.data.files_modified,x,C.data.files_read)),O.has(U)||O.set(U,[]),O.get(U).push(C)}for(let[C,U]of O){S.push(`**${C}**`),S.push(this.formatter.formatSearchTableHeader());let q="";for(let Z of U)if(Z.type==="observation"){let se=this.formatter.formatObservationSearchRow(Z.data,q);S.push(se.row),q=se.time}else if(Z.type==="session"){let se=this.formatter.formatSessionSearchRow(Z.data,q);S.push(se.row),q=se.time}else{let se=this.formatter.formatUserPromptSearchRow(Z.data,q);S.push(se.row),q=se.time}S.push("")}}return{content:[{type:"text",text:S.join(` -`)}]}}async semanticSearchWithScores(e){let r=this.normalizeParams(e),{query:n,type:s,obs_type:i,project:a,limit:o=20,dateStart:c,dateEnd:l}=r,u=[],p=!1,d=!!this.vectorSync;if(!n||n==="*"){let m={limit:o,project:a,type:i},f=this.sessionSearch.searchObservations(void 0,m);for(let g of f)u.push({id:g.id,type:"observation",title:g.title||"Untitled",content:g.narrative||g.text||"",project:g.project||"",timestamp:g.created_at,score:0,obsType:g.type});return{results:u.slice(0,o),query:n||"",usedSemantic:!1,vectorDbAvailable:d}}if(this.vectorSync)try{let m;s==="observations"?m={doc_type:"observation"}:s==="sessions"?m={doc_type:"session_summary"}:s==="prompts"&&(m={doc_type:"user_prompt"});let f=await this.queryVector(n,100,m);if(p=!0,f.ids.length>0){let g=new Map,v=new Map,h=Date.now()-Tt.RECENCY_WINDOW_MS;for(let w=0;wh){let k=f.ids[w],E=f.distances[w]||0,R=Math.max(0,Math.min(1,1-E/2));(!g.has(k)||R>g.get(k))&&(g.set(k,R),v.set(k,S.doc_type))}}let y=[],b=[],x=[];for(let[w,S]of v)S==="observation"&&(!s||s==="observations")?y.push(w):S==="session_summary"&&(!s||s==="sessions")?b.push(w):S==="user_prompt"&&(!s||s==="prompts")&&x.push(w);if(y.length>0){let w={type:i,project:a},S=this.sessionStore.getObservationsByIds(y,w);for(let k of S)u.push({id:k.id,type:"observation",title:k.title||"Untitled",content:k.narrative||k.text||"",project:k.project||"",timestamp:k.created_at,score:g.get(k.id)||0,obsType:k.type})}if(b.length>0){let w=this.sessionStore.getSessionSummariesByIds(b,{project:a});for(let S of w)u.push({id:S.id,type:"summary",title:S.request||"Session Summary",content:S.learned||S.completed||"",project:S.project||"",timestamp:S.created_at,score:g.get(S.id)||0})}if(x.length>0){let w=this.sessionStore.getUserPromptsByIds(x,{project:a});for(let S of w)u.push({id:S.id,type:"prompt",title:`Prompt #${S.prompt_number}`,content:S.prompt_text||"",project:S.project||"",timestamp:S.created_at,score:g.get(S.id)||0})}u.sort((w,S)=>S.score-w.score)}}catch(m){_.error("SEARCH","Semantic search failed",{},m),p=!1}return{results:u.slice(0,o),query:n,usedSemantic:p,vectorDbAvailable:d}}async timeline(e){let{anchor:r,query:n,depth_before:s=10,depth_after:i=10,project:a}=e,o=process.cwd();if(!r&&!n)return{content:[{type:"text",text:'Error: Must provide either "anchor" or "query" parameter'}],isError:!0};if(r&&n)return{content:[{type:"text",text:'Error: Cannot provide both "anchor" and "query" parameters. Use one or the other.'}],isError:!0};let c,l,u;if(n){let v=[];if(this.vectorSync)try{_.debug("SEARCH","Using hybrid semantic search for timeline query",{});let y=await this.queryVector(n,100);if(_.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:y?.ids?.length??0}),y?.ids&&y.ids.length>0){let b=Date.now()-Tt.RECENCY_WINDOW_MS,x=y.ids.filter((w,S)=>{let k=y.metadatas[S];return k&&k.created_at_epoch>b});x.length>0&&(v=this.sessionStore.getObservationsByIds(x,{orderBy:"date_desc",limit:1}))}}catch(y){_.error("SEARCH","Chroma search failed for timeline, continuing without semantic results",{},y)}if(v.length===0)return{content:[{type:"text",text:`No observations found matching "${n}". Try a different search query.`}]};let h=v[0];c=h.id,l=h.created_at_epoch,_.debug("SEARCH","Query mode: Using observation as timeline anchor",{observationId:h.id}),u=this.sessionStore.getTimelineAroundObservation(h.id,h.created_at_epoch,s,i,a)}else if(typeof r=="number"){let v=this.sessionStore.getObservationById(r);if(!v)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};c=r,l=v.created_at_epoch,u=this.sessionStore.getTimelineAroundObservation(r,l,s,i,a)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let v=r.replace(/^#?S/,""),h=parseInt(v,10),y=this.sessionStore.getSessionSummariesByIds([h]);if(y.length===0)return{content:[{type:"text",text:`Session #${h} not found`}],isError:!0};l=y[0].created_at_epoch,c=`S${h}`,u=this.sessionStore.getTimelineAroundTimestamp(l,s,i,a)}else{let v=new Date(r);if(isNaN(v.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};l=v.getTime(),c=r,u=this.sessionStore.getTimelineAroundTimestamp(l,s,i,a)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let p=[...(u.observations||[]).map(v=>({type:"observation",data:v,epoch:v.created_at_epoch})),...(u.sessions||[]).map(v=>({type:"session",data:v,epoch:v.created_at_epoch})),...(u.prompts||[]).map(v=>({type:"prompt",data:v,epoch:v.created_at_epoch}))];p.sort((v,h)=>v.epoch-h.epoch);let d=this.timelineService.filterByDepth(p,c,l,s,i);if(!d||d.length===0)return{content:[{type:"text",text:n?`Found observation matching "${n}", but no timeline context available (${s} records before, ${i} records after).`:`No context found around anchor (${s} records before, ${i} records after)`}]};let m=[];if(n){let v=d.find(y=>y.type==="observation"&&y.data.id===c),h=v&&v.type==="observation"?v.data.title||"Untitled":"Unknown";m.push(`# Timeline for query: "${n}"`),m.push(`**Anchor:** Observation #${c} - ${h}`)}else m.push(`# Timeline around anchor: ${c}`);m.push(`**Window:** ${s} records before -> ${i} records after | **Items:** ${d?.length??0}`),m.push("");let f=new Map;for(let v of d){let h=ii(v.epoch);f.has(h)||f.set(h,[]),f.get(h).push(v)}let g=Array.from(f.entries()).sort((v,h)=>{let y=new Date(v[0]).getTime(),b=new Date(h[0]).getTime();return y-b});for(let[v,h]of g){m.push(`### ${v}`),m.push("");let y=null,b="",x=!1;for(let w of h){let S=typeof c=="number"&&w.type==="observation"&&w.data.id===c||typeof c=="string"&&c.startsWith("S")&&w.type==="session"&&`S${w.data.id}`===c;if(w.type==="session"){x&&(m.push(""),x=!1,y=null,b="");let k=w.data,E=k.request||"Session summary",R=S?" <- **ANCHOR**":"";m.push(`**\u{1F3AF} #S${k.id}** ${E} (${Bn(w.epoch)})${R}`),m.push("")}else if(w.type==="prompt"){x&&(m.push(""),x=!1,y=null,b="");let k=w.data,E=k.prompt_text.length>100?k.prompt_text.substring(0,100)+"...":k.prompt_text;m.push(`**\u{1F4AC} User Prompt #${k.prompt_number}** (${Bn(w.epoch)})`),m.push(`> ${E}`),m.push("")}else if(w.type==="observation"){let k=w.data,E=gs(k.files_modified,o,k.files_read);E!==y&&(x&&m.push(""),m.push(`**${E}**`),m.push("| ID | Time | T | Title | Tokens |"),m.push("|----|------|---|-------|--------|"),y=E,x=!0,b="");let R=et.getInstance().getTypeIcon(k.type),O=Zr(w.epoch),C=k.title||"Untitled",U=$c(k.narrative),Z=O!==b?O:'"';b=O;let se=S?" <- **ANCHOR**":"";m.push(`| #${k.id} | ${Z} | ${R} | ${C}${se} | ~${U} |`)}}x&&m.push("")}return{content:[{type:"text",text:m.join(` +Note: You can still use filter-only searches (date ranges, types, files) without a query term.`}]}:{content:[{type:"text",text:`No results found${n&&n!=="*"?` matching "${n}"`:""}`}]};let y=[...u.map(k=>({type:"observation",data:k,epoch:k.created_at_epoch,created_at:k.created_at})),...p.map(k=>({type:"session",data:k,epoch:k.created_at_epoch,created_at:k.created_at})),...d.map(k=>({type:"prompt",data:k,epoch:k.created_at_epoch,created_at:k.created_at}))];l.orderBy==="date_desc"?y.sort((k,R)=>R.epoch-k.epoch):l.orderBy==="date_asc"&&y.sort((k,R)=>k.epoch-R.epoch);let b=y.slice(0,l.limit||20),x=process.cwd(),w=Va(b,k=>k.created_at),S=[],E=n&&n!=="*"?` matching "${n}"`:"";S.push(`Found ${h} result(s)${E} (${u.length} obs, ${p.length} sessions, ${d.length} prompts)`),S.push("");for(let[k,R]of w){S.push(`### ${k}`),S.push("");let O=new Map;for(let C of R){let U="General";C.type==="observation"&&(U=gs(C.data.files_modified,x,C.data.files_read)),O.has(U)||O.set(U,[]),O.get(U).push(C)}for(let[C,U]of O){S.push(`**${C}**`),S.push(this.formatter.formatSearchTableHeader());let q="";for(let Z of U)if(Z.type==="observation"){let se=this.formatter.formatObservationSearchRow(Z.data,q);S.push(se.row),q=se.time}else if(Z.type==="session"){let se=this.formatter.formatSessionSearchRow(Z.data,q);S.push(se.row),q=se.time}else{let se=this.formatter.formatUserPromptSearchRow(Z.data,q);S.push(se.row),q=se.time}S.push("")}}return{content:[{type:"text",text:S.join(` +`)}]}}async semanticSearchWithScores(e){let r=this.normalizeParams(e),{query:n,type:s,obs_type:i,project:a,limit:o=20,dateStart:c,dateEnd:l}=r,u=[],p=!1,d=!!this.vectorSync;if(!n||n==="*"){let m={limit:o,project:a,type:i},f=this.sessionSearch.searchObservations(void 0,m);for(let g of f)u.push({id:g.id,type:"observation",title:g.title||"Untitled",content:g.narrative||g.text||"",project:g.project||"",timestamp:g.created_at,score:0,obsType:g.type});return{results:u.slice(0,o),query:n||"",usedSemantic:!1,vectorDbAvailable:d}}if(this.vectorSync)try{let m;s==="observations"?m={doc_type:"observation"}:s==="sessions"?m={doc_type:"session_summary"}:s==="prompts"&&(m={doc_type:"user_prompt"});let f=await this.queryVector(n,100,m);if(p=!0,f.ids.length>0){let g=new Map,v=new Map,h=Date.now()-Tt.RECENCY_WINDOW_MS;for(let w=0;wh){let E=f.ids[w],k=f.distances[w]||0,R=Math.max(0,Math.min(1,1-k/2));(!g.has(E)||R>g.get(E))&&(g.set(E,R),v.set(E,S.doc_type))}}let y=[],b=[],x=[];for(let[w,S]of v)S==="observation"&&(!s||s==="observations")?y.push(w):S==="session_summary"&&(!s||s==="sessions")?b.push(w):S==="user_prompt"&&(!s||s==="prompts")&&x.push(w);if(y.length>0){let w={type:i,project:a},S=this.sessionStore.getObservationsByIds(y,w);for(let E of S)u.push({id:E.id,type:"observation",title:E.title||"Untitled",content:E.narrative||E.text||"",project:E.project||"",timestamp:E.created_at,score:g.get(E.id)||0,obsType:E.type})}if(b.length>0){let w=this.sessionStore.getSessionSummariesByIds(b,{project:a});for(let S of w)u.push({id:S.id,type:"summary",title:S.request||"Session Summary",content:S.learned||S.completed||"",project:S.project||"",timestamp:S.created_at,score:g.get(S.id)||0})}if(x.length>0){let w=this.sessionStore.getUserPromptsByIds(x,{project:a});for(let S of w)u.push({id:S.id,type:"prompt",title:`Prompt #${S.prompt_number}`,content:S.prompt_text||"",project:S.project||"",timestamp:S.created_at,score:g.get(S.id)||0})}u.sort((w,S)=>S.score-w.score)}}catch(m){_.error("SEARCH","Semantic search failed",{},m),p=!1}return{results:u.slice(0,o),query:n,usedSemantic:p,vectorDbAvailable:d}}async timeline(e){let{anchor:r,query:n,depth_before:s=10,depth_after:i=10,project:a}=e,o=process.cwd();if(!r&&!n)return{content:[{type:"text",text:'Error: Must provide either "anchor" or "query" parameter'}],isError:!0};if(r&&n)return{content:[{type:"text",text:'Error: Cannot provide both "anchor" and "query" parameters. Use one or the other.'}],isError:!0};let c,l,u;if(n){let v=[];if(this.vectorSync)try{_.debug("SEARCH","Using hybrid semantic search for timeline query",{});let y=await this.queryVector(n,100);if(_.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:y?.ids?.length??0}),y?.ids&&y.ids.length>0){let b=Date.now()-Tt.RECENCY_WINDOW_MS,x=y.ids.filter((w,S)=>{let E=y.metadatas[S];return E&&E.created_at_epoch>b});x.length>0&&(v=this.sessionStore.getObservationsByIds(x,{orderBy:"date_desc",limit:1}))}}catch(y){_.error("SEARCH","Chroma search failed for timeline, continuing without semantic results",{},y)}if(v.length===0)return{content:[{type:"text",text:`No observations found matching "${n}". Try a different search query.`}]};let h=v[0];c=h.id,l=h.created_at_epoch,_.debug("SEARCH","Query mode: Using observation as timeline anchor",{observationId:h.id}),u=this.sessionStore.getTimelineAroundObservation(h.id,h.created_at_epoch,s,i,a)}else if(typeof r=="number"){let v=this.sessionStore.getObservationById(r);if(!v)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};c=r,l=v.created_at_epoch,u=this.sessionStore.getTimelineAroundObservation(r,l,s,i,a)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let v=r.replace(/^#?S/,""),h=parseInt(v,10),y=this.sessionStore.getSessionSummariesByIds([h]);if(y.length===0)return{content:[{type:"text",text:`Session #${h} not found`}],isError:!0};l=y[0].created_at_epoch,c=`S${h}`,u=this.sessionStore.getTimelineAroundTimestamp(l,s,i,a)}else{let v=new Date(r);if(isNaN(v.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};l=v.getTime(),c=r,u=this.sessionStore.getTimelineAroundTimestamp(l,s,i,a)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let p=[...(u.observations||[]).map(v=>({type:"observation",data:v,epoch:v.created_at_epoch})),...(u.sessions||[]).map(v=>({type:"session",data:v,epoch:v.created_at_epoch})),...(u.prompts||[]).map(v=>({type:"prompt",data:v,epoch:v.created_at_epoch}))];p.sort((v,h)=>v.epoch-h.epoch);let d=this.timelineService.filterByDepth(p,c,l,s,i);if(!d||d.length===0)return{content:[{type:"text",text:n?`Found observation matching "${n}", but no timeline context available (${s} records before, ${i} records after).`:`No context found around anchor (${s} records before, ${i} records after)`}]};let m=[];if(n){let v=d.find(y=>y.type==="observation"&&y.data.id===c),h=v&&v.type==="observation"?v.data.title||"Untitled":"Unknown";m.push(`# Timeline for query: "${n}"`),m.push(`**Anchor:** Observation #${c} - ${h}`)}else m.push(`# Timeline around anchor: ${c}`);m.push(`**Window:** ${s} records before -> ${i} records after | **Items:** ${d?.length??0}`),m.push("");let f=new Map;for(let v of d){let h=ii(v.epoch);f.has(h)||f.set(h,[]),f.get(h).push(v)}let g=Array.from(f.entries()).sort((v,h)=>{let y=new Date(v[0]).getTime(),b=new Date(h[0]).getTime();return y-b});for(let[v,h]of g){m.push(`### ${v}`),m.push("");let y=null,b="",x=!1;for(let w of h){let S=typeof c=="number"&&w.type==="observation"&&w.data.id===c||typeof c=="string"&&c.startsWith("S")&&w.type==="session"&&`S${w.data.id}`===c;if(w.type==="session"){x&&(m.push(""),x=!1,y=null,b="");let E=w.data,k=E.request||"Session summary",R=S?" <- **ANCHOR**":"";m.push(`**\u{1F3AF} #S${E.id}** ${k} (${Bn(w.epoch)})${R}`),m.push("")}else if(w.type==="prompt"){x&&(m.push(""),x=!1,y=null,b="");let E=w.data,k=E.prompt_text.length>100?E.prompt_text.substring(0,100)+"...":E.prompt_text;m.push(`**\u{1F4AC} User Prompt #${E.prompt_number}** (${Bn(w.epoch)})`),m.push(`> ${k}`),m.push("")}else if(w.type==="observation"){let E=w.data,k=gs(E.files_modified,o,E.files_read);k!==y&&(x&&m.push(""),m.push(`**${k}**`),m.push("| ID | Time | T | Title | Tokens |"),m.push("|----|------|---|-------|--------|"),y=k,x=!0,b="");let R=et.getInstance().getTypeIcon(E.type),O=Zr(w.epoch),C=E.title||"Untitled",U=zc(E.narrative),Z=O!==b?O:'"';b=O;let se=S?" <- **ANCHOR**":"";m.push(`| #${E.id} | ${Z} | ${R} | ${C}${se} | ~${U} |`)}}x&&m.push("")}return{content:[{type:"text",text:m.join(` `)}]}}async decisions(e){let r=this.normalizeParams(e),{query:n,...s}=r,i=[];if(this.vectorSync)try{if(n){_.debug("SEARCH","Using Chroma semantic search with type=decision filter",{});let l=(await this.queryVector(n,Math.min((s.limit||20)*2,100),{type:"decision"})).ids;l.length>0&&(i=this.sessionStore.getObservationsByIds(l,{...s,type:"decision"}),i.sort((u,p)=>l.indexOf(u.id)-l.indexOf(p.id)))}else{_.debug("SEARCH","Using metadata-first + semantic ranking for decisions",{});let c=this.sessionSearch.findByType("decision",s);if(c.length>0){let l=c.map(d=>d.id),u=await this.queryVector("decision",Math.min(l.length,100)),p=[];for(let d of u.ids)l.includes(d)&&!p.includes(d)&&p.push(d);p.length>0&&(i=this.sessionStore.getObservationsByIds(p,{limit:s.limit||20}),i.sort((d,m)=>p.indexOf(d.id)-p.indexOf(m.id)))}}}catch(c){_.error("SEARCH","Chroma search failed for decisions, falling back to metadata search",{},c)}if(i.length===0&&(i=this.sessionSearch.findByType("decision",s)),i.length===0)return{content:[{type:"text",text:"No decision observations found"}]};let a=`Found ${i.length} decision(s) ${this.formatter.formatTableHeader()}`,o=i.map((c,l)=>this.formatter.formatObservationIndex(c,l));return{content:[{type:"text",text:a+` @@ -1444,18 +1444,18 @@ ${this.formatter.formatTableHeader()}`,o=i.map((c,l)=>this.formatter.formatUserP ${this.formatter.formatTableHeader()}`,o=i.map((c,l)=>this.formatter.formatObservationIndex(c,l));return{content:[{type:"text",text:a+` `+o.join(` -`)}]}}async findByFile(e){let r=this.normalizeParams(e),{files:n,...s}=r,i=Array.isArray(n)?n[0]:n,a=[],o=[];if(this.vectorSync){_.debug("SEARCH","Using metadata-first + semantic ranking for file search",{});let d=this.sessionSearch.findByFile(i,s);if(_.debug("SEARCH","Found results for file",{file:i,observations:d.observations.length,sessions:d.sessions.length}),o=d.sessions,d.observations.length>0){let m=d.observations.map(v=>v.id),f=await this.queryVector(i,Math.min(m.length,100)),g=[];for(let v of f.ids)m.includes(v)&&!g.includes(v)&&g.push(v);_.debug("SEARCH","Chroma ranked observations by semantic relevance",{count:g.length}),g.length>0&&(a=this.sessionStore.getObservationsByIds(g,{limit:s.limit||20}),a.sort((v,h)=>g.indexOf(v.id)-g.indexOf(h.id)))}}if(a.length===0&&o.length===0){_.debug("SEARCH","Using SQLite-only file search",{});let d=this.sessionSearch.findByFile(i,s);a=d.observations,o=d.sessions}let c=a.length+o.length;if(c===0)return{content:[{type:"text",text:`No results found for file "${i}"`}]};let l=[...a.map(d=>({type:"observation",data:d,epoch:d.created_at_epoch,created_at:d.created_at})),...o.map(d=>({type:"session",data:d,epoch:d.created_at_epoch,created_at:d.created_at}))];l.sort((d,m)=>m.epoch-d.epoch);let u=Ka(l,d=>d.created_at),p=[];p.push(`Found ${c} result(s) for file "${i}"`),p.push("");for(let[d,m]of u){p.push(`### ${d}`),p.push(""),p.push(this.formatter.formatTableHeader());for(let f of m)f.type==="observation"?p.push(this.formatter.formatObservationIndex(f.data,0)):p.push(this.formatter.formatSessionIndex(f.data,0));p.push("")}return{content:[{type:"text",text:p.join(` +`)}]}}async findByFile(e){let r=this.normalizeParams(e),{files:n,...s}=r,i=Array.isArray(n)?n[0]:n,a=[],o=[];if(this.vectorSync){_.debug("SEARCH","Using metadata-first + semantic ranking for file search",{});let d=this.sessionSearch.findByFile(i,s);if(_.debug("SEARCH","Found results for file",{file:i,observations:d.observations.length,sessions:d.sessions.length}),o=d.sessions,d.observations.length>0){let m=d.observations.map(v=>v.id),f=await this.queryVector(i,Math.min(m.length,100)),g=[];for(let v of f.ids)m.includes(v)&&!g.includes(v)&&g.push(v);_.debug("SEARCH","Chroma ranked observations by semantic relevance",{count:g.length}),g.length>0&&(a=this.sessionStore.getObservationsByIds(g,{limit:s.limit||20}),a.sort((v,h)=>g.indexOf(v.id)-g.indexOf(h.id)))}}if(a.length===0&&o.length===0){_.debug("SEARCH","Using SQLite-only file search",{});let d=this.sessionSearch.findByFile(i,s);a=d.observations,o=d.sessions}let c=a.length+o.length;if(c===0)return{content:[{type:"text",text:`No results found for file "${i}"`}]};let l=[...a.map(d=>({type:"observation",data:d,epoch:d.created_at_epoch,created_at:d.created_at})),...o.map(d=>({type:"session",data:d,epoch:d.created_at_epoch,created_at:d.created_at}))];l.sort((d,m)=>m.epoch-d.epoch);let u=Va(l,d=>d.created_at),p=[];p.push(`Found ${c} result(s) for file "${i}"`),p.push("");for(let[d,m]of u){p.push(`### ${d}`),p.push(""),p.push(this.formatter.formatTableHeader());for(let f of m)f.type==="observation"?p.push(this.formatter.formatObservationIndex(f.data,0)):p.push(this.formatter.formatSessionIndex(f.data,0));p.push("")}return{content:[{type:"text",text:p.join(` `)}]}}async findByType(e){let r=this.normalizeParams(e),{type:n,...s}=r,i=Array.isArray(n)?n.join(", "):n,a=[];if(this.vectorSync){_.debug("SEARCH","Using metadata-first + semantic ranking for type search",{});let l=this.sessionSearch.findByType(n,s);if(_.debug("SEARCH","Found observations with type",{type:i,count:l.length}),l.length>0){let u=l.map(m=>m.id),p=await this.queryVector(i,Math.min(u.length,100)),d=[];for(let m of p.ids)u.includes(m)&&!d.includes(m)&&d.push(m);_.debug("SEARCH","Chroma ranked results by semantic relevance",{count:d.length}),d.length>0&&(a=this.sessionStore.getObservationsByIds(d,{limit:s.limit||20}),a.sort((m,f)=>d.indexOf(m.id)-d.indexOf(f.id)))}}if(a.length===0&&(_.debug("SEARCH","Using SQLite-only type search",{}),a=this.sessionSearch.findByType(n,s)),a.length===0)return{content:[{type:"text",text:`No observations found with type "${i}"`}]};let o=`Found ${a.length} observation(s) with type "${i}" ${this.formatter.formatTableHeader()}`,c=a.map((l,u)=>this.formatter.formatObservationIndex(l,u));return{content:[{type:"text",text:o+` `+c.join(` -`)}]}}async getRecentContext(e){let r=e.project||(0,z3.basename)(process.cwd()),n=e.limit||3,s=this.sessionStore.getRecentSessionsWithStatus(r,n);if(s.length===0)return{content:[{type:"text",text:`# Recent Session Context +`)}]}}async getRecentContext(e){let r=e.project||(0,j3.basename)(process.cwd()),n=e.limit||3,s=this.sessionStore.getRecentSessionsWithStatus(r,n);if(s.length===0)return{content:[{type:"text",text:`# Recent Session Context No previous sessions found for project "${r}".`}]};let i=[];i.push("# Recent Session Context"),i.push(""),i.push(`Showing last ${s.length} session(s) for **${r}**:`),i.push("");for(let a of s)if(a.memory_session_id){if(i.push("---"),i.push(""),a.has_summary){let o=this.sessionStore.getSummaryForSession(a.memory_session_id);if(o){let c=o.prompt_number?` (Prompt #${o.prompt_number})`:"";if(i.push(`**Summary${c}**`),i.push(""),o.request&&i.push(`**Request:** ${o.request}`),o.completed&&i.push(`**Completed:** ${o.completed}`),o.learned&&i.push(`**Learned:** ${o.learned}`),o.next_steps&&i.push(`**Next Steps:** ${o.next_steps}`),o.files_read)try{let u=JSON.parse(o.files_read);Array.isArray(u)&&u.length>0&&i.push(`**Files Read:** ${u.join(", ")}`)}catch(u){_.debug("WORKER","files_read is plain string, using as-is",{},u),o.files_read.trim()&&i.push(`**Files Read:** ${o.files_read}`)}if(o.files_edited)try{let u=JSON.parse(o.files_edited);Array.isArray(u)&&u.length>0&&i.push(`**Files Edited:** ${u.join(", ")}`)}catch(u){_.debug("WORKER","files_edited is plain string, using as-is",{},u),o.files_edited.trim()&&i.push(`**Files Edited:** ${o.files_edited}`)}let l=new Date(o.created_at).toLocaleString();i.push(`**Date:** ${l}`)}}else if(a.status==="active"){i.push("**In Progress**"),i.push(""),a.user_prompt&&i.push(`**Request:** ${a.user_prompt}`);let o=this.sessionStore.getObservationsForSession(a.memory_session_id);if(o.length>0){i.push(""),i.push(`**Observations (${o.length}):**`);for(let l of o)i.push(`- ${l.title}`)}else i.push(""),i.push("*No observations yet*");i.push(""),i.push("**Status:** Active - summary pending");let c=new Date(a.started_at).toLocaleString();i.push(`**Date:** ${c}`)}else{i.push(`**${a.status.charAt(0).toUpperCase()+a.status.slice(1)}**`),i.push(""),a.user_prompt&&i.push(`**Request:** ${a.user_prompt}`),i.push(""),i.push(`**Status:** ${a.status} - no summary available`);let o=new Date(a.started_at).toLocaleString();i.push(`**Date:** ${o}`)}i.push("")}return{content:[{type:"text",text:i.join(` -`)}]}}async getContextTimeline(e){let{anchor:r,depth_before:n=10,depth_after:s=10,project:i}=e,a=process.cwd(),o,c=r,l;if(typeof r=="number"){let g=this.sessionStore.getObservationById(r);if(!g)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};o=g.created_at_epoch,l=this.sessionStore.getTimelineAroundObservation(r,o,n,s,i)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let g=r.replace(/^#?S/,""),v=parseInt(g,10),h=this.sessionStore.getSessionSummariesByIds([v]);if(h.length===0)return{content:[{type:"text",text:`Session #${v} not found`}],isError:!0};o=h[0].created_at_epoch,c=`S${v}`,l=this.sessionStore.getTimelineAroundTimestamp(o,n,s,i)}else{let g=new Date(r);if(isNaN(g.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};o=g.getTime(),l=this.sessionStore.getTimelineAroundTimestamp(o,n,s,i)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let u=[...l.observations.map(g=>({type:"observation",data:g,epoch:g.created_at_epoch})),...l.sessions.map(g=>({type:"session",data:g,epoch:g.created_at_epoch})),...l.prompts.map(g=>({type:"prompt",data:g,epoch:g.created_at_epoch}))];u.sort((g,v)=>g.epoch-v.epoch);let p=this.timelineService.filterByDepth(u,c,o,n,s);if(!p||p.length===0)return{content:[{type:"text",text:`No context found around ${new Date(o).toLocaleString()} (${n} records before, ${s} records after)`}]};let d=[];d.push(`# Timeline around anchor: ${c}`),d.push(`**Window:** ${n} records before -> ${s} records after | **Items:** ${p?.length??0}`),d.push("");let m=new Map;for(let g of p){let v=ii(g.epoch);m.has(v)||m.set(v,[]),m.get(v).push(g)}let f=Array.from(m.entries()).sort((g,v)=>{let h=new Date(g[0]).getTime(),y=new Date(v[0]).getTime();return h-y});for(let[g,v]of f){d.push(`### ${g}`),d.push("");let h=null,y="",b=!1;for(let x of v){let w=typeof c=="number"&&x.type==="observation"&&x.data.id===c||typeof c=="string"&&c.startsWith("S")&&x.type==="session"&&`S${x.data.id}`===c;if(x.type==="session"){b&&(d.push(""),b=!1,h=null,y="");let S=x.data,k=S.request||"Session summary",E=w?" <- **ANCHOR**":"";d.push(`**\u{1F3AF} #S${S.id}** ${k} (${Bn(x.epoch)})${E}`),d.push("")}else if(x.type==="prompt"){b&&(d.push(""),b=!1,h=null,y="");let S=x.data,k=S.prompt_text.length>100?S.prompt_text.substring(0,100)+"...":S.prompt_text;d.push(`**\u{1F4AC} User Prompt #${S.prompt_number}** (${Bn(x.epoch)})`),d.push(`> ${k}`),d.push("")}else if(x.type==="observation"){let S=x.data,k=gs(S.files_modified,a,S.files_read);k!==h&&(b&&d.push(""),d.push(`**${k}**`),d.push("| ID | Time | T | Title | Tokens |"),d.push("|----|------|---|-------|--------|"),h=k,b=!0,y="");let E=et.getInstance().getTypeIcon(S.type),R=Zr(x.epoch),O=S.title||"Untitled",C=$c(S.narrative),q=R!==y?R:'"';y=R;let Z=w?" <- **ANCHOR**":"";d.push(`| #${S.id} | ${q} | ${E} | ${O}${Z} | ~${C} |`)}}b&&d.push("")}return{content:[{type:"text",text:d.join(` +`)}]}}async getContextTimeline(e){let{anchor:r,depth_before:n=10,depth_after:s=10,project:i}=e,a=process.cwd(),o,c=r,l;if(typeof r=="number"){let g=this.sessionStore.getObservationById(r);if(!g)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};o=g.created_at_epoch,l=this.sessionStore.getTimelineAroundObservation(r,o,n,s,i)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let g=r.replace(/^#?S/,""),v=parseInt(g,10),h=this.sessionStore.getSessionSummariesByIds([v]);if(h.length===0)return{content:[{type:"text",text:`Session #${v} not found`}],isError:!0};o=h[0].created_at_epoch,c=`S${v}`,l=this.sessionStore.getTimelineAroundTimestamp(o,n,s,i)}else{let g=new Date(r);if(isNaN(g.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};o=g.getTime(),l=this.sessionStore.getTimelineAroundTimestamp(o,n,s,i)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let u=[...l.observations.map(g=>({type:"observation",data:g,epoch:g.created_at_epoch})),...l.sessions.map(g=>({type:"session",data:g,epoch:g.created_at_epoch})),...l.prompts.map(g=>({type:"prompt",data:g,epoch:g.created_at_epoch}))];u.sort((g,v)=>g.epoch-v.epoch);let p=this.timelineService.filterByDepth(u,c,o,n,s);if(!p||p.length===0)return{content:[{type:"text",text:`No context found around ${new Date(o).toLocaleString()} (${n} records before, ${s} records after)`}]};let d=[];d.push(`# Timeline around anchor: ${c}`),d.push(`**Window:** ${n} records before -> ${s} records after | **Items:** ${p?.length??0}`),d.push("");let m=new Map;for(let g of p){let v=ii(g.epoch);m.has(v)||m.set(v,[]),m.get(v).push(g)}let f=Array.from(m.entries()).sort((g,v)=>{let h=new Date(g[0]).getTime(),y=new Date(v[0]).getTime();return h-y});for(let[g,v]of f){d.push(`### ${g}`),d.push("");let h=null,y="",b=!1;for(let x of v){let w=typeof c=="number"&&x.type==="observation"&&x.data.id===c||typeof c=="string"&&c.startsWith("S")&&x.type==="session"&&`S${x.data.id}`===c;if(x.type==="session"){b&&(d.push(""),b=!1,h=null,y="");let S=x.data,E=S.request||"Session summary",k=w?" <- **ANCHOR**":"";d.push(`**\u{1F3AF} #S${S.id}** ${E} (${Bn(x.epoch)})${k}`),d.push("")}else if(x.type==="prompt"){b&&(d.push(""),b=!1,h=null,y="");let S=x.data,E=S.prompt_text.length>100?S.prompt_text.substring(0,100)+"...":S.prompt_text;d.push(`**\u{1F4AC} User Prompt #${S.prompt_number}** (${Bn(x.epoch)})`),d.push(`> ${E}`),d.push("")}else if(x.type==="observation"){let S=x.data,E=gs(S.files_modified,a,S.files_read);E!==h&&(b&&d.push(""),d.push(`**${E}**`),d.push("| ID | Time | T | Title | Tokens |"),d.push("|----|------|---|-------|--------|"),h=E,b=!0,y="");let k=et.getInstance().getTypeIcon(S.type),R=Zr(x.epoch),O=S.title||"Untitled",C=zc(S.narrative),q=R!==y?R:'"';y=R;let Z=w?" <- **ANCHOR**":"";d.push(`| #${S.id} | ${q} | ${k} | ${O}${Z} | ~${C} |`)}}b&&d.push("")}return{content:[{type:"text",text:d.join(` `)}]}}async getTimelineByQuery(e){let{query:r,mode:n="auto",depth_before:s=10,depth_after:i=10,limit:a=5,project:o}=e,c=process.cwd(),l=[];if(this.vectorSync){_.debug("SEARCH","Using hybrid semantic search for timeline query",{});let u=await this.queryVector(r,100);if(_.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:u.ids.length}),u.ids.length>0){let p=Date.now()-Tt.RECENCY_WINDOW_MS,d=u.ids.filter((m,f)=>{let g=u.metadatas[f];return g&&g.created_at_epoch>p});_.debug("SEARCH","Results within 90-day window",{count:d.length}),d.length>0&&(l=this.sessionStore.getObservationsByIds(d,{orderBy:"date_desc",limit:n==="auto"?1:a}),_.debug("SEARCH","Hydrated observations from SQLite",{count:l.length}))}}if(l.length===0)return{content:[{type:"text",text:`No observations found matching "${r}". Try a different search query.`}]};if(n==="interactive"){let u=[];u.push("# Timeline Anchor Search Results"),u.push(""),u.push(`Found ${l.length} observation(s) matching "${r}"`),u.push(""),u.push("To get timeline context around any of these observations, use the `get_context_timeline` tool with the observation ID as the anchor."),u.push(""),u.push(`**Top ${l.length} matches:**`),u.push("");for(let p=0;p({type:"observation",data:h,epoch:h.created_at_epoch})),...(p.sessions||[]).map(h=>({type:"session",data:h,epoch:h.created_at_epoch})),...(p.prompts||[]).map(h=>({type:"prompt",data:h,epoch:h.created_at_epoch}))];d.sort((h,y)=>h.epoch-y.epoch);let m=this.timelineService.filterByDepth(d,u.id,0,s,i);if(!m||m.length===0)return{content:[{type:"text",text:`Found observation #${u.id} matching "${r}", but no timeline context available (${s} records before, ${i} records after).`}]};let f=[];f.push(`# Timeline for query: "${r}"`),f.push(`**Anchor:** Observation #${u.id} - ${u.title||"Untitled"}`),f.push(`**Window:** ${s} records before -> ${i} records after | **Items:** ${m?.length??0}`),f.push("");let g=new Map;for(let h of m){let y=ii(h.epoch);g.has(y)||g.set(y,[]),g.get(y).push(h)}let v=Array.from(g.entries()).sort((h,y)=>{let b=new Date(h[0]).getTime(),x=new Date(y[0]).getTime();return b-x});for(let[h,y]of v){f.push(`### ${h}`),f.push("");let b=null,x="",w=!1;for(let S of y){let k=S.type==="observation"&&S.data.id===u.id;if(S.type==="session"){w&&(f.push(""),w=!1,b=null,x="");let E=S.data,R=E.request||"Session summary";f.push(`**\u{1F3AF} #S${E.id}** ${R} (${Bn(S.epoch)})`),f.push("")}else if(S.type==="prompt"){w&&(f.push(""),w=!1,b=null,x="");let E=S.data,R=E.prompt_text.length>100?E.prompt_text.substring(0,100)+"...":E.prompt_text;f.push(`**\u{1F4AC} User Prompt #${E.prompt_number}** (${Bn(S.epoch)})`),f.push(`> ${R}`),f.push("")}else if(S.type==="observation"){let E=S.data,R=gs(E.files_modified,c,E.files_read);R!==b&&(w&&f.push(""),f.push(`**${R}**`),f.push("| ID | Time | T | Title | Tokens |"),f.push("|----|------|---|-------|--------|"),b=R,w=!0,x="");let O=et.getInstance().getTypeIcon(E.type),C=Zr(S.epoch),U=E.title||"Untitled",q=$c(E.narrative),se=C!==x?C:'"';x=C;let K=k?" <- **ANCHOR**":"";f.push(`| #${E.id} | ${se} | ${O} | ${U}${K} | ~${q} |`)}}w&&f.push("")}return{content:[{type:"text",text:f.join(` -`)}]}}}};Hn();var Ske=4,By=class{formatSearchTips(){return` +`)}]}}else{let u=l[0];_.debug("SEARCH","Auto mode: Using observation as timeline anchor",{observationId:u.id});let p=this.sessionStore.getTimelineAroundObservation(u.id,u.created_at_epoch,s,i,o),d=[...(p.observations||[]).map(h=>({type:"observation",data:h,epoch:h.created_at_epoch})),...(p.sessions||[]).map(h=>({type:"session",data:h,epoch:h.created_at_epoch})),...(p.prompts||[]).map(h=>({type:"prompt",data:h,epoch:h.created_at_epoch}))];d.sort((h,y)=>h.epoch-y.epoch);let m=this.timelineService.filterByDepth(d,u.id,0,s,i);if(!m||m.length===0)return{content:[{type:"text",text:`Found observation #${u.id} matching "${r}", but no timeline context available (${s} records before, ${i} records after).`}]};let f=[];f.push(`# Timeline for query: "${r}"`),f.push(`**Anchor:** Observation #${u.id} - ${u.title||"Untitled"}`),f.push(`**Window:** ${s} records before -> ${i} records after | **Items:** ${m?.length??0}`),f.push("");let g=new Map;for(let h of m){let y=ii(h.epoch);g.has(y)||g.set(y,[]),g.get(y).push(h)}let v=Array.from(g.entries()).sort((h,y)=>{let b=new Date(h[0]).getTime(),x=new Date(y[0]).getTime();return b-x});for(let[h,y]of v){f.push(`### ${h}`),f.push("");let b=null,x="",w=!1;for(let S of y){let E=S.type==="observation"&&S.data.id===u.id;if(S.type==="session"){w&&(f.push(""),w=!1,b=null,x="");let k=S.data,R=k.request||"Session summary";f.push(`**\u{1F3AF} #S${k.id}** ${R} (${Bn(S.epoch)})`),f.push("")}else if(S.type==="prompt"){w&&(f.push(""),w=!1,b=null,x="");let k=S.data,R=k.prompt_text.length>100?k.prompt_text.substring(0,100)+"...":k.prompt_text;f.push(`**\u{1F4AC} User Prompt #${k.prompt_number}** (${Bn(S.epoch)})`),f.push(`> ${R}`),f.push("")}else if(S.type==="observation"){let k=S.data,R=gs(k.files_modified,c,k.files_read);R!==b&&(w&&f.push(""),f.push(`**${R}**`),f.push("| ID | Time | T | Title | Tokens |"),f.push("|----|------|---|-------|--------|"),b=R,w=!0,x="");let O=et.getInstance().getTypeIcon(k.type),C=Zr(S.epoch),U=k.title||"Untitled",q=zc(k.narrative),se=C!==x?C:'"';x=C;let K=E?" <- **ANCHOR**":"";f.push(`| #${k.id} | ${se} | ${O} | ${U}${K} | ~${q} |`)}}w&&f.push("")}return{content:[{type:"text",text:f.join(` +`)}]}}}};Hn();var vEe=4,Fy=class{formatSearchTips(){return` --- \u{1F4A1} Search Strategy: 1. Search with index to see titles, dates, IDs @@ -1465,23 +1465,23 @@ No previous sessions found for project "${r}".`}]};let i=[];i.push("# Recent Ses Tips: \u2022 Filter by type: obs_type="bugfix,feature" \u2022 Filter by date: dateStart="2025-01-01" -\u2022 Sort: orderBy="date_desc" or "date_asc"`}formatTime(e){return new Date(e).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}estimateReadTokens(e){let r=(e.title?.length||0)+(e.subtitle?.length||0)+(e.narrative?.length||0)+(e.facts?.length||0);return Math.ceil(r/Ske)}formatObservationIndex(e,r){let n=`#${e.id}`,s=this.formatTime(e.created_at_epoch),i=et.getInstance().getTypeIcon(e.type),a=e.title||"Untitled",o=this.estimateReadTokens(e),c=et.getInstance().getWorkEmoji(e.type),l=e.discovery_tokens||0,u=l>0?`${c} ${l}`:"-";return`| ${n} | ${s} | ${i} | ${a} | ~${o} | ${u} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,s=this.formatTime(e.created_at_epoch),i="\u{1F3AF}",a=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${s} | ${i} | ${a} | - | - |`}formatUserPromptIndex(e,r){let n=`#P${e.id}`,s=this.formatTime(e.created_at_epoch),i="\u{1F4AC}",a=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${s} | ${i} | ${a} | - | - |`}formatTableHeader(){return`| ID | Time | T | Title | Read | Work | +\u2022 Sort: orderBy="date_desc" or "date_asc"`}formatTime(e){return new Date(e).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}estimateReadTokens(e){let r=(e.title?.length||0)+(e.subtitle?.length||0)+(e.narrative?.length||0)+(e.facts?.length||0);return Math.ceil(r/vEe)}formatObservationIndex(e,r){let n=`#${e.id}`,s=this.formatTime(e.created_at_epoch),i=et.getInstance().getTypeIcon(e.type),a=e.title||"Untitled",o=this.estimateReadTokens(e),c=et.getInstance().getWorkEmoji(e.type),l=e.discovery_tokens||0,u=l>0?`${c} ${l}`:"-";return`| ${n} | ${s} | ${i} | ${a} | ~${o} | ${u} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,s=this.formatTime(e.created_at_epoch),i="\u{1F3AF}",a=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${s} | ${i} | ${a} | - | - |`}formatUserPromptIndex(e,r){let n=`#P${e.id}`,s=this.formatTime(e.created_at_epoch),i="\u{1F4AC}",a=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${s} | ${i} | ${a} | - | - |`}formatTableHeader(){return`| ID | Time | T | Title | Read | Work | |-----|------|---|-------|------|------|`}formatSearchTableHeader(){return`| ID | Time | T | Title | Read | -|----|------|---|-------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,s=this.formatTime(e.created_at_epoch),i=et.getInstance().getTypeIcon(e.type),a=e.title||"Untitled",o=this.estimateReadTokens(e);return{row:`| ${n} | ${s===r?"\u2033":s} | ${i} | ${a} | ~${o} |`,time:s}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,s=this.formatTime(e.created_at_epoch),i="\u{1F3AF}",a=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${s===r?"\u2033":s} | ${i} | ${a} | - |`,time:s}}formatUserPromptSearchRow(e,r){let n=`#P${e.id}`,s=this.formatTime(e.created_at_epoch),i="\u{1F4AC}",a=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${s===r?"\u2033":s} | ${i} | ${a} | - |`,time:s}}};Hn();var Wy=class{buildTimeline(e){let r=[...e.observations.map(n=>({type:"observation",data:n,epoch:n.created_at_epoch})),...e.sessions.map(n=>({type:"session",data:n,epoch:n.created_at_epoch})),...e.prompts.map(n=>({type:"prompt",data:n,epoch:n.created_at_epoch}))];return r.sort((n,s)=>n.epoch-s.epoch),r}filterByDepth(e,r,n,s,i){if(e.length===0)return e;let a=-1;if(typeof r=="number")a=e.findIndex(l=>l.type==="observation"&&l.data.id===r);else if(typeof r=="string"&&r.startsWith("S")){let l=parseInt(r.slice(1),10);a=e.findIndex(u=>u.type==="session"&&u.data.id===l)}else a=e.findIndex(l=>l.epoch>=n),a===-1&&(a=e.length-1);if(a===-1)return e;let o=Math.max(0,a-s),c=Math.min(e.length,a+i+1);return e.slice(o,c)}formatTimeline(e,r,n,s,i){if(e.length===0)return n?`Found observation matching "${n}", but no timeline context available.`:"No timeline items found";let a=[];if(n&&r){let l=e.find(p=>p.type==="observation"&&p.data.id===r),u=l?l.data.title||"Untitled":"Unknown";a.push(`# Timeline for query: "${n}"`),a.push(`**Anchor:** Observation #${r} - ${u}`)}else r?a.push(`# Timeline around anchor: ${r}`):a.push("# Timeline");s!==void 0&&i!==void 0?a.push(`**Window:** ${s} records before \u2192 ${i} records after | **Items:** ${e.length}`):a.push(`**Items:** ${e.length}`),a.push(""),a.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),a.push("");let o=new Map;for(let l of e){let u=this.formatDate(l.epoch);o.has(u)||o.set(u,[]),o.get(u).push(l)}let c=Array.from(o.entries()).sort((l,u)=>{let p=new Date(l[0]).getTime(),d=new Date(u[0]).getTime();return p-d});for(let[l,u]of c){a.push(`### ${l}`),a.push("");let p=null,d="",m=!1;for(let f of u){let g=typeof r=="number"&&f.type==="observation"&&f.data.id===r||typeof r=="string"&&r.startsWith("S")&&f.type==="session"&&`S${f.data.id}`===r;if(f.type==="session"){m&&(a.push(""),m=!1,p=null,d="");let v=f.data,h=v.request||"Session summary",y=g?" \u2190 **ANCHOR**":"";a.push(`**\u{1F3AF} #S${v.id}** ${h} (${this.formatDateTime(f.epoch)})${y}`),a.push("")}else if(f.type==="prompt"){m&&(a.push(""),m=!1,p=null,d="");let v=f.data,h=v.prompt_text.length>100?v.prompt_text.substring(0,100)+"...":v.prompt_text;a.push(`**\u{1F4AC} User Prompt #${v.prompt_number}** (${this.formatDateTime(f.epoch)})`),a.push(`> ${h}`),a.push("")}else if(f.type==="observation"){let v=f.data,h="General";h!==p&&(m&&a.push(""),a.push(`**${h}**`),a.push("| ID | Time | T | Title | Tokens |"),a.push("|----|------|---|-------|--------|"),p=h,m=!0,d="");let y=this.getTypeIcon(v.type),b=this.formatTime(f.epoch),x=v.title||"Untitled",w=this.estimateTokens(v.narrative),k=b!==d?b:"\u2033";d=b;let E=g?" \u2190 **ANCHOR**":"";a.push(`| #${v.id} | ${k} | ${y} | ${x}${E} | ~${w} |`)}}m&&a.push("")}return a.join(` -`)}getTypeIcon(e){return et.getInstance().getTypeIcon(e)}formatDate(e){return new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}formatTime(e){return new Date(e).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}formatDateTime(e){return new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}estimateTokens(e){return e?Math.ceil(e.length/4):0}};var Zy=class{constructor(e,r){this.sseBroadcaster=e;this.workerService=r}sseBroadcaster;workerService;broadcastNewPrompt(e){this.sseBroadcaster.broadcast({type:"new_prompt",prompt:e}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:!0}),this.workerService.broadcastProcessingStatus()}broadcastSessionStarted(e,r){this.sseBroadcaster.broadcast({type:"session_started",sessionDbId:e,project:r}),this.workerService.broadcastProcessingStatus()}broadcastObservationQueued(e){this.sseBroadcaster.broadcast({type:"observation_queued",sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSessionCompleted(e){this.sseBroadcaster.broadcast({type:"session_completed",timestamp:Date.now(),sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSummarizeQueued(){this.workerService.broadcastProcessingStatus()}};var F3=Q(rd(),1),gm=Q(require("path"),1),vm=require("fs");re();er();re();var Te=class{wrapHandler(e){return(r,n)=>{n.setHeader?.("Cache-Control","no-store");try{let s=e(r,n);s instanceof Promise&&s.catch(i=>this.handleError(n,i))}catch(s){_.error("HTTP","Route handler error",{path:r.path},s),this.handleError(n,s)}}}parseIntParam(e,r,n){let s=parseInt(e.params[n],10);return isNaN(s)?(this.badRequest(r,`Invalid ${n}`),null):s}validateRequired(e,r,n){for(let s of n)if(e.body[s]===void 0||e.body[s]===null)return this.badRequest(r,`Missing ${s}`),!1;return!0}badRequest(e,r){e.status(400).json({error:r})}notFound(e,r){e.status(404).json({error:r})}handleError(e,r,n){_.failure("WORKER",n||"Request failed",{},r),e.headersSent||e.status(500).json({error:"Internal server error"})}};function w1(t,e,r,n){let s=new Date().toISOString();return t.prepare(`INSERT INTO session_plans (session_db_id, plan_path, plan_status, created_at, updated_at) +|----|------|---|-------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,s=this.formatTime(e.created_at_epoch),i=et.getInstance().getTypeIcon(e.type),a=e.title||"Untitled",o=this.estimateReadTokens(e);return{row:`| ${n} | ${s===r?"\u2033":s} | ${i} | ${a} | ~${o} |`,time:s}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,s=this.formatTime(e.created_at_epoch),i="\u{1F3AF}",a=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${s===r?"\u2033":s} | ${i} | ${a} | - |`,time:s}}formatUserPromptSearchRow(e,r){let n=`#P${e.id}`,s=this.formatTime(e.created_at_epoch),i="\u{1F4AC}",a=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${s===r?"\u2033":s} | ${i} | ${a} | - |`,time:s}}};Hn();var Hy=class{buildTimeline(e){let r=[...e.observations.map(n=>({type:"observation",data:n,epoch:n.created_at_epoch})),...e.sessions.map(n=>({type:"session",data:n,epoch:n.created_at_epoch})),...e.prompts.map(n=>({type:"prompt",data:n,epoch:n.created_at_epoch}))];return r.sort((n,s)=>n.epoch-s.epoch),r}filterByDepth(e,r,n,s,i){if(e.length===0)return e;let a=-1;if(typeof r=="number")a=e.findIndex(l=>l.type==="observation"&&l.data.id===r);else if(typeof r=="string"&&r.startsWith("S")){let l=parseInt(r.slice(1),10);a=e.findIndex(u=>u.type==="session"&&u.data.id===l)}else a=e.findIndex(l=>l.epoch>=n),a===-1&&(a=e.length-1);if(a===-1)return e;let o=Math.max(0,a-s),c=Math.min(e.length,a+i+1);return e.slice(o,c)}formatTimeline(e,r,n,s,i){if(e.length===0)return n?`Found observation matching "${n}", but no timeline context available.`:"No timeline items found";let a=[];if(n&&r){let l=e.find(p=>p.type==="observation"&&p.data.id===r),u=l?l.data.title||"Untitled":"Unknown";a.push(`# Timeline for query: "${n}"`),a.push(`**Anchor:** Observation #${r} - ${u}`)}else r?a.push(`# Timeline around anchor: ${r}`):a.push("# Timeline");s!==void 0&&i!==void 0?a.push(`**Window:** ${s} records before \u2192 ${i} records after | **Items:** ${e.length}`):a.push(`**Items:** ${e.length}`),a.push(""),a.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),a.push("");let o=new Map;for(let l of e){let u=this.formatDate(l.epoch);o.has(u)||o.set(u,[]),o.get(u).push(l)}let c=Array.from(o.entries()).sort((l,u)=>{let p=new Date(l[0]).getTime(),d=new Date(u[0]).getTime();return p-d});for(let[l,u]of c){a.push(`### ${l}`),a.push("");let p=null,d="",m=!1;for(let f of u){let g=typeof r=="number"&&f.type==="observation"&&f.data.id===r||typeof r=="string"&&r.startsWith("S")&&f.type==="session"&&`S${f.data.id}`===r;if(f.type==="session"){m&&(a.push(""),m=!1,p=null,d="");let v=f.data,h=v.request||"Session summary",y=g?" \u2190 **ANCHOR**":"";a.push(`**\u{1F3AF} #S${v.id}** ${h} (${this.formatDateTime(f.epoch)})${y}`),a.push("")}else if(f.type==="prompt"){m&&(a.push(""),m=!1,p=null,d="");let v=f.data,h=v.prompt_text.length>100?v.prompt_text.substring(0,100)+"...":v.prompt_text;a.push(`**\u{1F4AC} User Prompt #${v.prompt_number}** (${this.formatDateTime(f.epoch)})`),a.push(`> ${h}`),a.push("")}else if(f.type==="observation"){let v=f.data,h="General";h!==p&&(m&&a.push(""),a.push(`**${h}**`),a.push("| ID | Time | T | Title | Tokens |"),a.push("|----|------|---|-------|--------|"),p=h,m=!0,d="");let y=this.getTypeIcon(v.type),b=this.formatTime(f.epoch),x=v.title||"Untitled",w=this.estimateTokens(v.narrative),E=b!==d?b:"\u2033";d=b;let k=g?" \u2190 **ANCHOR**":"";a.push(`| #${v.id} | ${E} | ${y} | ${x}${k} | ~${w} |`)}}m&&a.push("")}return a.join(` +`)}getTypeIcon(e){return et.getInstance().getTypeIcon(e)}formatDate(e){return new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}formatTime(e){return new Date(e).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}formatDateTime(e){return new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}estimateTokens(e){return e?Math.ceil(e.length/4):0}};var By=class{constructor(e,r){this.sseBroadcaster=e;this.workerService=r}sseBroadcaster;workerService;broadcastNewPrompt(e){this.sseBroadcaster.broadcast({type:"new_prompt",prompt:e}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:!0}),this.workerService.broadcastProcessingStatus()}broadcastSessionStarted(e,r){this.sseBroadcaster.broadcast({type:"session_started",sessionDbId:e,project:r}),this.workerService.broadcastProcessingStatus()}broadcastObservationQueued(e){this.sseBroadcaster.broadcast({type:"observation_queued",sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSessionCompleted(e){this.sseBroadcaster.broadcast({type:"session_completed",timestamp:Date.now(),sessionDbId:e}),this.workerService.broadcastProcessingStatus()}broadcastSummarizeQueued(){this.workerService.broadcastProcessingStatus()}};var $3=Q(td(),1),hm=Q(require("path"),1),gm=require("fs");re();er();re();var Te=class{wrapHandler(e){return(r,n)=>{n.setHeader?.("Cache-Control","no-store");try{let s=e(r,n);s instanceof Promise&&s.catch(i=>this.handleError(n,i))}catch(s){_.error("HTTP","Route handler error",{path:r.path},s),this.handleError(n,s)}}}parseIntParam(e,r,n){let s=parseInt(e.params[n],10);return isNaN(s)?(this.badRequest(r,`Invalid ${n}`),null):s}validateRequired(e,r,n){for(let s of n)if(e.body[s]===void 0||e.body[s]===null)return this.badRequest(r,`Missing ${s}`),!1;return!0}badRequest(e,r){e.status(400).json({error:r})}notFound(e,r){e.status(404).json({error:r})}handleError(e,r,n){_.failure("WORKER",n||"Request failed",{},r),e.headersSent||e.status(500).json({error:"Internal server error"})}};function b1(t,e,r,n){let s=new Date().toISOString();return t.prepare(`INSERT INTO session_plans (session_db_id, plan_path, plan_status, created_at, updated_at) VALUES (?, ?, ?, ?, ?) ON CONFLICT(session_db_id) DO UPDATE SET plan_path = excluded.plan_path, plan_status = excluded.plan_status, - updated_at = excluded.updated_at`).run(e,r,n,s,s),Gy(t,e)}function Gy(t,e){return t.prepare("SELECT * FROM session_plans WHERE session_db_id = ?").get(e)}function $3(t,e){return t.prepare(`SELECT sp.* FROM session_plans sp + updated_at = excluded.updated_at`).run(e,r,n,s,s),Wy(t,e)}function Wy(t,e){return t.prepare("SELECT * FROM session_plans WHERE session_db_id = ?").get(e)}function N3(t,e){return t.prepare(`SELECT sp.* FROM session_plans sp JOIN sdk_sessions ss ON sp.session_db_id = ss.id - WHERE ss.content_session_id = ?`).get(e)}function L3(t,e,r){let n=new Date().toISOString();t.prepare("UPDATE session_plans SET plan_status = ?, updated_at = ? WHERE session_db_id = ?").run(r,n,e)}function U3(t,e){t.prepare("DELETE FROM session_plans WHERE session_db_id = ?").run(e)}function q3(t){return t.prepare(`SELECT ss.id AS session_db_id, ss.content_session_id, ss.project, + WHERE ss.content_session_id = ?`).get(e)}function D3(t,e,r){let n=new Date().toISOString();t.prepare("UPDATE session_plans SET plan_status = ?, updated_at = ? WHERE session_db_id = ?").run(r,n,e)}function M3(t,e){t.prepare("DELETE FROM session_plans WHERE session_db_id = ?").run(e)}function z3(t){return t.prepare(`SELECT ss.id AS session_db_id, ss.content_session_id, ss.project, ss.status, ss.started_at, sp.plan_path, sp.plan_status FROM sdk_sessions ss LEFT JOIN session_plans sp ON sp.session_db_id = ss.id WHERE ss.status = 'active' - ORDER BY ss.started_at_epoch DESC`).all()}var Vy=class extends Te{constructor(r,n,s){super();this.sseBroadcaster=r;this.dbManager=n;this.sessionManager=s}sseBroadcaster;dbManager;sessionManager;setupRoutes(r){let n=la(),s=gm.default.join(n,"ui");_.info("VIEWER","Setting up static file serving",{packageRoot:n,uiPath:s,exists:(0,vm.existsSync)(s)}),r.use(F3.default.static(s,{index:!1,setHeaders:(i,a)=>{a.endsWith(".js")||a.endsWith(".css")?(i.setHeader("Cache-Control","no-cache, no-store, must-revalidate"),i.setHeader("Pragma","no-cache"),i.setHeader("Expires","0")):a.endsWith(".html")?i.setHeader("Cache-Control","no-cache, no-store, must-revalidate"):i.setHeader("Cache-Control","public, max-age=3600")}})),r.get("/health",this.handleHealth.bind(this)),r.get("/api/health",this.handleHealth.bind(this)),r.get("/api/version",this.handleVersion.bind(this)),r.post("/api/restart",this.handleRestart.bind(this)),r.get("/api/dashboard/sessions",this.handleDashboardSessions.bind(this)),r.get("/",this.handleViewerUI.bind(this)),r.get("/stream",this.handleSSEStream.bind(this))}handleHealth=this.wrapHandler((r,n)=>{let s=this.sessionManager.getTotalActiveWork(),i=this.sessionManager.isAnySessionProcessing();n.json({status:"ok",timestamp:Date.now(),queueDepth:s,isProcessing:i})});handleRestart=this.wrapHandler((r,n)=>{_.info("SYSTEM","Restart requested via API"),n.json({status:"restarting",message:"Worker will restart"}),setTimeout(()=>{_.info("SYSTEM","Exiting for restart..."),process.exit(0)},500)});handleVersion=this.wrapHandler((r,n)=>{let s=To();n.json({version:s})});handleViewerUI=this.wrapHandler((r,n)=>{let s=la(),i=To(),o=[gm.default.join(s,"ui","index.html"),gm.default.join(s,"ui","viewer.html"),gm.default.join(s,"plugin","ui","viewer.html")].find(l=>(0,vm.existsSync)(l));if(!o)throw new Error("Viewer UI not found at any expected location");let c=(0,vm.readFileSync)(o,"utf-8");c=c.replace("",` -`),n.setHeader("Content-Type","text/html"),n.setHeader("Cache-Control","no-cache, no-store, must-revalidate"),n.setHeader("Pragma","no-cache"),n.setHeader("Expires","0"),n.send(c)});handleDashboardSessions=this.wrapHandler((r,n)=>{let s=this.dbManager.getSessionStore().db,i=q3(s);n.json({sessions:i})});handleSSEStream=this.wrapHandler((r,n)=>{n.setHeader("Content-Type","text/event-stream"),n.setHeader("Cache-Control","no-cache"),n.setHeader("Connection","keep-alive"),this.sseBroadcaster.addClient(n);let s=this.dbManager.getSessionStore().getAllProjects();this.sseBroadcaster.broadcast({type:"initial_load",projects:s,timestamp:Date.now()});let i=this.sessionManager.isAnySessionProcessing(),a=this.sessionManager.getTotalActiveWork();this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:i,queueDepth:a})})};Ln();re();re();var H3=100;function kke(t){let e=(t.match(//g)||[]).length,r=(t.match(//g)||[]).length;return e+r}function B3(t){let e=kke(t);return e>H3&&_.warn("SYSTEM","tag count exceeds limit",void 0,{tagCount:e,maxAllowed:H3,contentLength:t.length}),t.replace(/[\s\S]*?<\/pilot-memory-context>/g,"").replace(/[\s\S]*?<\/private>/g,"").trim()}function S1(t){return B3(t)}function W3(t){return B3(t)}var Ky=class{constructor(e,r){this.sessionManager=e;this.eventBroadcaster=r}sessionManager;eventBroadcaster;async completeByDbId(e){await this.sessionManager.deleteSession(e),this.eventBroadcaster.broadcastSessionCompleted(e)}};re();var ym=class{static checkUserPromptPrivacy(e,r,n,s,i,a){let o=e.getUserPrompt(r,n);return!o||o.trim()===""?(_.debug("HOOK",`Skipping ${s} - user prompt was entirely private`,{sessionId:i,promptNumber:n,...a}),null):o}};Or();er();var Jy=class extends Te{constructor(r,n,s,i,a){super();this.sessionManager=r;this.dbManager=n;this.sdkAgent=s;this.eventBroadcaster=i;this.workerService=a;this.completionHandler=new Ky(r,i)}sessionManager;dbManager;sdkAgent;eventBroadcaster;workerService;completionHandler;staleCleanupDone=!1;triggerStaleCleanup(){this.staleCleanupDone||(this.staleCleanupDone=!0,_1().catch(r=>{_.warn("CLEANUP","Stale memory session cleanup failed",{},r)}))}getActiveAgent(){return this.sdkAgent}getSelectedProvider(){return"claude"}ensureGeneratorRunning(r,n){let s=this.sessionManager.getSession(r);s&&(s.generatorPromise||this.startGenerator(s,n))}startGenerator(r,n){r&&(r.abortController.signal.aborted&&(_.info("SESSION","Replacing aborted AbortController before generator start",{sessionId:r.sessionDbId,source:n}),r.abortController=new AbortController),_.info("SESSION",`Generator auto-starting (${n}) using Claude SDK`,{sessionId:r.sessionDbId,queueDepth:r.pendingMessages.length,historyLength:r.conversationHistory.length}),r.currentProvider="claude",r.generatorPromise=this.sdkAgent.startSession(r,this.workerService).catch(s=>{if(r.abortController.signal.aborted)return;_.error("SESSION","Generator failed",{sessionId:r.sessionDbId,provider:"claude",error:s.message},s);let i=this.sessionManager.getPendingMessageStore();try{let a=i.markAllSessionMessagesFailed(r.sessionDbId);a>0&&_.error("SESSION","Marked messages as failed after generator error",{sessionId:r.sessionDbId,failedCount:a})}catch(a){_.error("SESSION","Failed to mark messages as failed",{sessionId:r.sessionDbId},a)}}).finally(()=>{let s=r.sessionDbId,i=r.abortController.signal.aborted;if(i?_.info("SESSION","Generator aborted",{sessionId:s}):_.error("SESSION","Generator exited unexpectedly",{sessionId:s}),r.generatorPromise=null,r.currentProvider=null,this.workerService.broadcastProcessingStatus(),!i)try{let a=this.sessionManager.getPendingMessageStore(),o=a.getPendingCount(s),c=3;if(o>0){if(r.consecutiveRestarts=(r.consecutiveRestarts||0)+1,r.consecutiveRestarts>c){let p=a.markAllSessionMessagesFailed(s);_.error("SESSION","CRITICAL: Generator restart limit exceeded - marking pending messages as failed",{sessionId:s,pendingCount:o,failedCount:p,consecutiveRestarts:r.consecutiveRestarts,maxRestarts:c}),r.abortController.abort();return}_.info("SESSION","Restarting generator after crash/exit with pending work",{sessionId:s,pendingCount:o,consecutiveRestarts:r.consecutiveRestarts,maxRestarts:c});let l=r.abortController;r.abortController=new AbortController,l.abort();let u=Math.min(1e3*Math.pow(2,r.consecutiveRestarts-1),8e3);setTimeout(()=>{let p=this.sessionManager.getSession(s);p&&!p.generatorPromise&&this.startGenerator(p,"crash-recovery")},u)}else r.abortController.abort(),r.consecutiveRestarts=0,_.debug("SESSION","Aborted controller after natural completion",{sessionId:s})}catch(a){_.debug("SESSION","Error during recovery check, aborting to prevent leaks",{sessionId:s,error:a instanceof Error?a.message:String(a)}),r.abortController.abort()}}))}setupRoutes(r){r.post("/sessions/:sessionDbId/init",this.handleSessionInit.bind(this)),r.post("/sessions/:sessionDbId/observations",this.handleObservations.bind(this)),r.post("/sessions/:sessionDbId/summarize",this.handleSummarize.bind(this)),r.get("/sessions/:sessionDbId/status",this.handleSessionStatus.bind(this)),r.delete("/sessions/:sessionDbId",this.handleSessionDelete.bind(this)),r.post("/sessions/:sessionDbId/complete",this.handleSessionComplete.bind(this)),r.post("/api/sessions/init",this.handleSessionInitByClaudeId.bind(this)),r.post("/api/sessions/observations",this.handleObservationsByClaudeId.bind(this)),r.post("/api/sessions/summarize",this.handleSummarizeByClaudeId.bind(this)),r.post("/api/sessions/complete",this.handleSessionCompleteByClaudeId.bind(this))}handleSessionInit=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");if(s===null)return;let{userPrompt:i,promptNumber:a}=r.body;_.info("HTTP","SessionRoutes: handleSessionInit called",{sessionDbId:s,promptNumber:a,has_userPrompt:!!i});let o=this.sessionManager.initializeSession(s,i,a),c=this.dbManager.getSessionStore().getLatestUserPrompt(o.contentSessionId);if(c){this.eventBroadcaster.broadcastNewPrompt({id:c.id,content_session_id:c.content_session_id,project:c.project,prompt_number:c.prompt_number,prompt_text:c.prompt_text,created_at_epoch:c.created_at_epoch});let l=Date.now(),u=c.prompt_text;this.dbManager.getChromaSync().syncUserPrompt(c.id,c.memory_session_id,c.project,u,c.prompt_number,c.created_at_epoch).then(()=>{let p=Date.now()-l,d=u.length>60?u.substring(0,60)+"...":u;_.debug("CHROMA","User prompt synced",{promptId:c.id,duration:`${p}ms`,prompt:d})}).catch(p=>{_.error("CHROMA","User prompt sync failed, continuing without vector search",{promptId:c.id,prompt:u.length>60?u.substring(0,60)+"...":u},p)})}this.ensureGeneratorRunning(s,"init"),this.eventBroadcaster.broadcastSessionStarted(s,o.project),n.json({status:"initialized",sessionDbId:s,port:un()})});handleObservations=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");if(s===null)return;let{tool_name:i,tool_input:a,tool_response:o,prompt_number:c,cwd:l}=r.body;this.sessionManager.queueObservation(s,{tool_name:i,tool_input:a,tool_response:o,prompt_number:c,cwd:l}),this.ensureGeneratorRunning(s,"observation"),this.eventBroadcaster.broadcastObservationQueued(s),n.json({status:"queued"})});handleSummarize=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");if(s===null)return;let{last_assistant_message:i}=r.body;this.sessionManager.queueSummarize(s,i),this.ensureGeneratorRunning(s,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleSessionStatus=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");if(s===null)return;let i=this.sessionManager.getSession(s);if(!i){n.json({status:"not_found"});return}n.json({status:"active",sessionDbId:s,project:i.project,queueLength:i.pendingMessages.length,uptime:Date.now()-i.startTime})});handleSessionDelete=this.wrapHandler(async(r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");s!==null&&(await this.completionHandler.completeByDbId(s),n.json({status:"deleted"}))});handleSessionComplete=this.wrapHandler(async(r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");s!==null&&(await this.completionHandler.completeByDbId(s),n.json({success:!0}))});handleObservationsByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:s,tool_name:i,tool_input:a,tool_response:o,cwd:c}=r.body;if(!s)return this.badRequest(n,"Missing contentSessionId");let l=Ae.loadFromFile(Ht);if(new Set(l.CLAUDE_PILOT_SKIP_TOOLS.split(",").map(y=>y.trim()).filter(Boolean)).has(i)){_.debug("SESSION","Skipping observation for tool",{tool_name:i}),n.json({status:"skipped",reason:"tool_excluded"});return}if(new Set(["Edit","Write","Read","NotebookEdit"]).has(i)&&a){let y=a.file_path||a.notebook_path;if(y&&y.includes("session-memory")){_.debug("SESSION","Skipping meta-observation for session-memory file",{tool_name:i,file_path:y}),n.json({status:"skipped",reason:"session_memory_meta"});return}}let d=this.dbManager.getSessionStore(),m=d.createSDKSession(s,"",""),f=d.getPromptNumberFromUserPrompts(s);if(!ym.checkUserPromptPrivacy(d,s,f,"observation",m,{tool_name:i})){n.json({status:"skipped",reason:"private"});return}let v=a!==void 0?S1(JSON.stringify(a)):"{}",h=o!==void 0?S1(JSON.stringify(o)):"{}";this.sessionManager.queueObservation(m,{tool_name:i,tool_input:v,tool_response:h,prompt_number:f,cwd:c||(_.error("SESSION","Missing cwd when queueing observation in SessionRoutes",{sessionId:m,tool_name:i}),"")}),this.ensureGeneratorRunning(m,"observation"),this.eventBroadcaster.broadcastObservationQueued(m),n.json({status:"queued"})});handleSummarizeByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:s,last_assistant_message:i}=r.body;if(!s)return this.badRequest(n,"Missing contentSessionId");let a=this.dbManager.getSessionStore(),o=a.createSDKSession(s,"",""),c=a.getPromptNumberFromUserPrompts(s);if(!ym.checkUserPromptPrivacy(a,s,c,"summarize",o)){n.json({status:"skipped",reason:"private"});return}this.sessionManager.queueSummarize(o,i),this.ensureGeneratorRunning(o,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleSessionInitByClaudeId=this.wrapHandler((r,n)=>{this.triggerStaleCleanup();let{contentSessionId:s,project:i,prompt:a,projectRoot:o}=r.body;if(_.info("HTTP","SessionRoutes: handleSessionInitByClaudeId called",{contentSessionId:s,project:i,prompt_length:a?.length}),!this.validateRequired(r,n,["contentSessionId","project","prompt"]))return;let c=this.dbManager.getSessionStore(),l=c.createSDKSession(s,i,a);if(o){let v=zr(o);c.upsertProjectRoot(i,v)}let u=c.getSessionById(l),p=!u?.memory_session_id;_.info("SESSION",`CREATED | contentSessionId=${s} \u2192 sessionDbId=${l} | isNew=${p} | project=${i}`,{sessionId:l});let m=c.getPromptNumberFromUserPrompts(s)+1,f=u?.memory_session_id||null;m>1?_.debug("HTTP",`[ALIGNMENT] DB Lookup Proof | contentSessionId=${s} \u2192 memorySessionId=${f||"(not yet captured)"} | prompt#=${m}`):_.debug("HTTP",`[ALIGNMENT] New Session | contentSessionId=${s} | prompt#=${m} | memorySessionId will be captured on first SDK response`);let g=W3(a);if(!g||g.trim()===""){_.debug("HOOK","Session init - prompt entirely private",{sessionId:l,promptNumber:m,originalLength:a.length}),n.json({sessionDbId:l,promptNumber:m,skipped:!0,reason:"private"});return}c.saveUserPrompt(s,m,g),_.debug("SESSION","User prompt saved",{sessionId:l,promptNumber:m}),n.json({sessionDbId:l,promptNumber:m,skipped:!1})});handleSessionCompleteByClaudeId=this.wrapHandler(async(r,n)=>{let{contentSessionId:s}=r.body;if(!s)return this.badRequest(n,"Missing contentSessionId");let a=this.dbManager.getSessionStore().getSessionByContentId(s);if(!a){n.json({status:"not_found"});return}await this.completionHandler.completeByDbId(a.id),_1().catch(o=>{_.warn("CLEANUP","Ephemeral session cleanup failed",{},o)}),_.info("SESSION","Session completed via hook",{sessionId:a.id,contentSessionId:s}),n.json({status:"completed",sessionDbId:a.id})})};var bm=Q(require("path"),1),kl=require("fs");re();var Z3=require("os");er();Ln();var Qy=class extends Te{constructor(r,n,s,i,a,o,c){super();this.paginationHelper=r;this.dbManager=n;this.sessionManager=s;this.sseBroadcaster=i;this.workerService=a;this.startTime=o;this.sessionJsonlService=c}paginationHelper;dbManager;sessionManager;sseBroadcaster;workerService;startTime;sessionJsonlService;setupRoutes(r){r.get("/api/observations",this.handleGetObservations.bind(this)),r.get("/api/summaries",this.handleGetSummaries.bind(this)),r.get("/api/prompts",this.handleGetPrompts.bind(this)),r.get("/api/observation/:id",this.handleGetObservationById.bind(this)),r.post("/api/observations/batch",this.handleGetObservationsByIds.bind(this)),r.get("/api/session/:id",this.handleGetSessionById.bind(this)),r.get("/api/sessions",this.handleGetSessions.bind(this)),r.get("/api/sessions/:id/timeline",this.handleGetSessionTimeline.bind(this)),r.post("/api/sdk-sessions/batch",this.handleGetSdkSessionsByIds.bind(this)),r.get("/api/prompt/:id",this.handleGetPromptById.bind(this)),r.get("/api/stats",this.handleGetStats.bind(this)),r.get("/api/projects",this.handleGetProjects.bind(this)),r.delete("/api/projects/:name",this.handleDeleteProject.bind(this)),r.get("/api/processing-status",this.handleGetProcessingStatus.bind(this)),r.post("/api/processing",this.handleSetProcessing.bind(this)),r.get("/api/pending-queue",this.handleGetPendingQueue.bind(this)),r.post("/api/pending-queue/process",this.handleProcessPendingQueue.bind(this)),r.post("/api/pending-queue/:id/retry",this.handleRetryMessage.bind(this)),r.delete("/api/pending-queue/failed",this.handleClearFailedQueue.bind(this)),r.delete("/api/pending-queue/all",this.handleClearAllQueue.bind(this)),r.post("/api/import",this.handleImport.bind(this)),r.get("/api/export",this.handleExport.bind(this)),r.delete("/api/observation/:id",this.handleDeleteObservation.bind(this)),r.post("/api/observations/delete",this.handleBulkDeleteObservations.bind(this)),r.get("/api/project-roots",this.handleGetProjectRoots.bind(this)),r.get("/api/analytics/timeline",this.handleGetAnalyticsTimeline.bind(this)),r.get("/api/analytics/types",this.handleGetAnalyticsTypes.bind(this)),r.get("/api/analytics/projects",this.handleGetAnalyticsProjects.bind(this)),r.get("/api/analytics/tokens",this.handleGetAnalyticsTokens.bind(this)),r.get("/api/sessions/:id/stats",this.handleGetSessionJsonlStats.bind(this)),r.post("/api/sessions/costs",this.handleGetSessionCosts.bind(this))}handleGetObservations=this.wrapHandler((r,n)=>{let{offset:s,limit:i,project:a}=this.parsePaginationParams(r),o=this.paginationHelper.getObservations(s,i,a);n.json(o)});handleGetSummaries=this.wrapHandler((r,n)=>{let{offset:s,limit:i,project:a}=this.parsePaginationParams(r),o=this.paginationHelper.getSummaries(s,i,a);n.json(o)});handleGetPrompts=this.wrapHandler((r,n)=>{let{offset:s,limit:i,project:a}=this.parsePaginationParams(r),o=this.paginationHelper.getPrompts(s,i,a);n.json(o)});handleGetObservationById=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"id");if(s===null)return;let a=this.dbManager.getSessionStore().getObservationById(s);if(!a){this.notFound(n,`Observation #${s} not found`);return}n.json(a)});handleGetObservationsByIds=this.wrapHandler((r,n)=>{let{ids:s,orderBy:i,limit:a,project:o}=r.body;if(!s||!Array.isArray(s)){this.badRequest(n,"ids must be an array of numbers");return}if(s.length===0){n.json([]);return}if(!s.every(u=>typeof u=="number"&&Number.isInteger(u))){this.badRequest(n,"All ids must be integers");return}let l=this.dbManager.getSessionStore().getObservationsByIds(s,{orderBy:i,limit:a,project:o});n.json(l)});handleGetSessionById=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"id");if(s===null)return;let a=this.dbManager.getSessionStore().getSessionSummariesByIds([s]);if(a.length===0){this.notFound(n,`Session #${s} not found`);return}n.json(a[0])});handleGetSessions=this.wrapHandler((r,n)=>{let s=parseInt(r.query.offset,10)||0,i=Math.min(parseInt(r.query.limit,10)||20,100),a=r.query.project,o=r.query.search,c=this.dbManager.getSessionStore().db,l=[],u=[];if(a&&(l.push("EXISTS (SELECT 1 FROM observations WHERE memory_session_id = s.memory_session_id AND project = ?)"),u.push(a)),o){l.push("(s.user_prompt LIKE ? OR s.project LIKE ? OR s.content_session_id LIKE ?)");let w=`%${o}%`;u.push(w,w,w)}let p=a?"AND o.project = ?":"",d=a?[a]:[],m=r.query.exclude_bot==="true";m&&(l.push("s.user_prompt IS NOT NULL"),l.push("s.user_prompt != ''"),l.push("s.user_prompt NOT LIKE '/bot-%'"));let f=l.length>0?`WHERE ${l.join(" AND ")}`:"",v=` + ORDER BY ss.started_at_epoch DESC`).all()}var Zy=class extends Te{constructor(r,n,s){super();this.sseBroadcaster=r;this.dbManager=n;this.sessionManager=s}sseBroadcaster;dbManager;sessionManager;setupRoutes(r){let n=ca(),s=hm.default.join(n,"ui");_.info("VIEWER","Setting up static file serving",{packageRoot:n,uiPath:s,exists:(0,gm.existsSync)(s)}),r.use($3.default.static(s,{index:!1,setHeaders:(i,a)=>{a.endsWith(".js")||a.endsWith(".css")?(i.setHeader("Cache-Control","no-cache, no-store, must-revalidate"),i.setHeader("Pragma","no-cache"),i.setHeader("Expires","0")):a.endsWith(".html")?i.setHeader("Cache-Control","no-cache, no-store, must-revalidate"):i.setHeader("Cache-Control","public, max-age=3600")}})),r.get("/health",this.handleHealth.bind(this)),r.get("/api/health",this.handleHealth.bind(this)),r.get("/api/version",this.handleVersion.bind(this)),r.post("/api/restart",this.handleRestart.bind(this)),r.get("/api/dashboard/sessions",this.handleDashboardSessions.bind(this)),r.get("/",this.handleViewerUI.bind(this)),r.get("/stream",this.handleSSEStream.bind(this))}handleHealth=this.wrapHandler((r,n)=>{let s=this.sessionManager.getTotalActiveWork(),i=this.sessionManager.isAnySessionProcessing();n.json({status:"ok",timestamp:Date.now(),queueDepth:s,isProcessing:i})});handleRestart=this.wrapHandler((r,n)=>{_.info("SYSTEM","Restart requested via API"),n.json({status:"restarting",message:"Worker will restart"}),setTimeout(()=>{_.info("SYSTEM","Exiting for restart..."),process.exit(0)},500)});handleVersion=this.wrapHandler((r,n)=>{let s=ko();n.json({version:s})});handleViewerUI=this.wrapHandler((r,n)=>{let s=ca(),i=ko(),o=[hm.default.join(s,"ui","index.html"),hm.default.join(s,"ui","viewer.html"),hm.default.join(s,"plugin","ui","viewer.html")].find(l=>(0,gm.existsSync)(l));if(!o)throw new Error("Viewer UI not found at any expected location");let c=(0,gm.readFileSync)(o,"utf-8");c=c.replace("",` +`),n.setHeader("Content-Type","text/html"),n.setHeader("Cache-Control","no-cache, no-store, must-revalidate"),n.setHeader("Pragma","no-cache"),n.setHeader("Expires","0"),n.send(c)});handleDashboardSessions=this.wrapHandler((r,n)=>{let s=this.dbManager.getSessionStore().db,i=z3(s);n.json({sessions:i})});handleSSEStream=this.wrapHandler((r,n)=>{n.setHeader("Content-Type","text/event-stream"),n.setHeader("Cache-Control","no-cache"),n.setHeader("Connection","keep-alive"),this.sseBroadcaster.addClient(n);let s=this.dbManager.getSessionStore().getAllProjects();this.sseBroadcaster.broadcast({type:"initial_load",projects:s,timestamp:Date.now()});let i=this.sessionManager.isAnySessionProcessing(),a=this.sessionManager.getTotalActiveWork();this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:i,queueDepth:a})})};Ln();re();re();var L3=100;function yEe(t){let e=(t.match(//g)||[]).length,r=(t.match(//g)||[]).length;return e+r}function U3(t){let e=yEe(t);return e>L3&&_.warn("SYSTEM","tag count exceeds limit",void 0,{tagCount:e,maxAllowed:L3,contentLength:t.length}),t.replace(/[\s\S]*?<\/pilot-memory-context>/g,"").replace(/[\s\S]*?<\/private>/g,"").trim()}function x1(t){return U3(t)}function q3(t){return U3(t)}var Gy=class{constructor(e,r){this.sessionManager=e;this.eventBroadcaster=r}sessionManager;eventBroadcaster;async completeByDbId(e){await this.sessionManager.deleteSession(e),this.eventBroadcaster.broadcastSessionCompleted(e)}};re();var vm=class{static checkUserPromptPrivacy(e,r,n,s,i,a){let o=e.getUserPrompt(r,n);return!o||o.trim()===""?(_.debug("HOOK",`Skipping ${s} - user prompt was entirely private`,{sessionId:i,promptNumber:n,...a}),null):o}};Or();er();var Vy=class extends Te{constructor(r,n,s,i,a){super();this.sessionManager=r;this.dbManager=n;this.sdkAgent=s;this.eventBroadcaster=i;this.workerService=a;this.completionHandler=new Gy(r,i)}sessionManager;dbManager;sdkAgent;eventBroadcaster;workerService;completionHandler;staleCleanupDone=!1;triggerStaleCleanup(){this.staleCleanupDone||(this.staleCleanupDone=!0,y1().catch(r=>{_.warn("CLEANUP","Stale memory session cleanup failed",{},r)}))}getActiveAgent(){return this.sdkAgent}getSelectedProvider(){return"claude"}ensureGeneratorRunning(r,n){let s=this.sessionManager.getSession(r);s&&(s.generatorPromise||this.startGenerator(s,n))}startGenerator(r,n){r&&(r.abortController.signal.aborted&&(_.info("SESSION","Replacing aborted AbortController before generator start",{sessionId:r.sessionDbId,source:n}),r.abortController=new AbortController),_.info("SESSION",`Generator auto-starting (${n}) using Claude SDK`,{sessionId:r.sessionDbId,queueDepth:r.pendingMessages.length,historyLength:r.conversationHistory.length}),r.currentProvider="claude",r.generatorPromise=this.sdkAgent.startSession(r,this.workerService).catch(s=>{if(r.abortController.signal.aborted)return;_.error("SESSION","Generator failed",{sessionId:r.sessionDbId,provider:"claude",error:s.message},s);let i=this.sessionManager.getPendingMessageStore();try{let a=i.markAllSessionMessagesFailed(r.sessionDbId);a>0&&_.error("SESSION","Marked messages as failed after generator error",{sessionId:r.sessionDbId,failedCount:a})}catch(a){_.error("SESSION","Failed to mark messages as failed",{sessionId:r.sessionDbId},a)}}).finally(()=>{let s=r.sessionDbId,i=r.abortController.signal.aborted;if(i?_.info("SESSION","Generator aborted",{sessionId:s}):_.error("SESSION","Generator exited unexpectedly",{sessionId:s}),r.generatorPromise=null,r.currentProvider=null,this.workerService.broadcastProcessingStatus(),!i)try{let a=this.sessionManager.getPendingMessageStore(),o=a.getPendingCount(s),c=3;if(o>0){if(r.consecutiveRestarts=(r.consecutiveRestarts||0)+1,r.consecutiveRestarts>c){let p=a.markAllSessionMessagesFailed(s);_.error("SESSION","CRITICAL: Generator restart limit exceeded - marking pending messages as failed",{sessionId:s,pendingCount:o,failedCount:p,consecutiveRestarts:r.consecutiveRestarts,maxRestarts:c}),r.abortController.abort();return}_.info("SESSION","Restarting generator after crash/exit with pending work",{sessionId:s,pendingCount:o,consecutiveRestarts:r.consecutiveRestarts,maxRestarts:c});let l=r.abortController;r.abortController=new AbortController,l.abort();let u=Math.min(1e3*Math.pow(2,r.consecutiveRestarts-1),8e3);setTimeout(()=>{let p=this.sessionManager.getSession(s);p&&!p.generatorPromise&&this.startGenerator(p,"crash-recovery")},u)}else r.abortController.abort(),r.consecutiveRestarts=0,_.debug("SESSION","Aborted controller after natural completion",{sessionId:s})}catch(a){_.debug("SESSION","Error during recovery check, aborting to prevent leaks",{sessionId:s,error:a instanceof Error?a.message:String(a)}),r.abortController.abort()}}))}setupRoutes(r){r.post("/sessions/:sessionDbId/init",this.handleSessionInit.bind(this)),r.post("/sessions/:sessionDbId/observations",this.handleObservations.bind(this)),r.post("/sessions/:sessionDbId/summarize",this.handleSummarize.bind(this)),r.get("/sessions/:sessionDbId/status",this.handleSessionStatus.bind(this)),r.delete("/sessions/:sessionDbId",this.handleSessionDelete.bind(this)),r.post("/sessions/:sessionDbId/complete",this.handleSessionComplete.bind(this)),r.post("/api/sessions/init",this.handleSessionInitByClaudeId.bind(this)),r.post("/api/sessions/observations",this.handleObservationsByClaudeId.bind(this)),r.post("/api/sessions/summarize",this.handleSummarizeByClaudeId.bind(this)),r.post("/api/sessions/complete",this.handleSessionCompleteByClaudeId.bind(this))}handleSessionInit=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");if(s===null)return;let{userPrompt:i,promptNumber:a}=r.body;_.info("HTTP","SessionRoutes: handleSessionInit called",{sessionDbId:s,promptNumber:a,has_userPrompt:!!i});let o=this.sessionManager.initializeSession(s,i,a),c=this.dbManager.getSessionStore().getLatestUserPrompt(o.contentSessionId);if(c){this.eventBroadcaster.broadcastNewPrompt({id:c.id,content_session_id:c.content_session_id,project:c.project,prompt_number:c.prompt_number,prompt_text:c.prompt_text,created_at_epoch:c.created_at_epoch});let l=Date.now(),u=c.prompt_text;this.dbManager.getChromaSync().syncUserPrompt(c.id,c.memory_session_id,c.project,u,c.prompt_number,c.created_at_epoch).then(()=>{let p=Date.now()-l,d=u.length>60?u.substring(0,60)+"...":u;_.debug("CHROMA","User prompt synced",{promptId:c.id,duration:`${p}ms`,prompt:d})}).catch(p=>{_.error("CHROMA","User prompt sync failed, continuing without vector search",{promptId:c.id,prompt:u.length>60?u.substring(0,60)+"...":u},p)})}this.ensureGeneratorRunning(s,"init"),this.eventBroadcaster.broadcastSessionStarted(s,o.project),n.json({status:"initialized",sessionDbId:s,port:un()})});handleObservations=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");if(s===null)return;let{tool_name:i,tool_input:a,tool_response:o,prompt_number:c,cwd:l}=r.body;this.sessionManager.queueObservation(s,{tool_name:i,tool_input:a,tool_response:o,prompt_number:c,cwd:l}),this.ensureGeneratorRunning(s,"observation"),this.eventBroadcaster.broadcastObservationQueued(s),n.json({status:"queued"})});handleSummarize=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");if(s===null)return;let{last_assistant_message:i}=r.body;this.sessionManager.queueSummarize(s,i),this.ensureGeneratorRunning(s,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleSessionStatus=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");if(s===null)return;let i=this.sessionManager.getSession(s);if(!i){n.json({status:"not_found"});return}n.json({status:"active",sessionDbId:s,project:i.project,queueLength:i.pendingMessages.length,uptime:Date.now()-i.startTime})});handleSessionDelete=this.wrapHandler(async(r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");s!==null&&(await this.completionHandler.completeByDbId(s),n.json({status:"deleted"}))});handleSessionComplete=this.wrapHandler(async(r,n)=>{let s=this.parseIntParam(r,n,"sessionDbId");s!==null&&(await this.completionHandler.completeByDbId(s),n.json({success:!0}))});handleObservationsByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:s,tool_name:i,tool_input:a,tool_response:o,cwd:c}=r.body;if(!s)return this.badRequest(n,"Missing contentSessionId");let l=Ae.loadFromFile(Ht);if(new Set(l.CLAUDE_PILOT_SKIP_TOOLS.split(",").map(y=>y.trim()).filter(Boolean)).has(i)){_.debug("SESSION","Skipping observation for tool",{tool_name:i}),n.json({status:"skipped",reason:"tool_excluded"});return}if(new Set(["Edit","Write","Read","NotebookEdit"]).has(i)&&a){let y=a.file_path||a.notebook_path;if(y&&y.includes("session-memory")){_.debug("SESSION","Skipping meta-observation for session-memory file",{tool_name:i,file_path:y}),n.json({status:"skipped",reason:"session_memory_meta"});return}}let d=this.dbManager.getSessionStore(),m=d.createSDKSession(s,"",""),f=d.getPromptNumberFromUserPrompts(s);if(!vm.checkUserPromptPrivacy(d,s,f,"observation",m,{tool_name:i})){n.json({status:"skipped",reason:"private"});return}let v=a!==void 0?x1(JSON.stringify(a)):"{}",h=o!==void 0?x1(JSON.stringify(o)):"{}";this.sessionManager.queueObservation(m,{tool_name:i,tool_input:v,tool_response:h,prompt_number:f,cwd:c||(_.error("SESSION","Missing cwd when queueing observation in SessionRoutes",{sessionId:m,tool_name:i}),"")}),this.ensureGeneratorRunning(m,"observation"),this.eventBroadcaster.broadcastObservationQueued(m),n.json({status:"queued"})});handleSummarizeByClaudeId=this.wrapHandler((r,n)=>{let{contentSessionId:s,last_assistant_message:i}=r.body;if(!s)return this.badRequest(n,"Missing contentSessionId");let a=this.dbManager.getSessionStore(),o=a.createSDKSession(s,"",""),c=a.getPromptNumberFromUserPrompts(s);if(!vm.checkUserPromptPrivacy(a,s,c,"summarize",o)){n.json({status:"skipped",reason:"private"});return}this.sessionManager.queueSummarize(o,i),this.ensureGeneratorRunning(o,"summarize"),this.eventBroadcaster.broadcastSummarizeQueued(),n.json({status:"queued"})});handleSessionInitByClaudeId=this.wrapHandler((r,n)=>{this.triggerStaleCleanup();let{contentSessionId:s,project:i,prompt:a,projectRoot:o}=r.body;if(_.info("HTTP","SessionRoutes: handleSessionInitByClaudeId called",{contentSessionId:s,project:i,prompt_length:a?.length}),!this.validateRequired(r,n,["contentSessionId","project","prompt"]))return;let c=this.dbManager.getSessionStore(),l=c.createSDKSession(s,i,a);if(o){let v=zr(o);c.upsertProjectRoot(i,v)}let u=c.getSessionById(l),p=!u?.memory_session_id;_.info("SESSION",`CREATED | contentSessionId=${s} \u2192 sessionDbId=${l} | isNew=${p} | project=${i}`,{sessionId:l});let m=c.getPromptNumberFromUserPrompts(s)+1,f=u?.memory_session_id||null;m>1?_.debug("HTTP",`[ALIGNMENT] DB Lookup Proof | contentSessionId=${s} \u2192 memorySessionId=${f||"(not yet captured)"} | prompt#=${m}`):_.debug("HTTP",`[ALIGNMENT] New Session | contentSessionId=${s} | prompt#=${m} | memorySessionId will be captured on first SDK response`);let g=q3(a);if(!g||g.trim()===""){_.debug("HOOK","Session init - prompt entirely private",{sessionId:l,promptNumber:m,originalLength:a.length}),n.json({sessionDbId:l,promptNumber:m,skipped:!0,reason:"private"});return}c.saveUserPrompt(s,m,g),_.debug("SESSION","User prompt saved",{sessionId:l,promptNumber:m}),n.json({sessionDbId:l,promptNumber:m,skipped:!1})});handleSessionCompleteByClaudeId=this.wrapHandler(async(r,n)=>{let{contentSessionId:s}=r.body;if(!s)return this.badRequest(n,"Missing contentSessionId");let a=this.dbManager.getSessionStore().getSessionByContentId(s);if(!a){n.json({status:"not_found"});return}await this.completionHandler.completeByDbId(a.id),y1().catch(o=>{_.warn("CLEANUP","Ephemeral session cleanup failed",{},o)}),_.info("SESSION","Session completed via hook",{sessionId:a.id,contentSessionId:s}),n.json({status:"completed",sessionDbId:a.id})})};var ym=Q(require("path"),1),Sl=require("fs");re();var F3=require("os");er();Ln();var Ky=class extends Te{constructor(r,n,s,i,a,o,c){super();this.paginationHelper=r;this.dbManager=n;this.sessionManager=s;this.sseBroadcaster=i;this.workerService=a;this.startTime=o;this.sessionJsonlService=c}paginationHelper;dbManager;sessionManager;sseBroadcaster;workerService;startTime;sessionJsonlService;setupRoutes(r){r.get("/api/observations",this.handleGetObservations.bind(this)),r.get("/api/summaries",this.handleGetSummaries.bind(this)),r.get("/api/prompts",this.handleGetPrompts.bind(this)),r.get("/api/observation/:id",this.handleGetObservationById.bind(this)),r.post("/api/observations/batch",this.handleGetObservationsByIds.bind(this)),r.get("/api/session/:id",this.handleGetSessionById.bind(this)),r.get("/api/sessions",this.handleGetSessions.bind(this)),r.get("/api/sessions/:id/timeline",this.handleGetSessionTimeline.bind(this)),r.post("/api/sdk-sessions/batch",this.handleGetSdkSessionsByIds.bind(this)),r.get("/api/prompt/:id",this.handleGetPromptById.bind(this)),r.get("/api/stats",this.handleGetStats.bind(this)),r.get("/api/projects",this.handleGetProjects.bind(this)),r.delete("/api/projects/:name",this.handleDeleteProject.bind(this)),r.get("/api/processing-status",this.handleGetProcessingStatus.bind(this)),r.post("/api/processing",this.handleSetProcessing.bind(this)),r.get("/api/pending-queue",this.handleGetPendingQueue.bind(this)),r.post("/api/pending-queue/process",this.handleProcessPendingQueue.bind(this)),r.post("/api/pending-queue/:id/retry",this.handleRetryMessage.bind(this)),r.delete("/api/pending-queue/failed",this.handleClearFailedQueue.bind(this)),r.delete("/api/pending-queue/all",this.handleClearAllQueue.bind(this)),r.post("/api/import",this.handleImport.bind(this)),r.get("/api/export",this.handleExport.bind(this)),r.delete("/api/observation/:id",this.handleDeleteObservation.bind(this)),r.post("/api/observations/delete",this.handleBulkDeleteObservations.bind(this)),r.get("/api/project-roots",this.handleGetProjectRoots.bind(this)),r.get("/api/analytics/timeline",this.handleGetAnalyticsTimeline.bind(this)),r.get("/api/analytics/types",this.handleGetAnalyticsTypes.bind(this)),r.get("/api/analytics/projects",this.handleGetAnalyticsProjects.bind(this)),r.get("/api/analytics/tokens",this.handleGetAnalyticsTokens.bind(this)),r.get("/api/sessions/:id/stats",this.handleGetSessionJsonlStats.bind(this)),r.post("/api/sessions/costs",this.handleGetSessionCosts.bind(this))}handleGetObservations=this.wrapHandler((r,n)=>{let{offset:s,limit:i,project:a}=this.parsePaginationParams(r),o=this.paginationHelper.getObservations(s,i,a);n.json(o)});handleGetSummaries=this.wrapHandler((r,n)=>{let{offset:s,limit:i,project:a}=this.parsePaginationParams(r),o=this.paginationHelper.getSummaries(s,i,a);n.json(o)});handleGetPrompts=this.wrapHandler((r,n)=>{let{offset:s,limit:i,project:a}=this.parsePaginationParams(r),o=this.paginationHelper.getPrompts(s,i,a);n.json(o)});handleGetObservationById=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"id");if(s===null)return;let a=this.dbManager.getSessionStore().getObservationById(s);if(!a){this.notFound(n,`Observation #${s} not found`);return}n.json(a)});handleGetObservationsByIds=this.wrapHandler((r,n)=>{let{ids:s,orderBy:i,limit:a,project:o}=r.body;if(!s||!Array.isArray(s)){this.badRequest(n,"ids must be an array of numbers");return}if(s.length===0){n.json([]);return}if(!s.every(u=>typeof u=="number"&&Number.isInteger(u))){this.badRequest(n,"All ids must be integers");return}let l=this.dbManager.getSessionStore().getObservationsByIds(s,{orderBy:i,limit:a,project:o});n.json(l)});handleGetSessionById=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"id");if(s===null)return;let a=this.dbManager.getSessionStore().getSessionSummariesByIds([s]);if(a.length===0){this.notFound(n,`Session #${s} not found`);return}n.json(a[0])});handleGetSessions=this.wrapHandler((r,n)=>{let s=parseInt(r.query.offset,10)||0,i=Math.min(parseInt(r.query.limit,10)||20,100),a=r.query.project,o=r.query.search,c=this.dbManager.getSessionStore().db,l=[],u=[];if(a&&(l.push("EXISTS (SELECT 1 FROM observations WHERE memory_session_id = s.memory_session_id AND project = ?)"),u.push(a)),o){l.push("(s.user_prompt LIKE ? OR s.project LIKE ? OR s.content_session_id LIKE ?)");let w=`%${o}%`;u.push(w,w,w)}let p=a?"AND o.project = ?":"",d=a?[a]:[],m=r.query.exclude_bot==="true";m&&(l.push("s.user_prompt IS NOT NULL"),l.push("s.user_prompt != ''"),l.push("s.user_prompt NOT LIKE '/bot-%'"));let f=l.length>0?`WHERE ${l.join(" AND ")}`:"",v=` SELECT s.id, s.content_session_id, @@ -1520,10 +1520,10 @@ Tips: WHERE memory_session_id = ? ORDER BY created_at DESC LIMIT 1 - `).get(a.memory_session_id),u=[];for(let p of c)u.push({type:"prompt",id:p.id,timestamp:p.created_at_epoch,data:p});for(let p of o)u.push({type:"observation",id:p.id,timestamp:p.created_at_epoch,data:p});u.sort((p,d)=>p.timestamp-d.timestamp),n.json({session:a,timeline:u,summary:l,stats:{observations:o.length,prompts:c.length}})});handleGetSessionJsonlStats=this.wrapHandler((r,n)=>{if(!this.sessionJsonlService){n.json({stats:null});return}let s=this.parseIntParam(r,n,"id");if(s===null)return;let i=this.dbManager.getSessionStore(),a=i.getSessionById(s);if(!a){this.notFound(n,`Session #${s} not found`);return}let o=i.getProjectRoot(a.project),c=this.sessionJsonlService.getStats(a.content_session_id,o);if(!c){n.json({stats:null});return}n.json({stats:{session_id:c.sessionId,turns:c.turns,user_messages:c.userMessages,assistant_messages:c.assistantMessages,duration_minutes:c.durationMinutes,models:c.models,tokens:{input:c.tokens.input,output:c.tokens.output,cache_read:c.tokens.cacheRead,cache_create:c.tokens.cacheCreate},tools:c.tools,first_message:c.firstMessage,last_message:c.lastMessage,is_resumed:c.isResumed,cost_usd:c.costUsd}})});handleGetSessionCosts=this.wrapHandler(async(r,n)=>{if(!this.sessionJsonlService){n.json({costs:{}});return}let{ids:s}=r.body;if(!Array.isArray(s)){this.badRequest(n,"ids must be an array");return}let i=this.dbManager.getSessionStore(),a=s.slice(0,50),o=await Promise.all(a.map(async l=>{let u=i.getSessionById(l);if(!u)return[l,null];let p=i.getProjectRoot(u.project),d=await this.sessionJsonlService.getStatsAsync(u.content_session_id,p);return[l,d?.costUsd??null]})),c={};for(let[l,u]of o)c[l]=u;n.json({costs:c})});handleGetSdkSessionsByIds=this.wrapHandler((r,n)=>{let{memorySessionIds:s}=r.body;if(!Array.isArray(s)){this.badRequest(n,"memorySessionIds must be an array");return}let a=this.dbManager.getSessionStore().getSdkSessionsBySessionIds(s);n.json(a)});handleGetPromptById=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"id");if(s===null)return;let a=this.dbManager.getSessionStore().getUserPromptsByIds([s]);if(a.length===0){this.notFound(n,`Prompt #${s} not found`);return}n.json(a[0])});handleGetStats=this.wrapHandler((r,n)=>{let s=r.query.project,i=this.dbManager.getSessionStore().db,a=To(),o,c;s?(o=i.prepare("SELECT COUNT(*) as count FROM observations WHERE project = ?").get(s),c=i.prepare(`SELECT COUNT(DISTINCT ss.id) as count FROM session_summaries ss + `).get(a.memory_session_id),u=[];for(let p of c)u.push({type:"prompt",id:p.id,timestamp:p.created_at_epoch,data:p});for(let p of o)u.push({type:"observation",id:p.id,timestamp:p.created_at_epoch,data:p});u.sort((p,d)=>p.timestamp-d.timestamp),n.json({session:a,timeline:u,summary:l,stats:{observations:o.length,prompts:c.length}})});handleGetSessionJsonlStats=this.wrapHandler((r,n)=>{if(!this.sessionJsonlService){n.json({stats:null});return}let s=this.parseIntParam(r,n,"id");if(s===null)return;let i=this.dbManager.getSessionStore(),a=i.getSessionById(s);if(!a){this.notFound(n,`Session #${s} not found`);return}let o=i.getProjectRoot(a.project),c=this.sessionJsonlService.getStats(a.content_session_id,o);if(!c){n.json({stats:null});return}n.json({stats:{session_id:c.sessionId,turns:c.turns,user_messages:c.userMessages,assistant_messages:c.assistantMessages,duration_minutes:c.durationMinutes,models:c.models,tokens:{input:c.tokens.input,output:c.tokens.output,cache_read:c.tokens.cacheRead,cache_create:c.tokens.cacheCreate},tools:c.tools,first_message:c.firstMessage,last_message:c.lastMessage,is_resumed:c.isResumed,cost_usd:c.costUsd}})});handleGetSessionCosts=this.wrapHandler(async(r,n)=>{if(!this.sessionJsonlService){n.json({costs:{}});return}let{ids:s}=r.body;if(!Array.isArray(s)){this.badRequest(n,"ids must be an array");return}let i=this.dbManager.getSessionStore(),a=s.slice(0,50),o=await Promise.all(a.map(async l=>{let u=i.getSessionById(l);if(!u)return[l,null];let p=i.getProjectRoot(u.project),d=await this.sessionJsonlService.getStatsAsync(u.content_session_id,p);return[l,d?.costUsd??null]})),c={};for(let[l,u]of o)c[l]=u;n.json({costs:c})});handleGetSdkSessionsByIds=this.wrapHandler((r,n)=>{let{memorySessionIds:s}=r.body;if(!Array.isArray(s)){this.badRequest(n,"memorySessionIds must be an array");return}let a=this.dbManager.getSessionStore().getSdkSessionsBySessionIds(s);n.json(a)});handleGetPromptById=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"id");if(s===null)return;let a=this.dbManager.getSessionStore().getUserPromptsByIds([s]);if(a.length===0){this.notFound(n,`Prompt #${s} not found`);return}n.json(a[0])});handleGetStats=this.wrapHandler((r,n)=>{let s=r.query.project,i=this.dbManager.getSessionStore().db,a=ko(),o,c;s?(o=i.prepare("SELECT COUNT(*) as count FROM observations WHERE project = ?").get(s),c=i.prepare(`SELECT COUNT(DISTINCT ss.id) as count FROM session_summaries ss INNER JOIN sdk_sessions s ON ss.memory_session_id = s.memory_session_id INNER JOIN observations o ON o.memory_session_id = s.memory_session_id - WHERE o.project = ?`).get(s)):(o=i.prepare("SELECT COUNT(*) as count FROM observations").get(),c=i.prepare("SELECT COUNT(*) as count FROM session_summaries").get());let l=i.prepare("SELECT COUNT(*) as count FROM sdk_sessions").get(),u=bm.default.join((0,Z3.homedir)(),".pilot/memory","pilot-memory.db"),p=0;(0,kl.existsSync)(u)&&(p=(0,kl.statSync)(u).size);let d=Math.floor((Date.now()-this.startTime)/1e3),m=this.sseBroadcaster.getClientCount(),f=this.sessionManager.getSessionStats(),g=zr(process.env.CLAUDE_PROJECT_ROOT||process.cwd()),v=bm.default.basename(g);n.json({worker:{version:a,uptime:d,workspaceProject:v,activeSessions:f.activeSessions,sessionsWithGenerators:f.sessionsWithGenerators,queueDepth:f.totalQueueDepth,oldestSessionAgeMs:f.oldestSessionAge,sseClients:m,port:un()},database:{path:u,size:p,observations:o.count,sessions:l.count,summaries:c.count}})});handleGetProjects=this.wrapHandler((r,n)=>{let s=this.dbManager.getSessionStore().getAllProjectRoots(),i=bm.default.basename(zr(process.env.CLAUDE_PROJECT_ROOT||process.cwd())),a=s.filter(o=>(0,kl.existsSync)(o.rootPath)?(0,kl.existsSync)(bm.default.join(o.rootPath,".git"))?!0:zr(o.rootPath)!==o.rootPath:!1).map(o=>o.project).sort((o,c)=>o===i?-1:c===i?1:o.localeCompare(c));n.json({projects:a,workspaceProject:i})});handleDeleteProject=this.wrapHandler((r,n)=>{let s=decodeURIComponent(r.params.name);if(!s){this.badRequest(n,"Project name is required");return}let a=this.dbManager.getSessionStore().deleteProjectData(s);_.info("DATA","Deleted project data",{project:s,deletedObservations:a}),n.json({success:!0,project:s,deletedObservations:a})});handleGetProjectRoots=this.wrapHandler((r,n)=>{let i=this.dbManager.getSessionStore().getAllProjectRoots();n.json({roots:i})});handleGetProcessingStatus=this.wrapHandler((r,n)=>{let s=this.sessionManager.isAnySessionProcessing(),i=this.sessionManager.getTotalActiveWork();n.json({isProcessing:s,queueDepth:i})});handleSetProcessing=this.wrapHandler((r,n)=>{this.workerService.broadcastProcessingStatus();let s=this.sessionManager.isAnySessionProcessing(),i=this.sessionManager.getTotalQueueDepth(),a=this.sessionManager.getActiveSessionCount();n.json({status:"ok",isProcessing:s,queueDepth:i,activeSessions:a})});parsePaginationParams(r){let n=parseInt(r.query.offset,10)||0,s=Math.min(parseInt(r.query.limit,10)||20,100),i=r.query.project;return{offset:n,limit:s,project:i}}handleImport=this.wrapHandler((r,n)=>{let{sessions:s,summaries:i,observations:a,prompts:o}=r.body,c={sessionsImported:0,sessionsSkipped:0,summariesImported:0,summariesSkipped:0,observationsImported:0,observationsSkipped:0,promptsImported:0,promptsSkipped:0},l=this.dbManager.getSessionStore();if(Array.isArray(s))for(let u of s)l.importSdkSession(u).imported?c.sessionsImported++:c.sessionsSkipped++;if(Array.isArray(i))for(let u of i)l.importSessionSummary(u).imported?c.summariesImported++:c.summariesSkipped++;if(Array.isArray(a))for(let u of a)l.importObservation(u).imported?c.observationsImported++:c.observationsSkipped++;if(Array.isArray(o))for(let u of o)l.importUserPrompt(u).imported?c.promptsImported++:c.promptsSkipped++;n.json({success:!0,stats:c})});handleExport=this.wrapHandler((r,n)=>{let s=r.query.project,i=(r.query.format||"json").toLowerCase(),a=r.query.ids,c=this.dbManager.getSessionStore().db;if(!["json","csv","markdown","md"].includes(i)){this.badRequest(n,"Invalid format. Supported: json, csv, markdown");return}let l;a&&(l=a.split(",").map(m=>parseInt(m.trim(),10)).filter(m=>!isNaN(m)));let u=s?"WHERE project = ?":"",p=s?[s]:[],d;if(l&&l.length>0){let m=l.map(()=>"?").join(",");d=c.prepare(`SELECT * FROM observations WHERE id IN (${m})`).all(...l)}else d=c.prepare(`SELECT * FROM observations ${u}`).all(...p);if(i==="json"){let m=[];if(s){let y=c.prepare(` + WHERE o.project = ?`).get(s)):(o=i.prepare("SELECT COUNT(*) as count FROM observations").get(),c=i.prepare("SELECT COUNT(*) as count FROM session_summaries").get());let l=i.prepare("SELECT COUNT(*) as count FROM sdk_sessions").get(),u=ym.default.join((0,F3.homedir)(),".pilot/memory","pilot-memory.db"),p=0;(0,Sl.existsSync)(u)&&(p=(0,Sl.statSync)(u).size);let d=Math.floor((Date.now()-this.startTime)/1e3),m=this.sseBroadcaster.getClientCount(),f=this.sessionManager.getSessionStats(),g=zr(process.env.CLAUDE_PROJECT_ROOT||process.cwd()),v=ym.default.basename(g);n.json({worker:{version:a,uptime:d,workspaceProject:v,activeSessions:f.activeSessions,sessionsWithGenerators:f.sessionsWithGenerators,queueDepth:f.totalQueueDepth,oldestSessionAgeMs:f.oldestSessionAge,sseClients:m,port:un()},database:{path:u,size:p,observations:o.count,sessions:l.count,summaries:c.count}})});handleGetProjects=this.wrapHandler((r,n)=>{let s=this.dbManager.getSessionStore().getAllProjectRoots(),i=ym.default.basename(zr(process.env.CLAUDE_PROJECT_ROOT||process.cwd())),a=s.filter(o=>(0,Sl.existsSync)(o.rootPath)?(0,Sl.existsSync)(ym.default.join(o.rootPath,".git"))?!0:zr(o.rootPath)!==o.rootPath:!1).map(o=>o.project).sort((o,c)=>o===i?-1:c===i?1:o.localeCompare(c));n.json({projects:a,workspaceProject:i})});handleDeleteProject=this.wrapHandler((r,n)=>{let s=decodeURIComponent(r.params.name);if(!s){this.badRequest(n,"Project name is required");return}let a=this.dbManager.getSessionStore().deleteProjectData(s);_.info("DATA","Deleted project data",{project:s,deletedObservations:a}),n.json({success:!0,project:s,deletedObservations:a})});handleGetProjectRoots=this.wrapHandler((r,n)=>{let i=this.dbManager.getSessionStore().getAllProjectRoots();n.json({roots:i})});handleGetProcessingStatus=this.wrapHandler((r,n)=>{let s=this.sessionManager.isAnySessionProcessing(),i=this.sessionManager.getTotalActiveWork();n.json({isProcessing:s,queueDepth:i})});handleSetProcessing=this.wrapHandler((r,n)=>{this.workerService.broadcastProcessingStatus();let s=this.sessionManager.isAnySessionProcessing(),i=this.sessionManager.getTotalQueueDepth(),a=this.sessionManager.getActiveSessionCount();n.json({status:"ok",isProcessing:s,queueDepth:i,activeSessions:a})});parsePaginationParams(r){let n=parseInt(r.query.offset,10)||0,s=Math.min(parseInt(r.query.limit,10)||20,100),i=r.query.project;return{offset:n,limit:s,project:i}}handleImport=this.wrapHandler((r,n)=>{let{sessions:s,summaries:i,observations:a,prompts:o}=r.body,c={sessionsImported:0,sessionsSkipped:0,summariesImported:0,summariesSkipped:0,observationsImported:0,observationsSkipped:0,promptsImported:0,promptsSkipped:0},l=this.dbManager.getSessionStore();if(Array.isArray(s))for(let u of s)l.importSdkSession(u).imported?c.sessionsImported++:c.sessionsSkipped++;if(Array.isArray(i))for(let u of i)l.importSessionSummary(u).imported?c.summariesImported++:c.summariesSkipped++;if(Array.isArray(a))for(let u of a)l.importObservation(u).imported?c.observationsImported++:c.observationsSkipped++;if(Array.isArray(o))for(let u of o)l.importUserPrompt(u).imported?c.promptsImported++:c.promptsSkipped++;n.json({success:!0,stats:c})});handleExport=this.wrapHandler((r,n)=>{let s=r.query.project,i=(r.query.format||"json").toLowerCase(),a=r.query.ids,c=this.dbManager.getSessionStore().db;if(!["json","csv","markdown","md"].includes(i)){this.badRequest(n,"Invalid format. Supported: json, csv, markdown");return}let l;a&&(l=a.split(",").map(m=>parseInt(m.trim(),10)).filter(m=>!isNaN(m)));let u=s?"WHERE project = ?":"",p=s?[s]:[],d;if(l&&l.length>0){let m=l.map(()=>"?").join(",");d=c.prepare(`SELECT * FROM observations WHERE id IN (${m})`).all(...l)}else d=c.prepare(`SELECT * FROM observations ${u}`).all(...p);if(i==="json"){let m=[];if(s){let y=c.prepare(` SELECT DISTINCT s.id FROM sdk_sessions s INNER JOIN observations o ON o.memory_session_id = s.memory_session_id @@ -1545,7 +1545,7 @@ Tips: GROUP BY p.id `).all(s):g=c.prepare("SELECT * FROM user_prompts").all();let v={exportedAt:new Date().toISOString(),project:s||"all",stats:{sessions:m.length,summaries:f.length,observations:d.length,prompts:g.length},sessions:m,summaries:f,observations:d,prompts:g},h=s?`pilot-memory-export-${s}-${new Date().toISOString().split("T")[0]}.json`:`pilot-memory-export-${new Date().toISOString().split("T")[0]}.json`;n.setHeader("Content-Disposition",`attachment; filename="${h}"`),n.setHeader("Content-Type","application/json"),n.json(v);return}if(i==="csv"){let f=[["id","type","title","project","created_at","text","files_read","files_modified"].join(",")];for(let v of d){let h=[v.id,`"${(v.type||"").replace(/"/g,'""')}"`,`"${(v.title||"").replace(/"/g,'""')}"`,`"${(v.project||"").replace(/"/g,'""')}"`,v.created_at||"",`"${(v.text||"").replace(/"/g,'""').substring(0,500)}"`,`"${(v.files_read||"").replace(/"/g,'""')}"`,`"${(v.files_modified||"").replace(/"/g,'""')}"`];f.push(h.join(","))}let g=s?`pilot-memory-export-${s}-${new Date().toISOString().split("T")[0]}.csv`:`pilot-memory-export-${new Date().toISOString().split("T")[0]}.csv`;n.setHeader("Content-Disposition",`attachment; filename="${g}"`),n.setHeader("Content-Type","text/csv"),n.send(f.join(` `));return}if(i==="markdown"||i==="md"){let m=["# Pilot Memory Export","",`**Exported:** ${new Date().toISOString()}`,`**Project:** ${s||"All"}`,`**Total Memories:** ${d.length}`,"","---",""];for(let g of d){let v=g.created_at?new Date(g.created_at).toLocaleString():"Unknown";if(m.push(`## #${g.id}: ${g.title||"Untitled"}`),m.push(""),m.push(`- **Type:** ${g.type||"unknown"}`),m.push(`- **Project:** ${g.project||"none"}`),m.push(`- **Date:** ${v}`),g.files_read)try{let h=JSON.parse(g.files_read);h.length>0&&m.push(`- **Files Read:** ${h.join(", ")}`)}catch{}if(g.files_modified)try{let h=JSON.parse(g.files_modified);h.length>0&&m.push(`- **Files Modified:** ${h.join(", ")}`)}catch{}m.push(""),m.push(g.text||"*No content*"),m.push(""),m.push("---"),m.push("")}let f=s?`pilot-memory-export-${s}-${new Date().toISOString().split("T")[0]}.md`:`pilot-memory-export-${new Date().toISOString().split("T")[0]}.md`;n.setHeader("Content-Disposition",`attachment; filename="${f}"`),n.setHeader("Content-Type","text/markdown"),n.send(m.join(` -`));return}});handleGetPendingQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),Fl(Va)),i=new s(this.dbManager.getSessionStore().db,3),a=i.getQueueMessages(),o=i.getRecentlyProcessed(20,30),c=i.getStuckCount(300*1e3),l=i.getSessionsWithPendingMessages();n.json({queue:{messages:a,totalPending:a.filter(u=>u.status==="pending").length,totalProcessing:a.filter(u=>u.status==="processing").length,totalFailed:a.filter(u=>u.status==="failed").length,stuckCount:c},recentlyProcessed:o,sessionsWithPendingWork:l})});handleProcessPendingQueue=this.wrapHandler(async(r,n)=>{let s=Math.min(Math.max(parseInt(r.body.sessionLimit,10)||10,1),100),i=await this.workerService.processPendingQueues(s);n.json({success:!0,...i})});handleClearFailedQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),Fl(Va)),a=new s(this.dbManager.getSessionStore().db,3).clearFailed();_.info("QUEUE","Cleared failed queue messages",{clearedCount:a}),n.json({success:!0,clearedCount:a})});handleClearAllQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),Fl(Va)),a=new s(this.dbManager.getSessionStore().db,3).clearAll();_.warn("QUEUE","Cleared ALL queue messages (pending, processing, failed)",{clearedCount:a}),n.json({success:!0,clearedCount:a})});handleRetryMessage=this.wrapHandler((r,n)=>{let s=parseInt(r.params.id,10);if(isNaN(s)){n.status(400).json({error:"Invalid message ID"});return}let{PendingMessageStore:i}=(Fi(),Fl(Va));new i(this.dbManager.getSessionStore().db,3).retryMessage(s)?(_.info("QUEUE","Retried failed message",{messageId:s}),n.json({success:!0,messageId:s})):n.status(404).json({error:"Message not found or not in failed status"})});handleDeleteObservation=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"id");if(s===null)return;this.dbManager.getSessionStore().deleteObservation(s)?(_.info("DATA","Deleted observation",{id:s}),n.json({success:!0,id:s})):this.notFound(n,`Observation #${s} not found`)});handleBulkDeleteObservations=this.wrapHandler((r,n)=>{let{ids:s}=r.body;if(!s||!Array.isArray(s)){this.badRequest(n,"ids must be an array of numbers");return}if(s.length===0){n.json({success:!0,deletedCount:0});return}if(!s.every(o=>typeof o=="number"&&Number.isInteger(o))){this.badRequest(n,"All ids must be integers");return}let a=this.dbManager.getSessionStore().deleteObservations(s);_.info("DATA","Bulk deleted observations",{count:a,requested:s.length}),n.json({success:!0,deletedCount:a})});handleGetAnalyticsTimeline=this.wrapHandler((r,n)=>{let s=r.query.range||"30d",i=r.query.project,a=this.dbManager.getSessionStore().db,o=30;s==="7d"?o=7:s==="90d"?o=90:s==="all"&&(o=365*10);let c=Date.now()-o*24*60*60*1e3,l=i?"AND project = ?":"",u=i?[c,i]:[c],p=a.prepare(` +`));return}});handleGetPendingQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),ql(Ga)),i=new s(this.dbManager.getSessionStore().db,3),a=i.getQueueMessages(),o=i.getRecentlyProcessed(20,30),c=i.getStuckCount(300*1e3),l=i.getSessionsWithPendingMessages();n.json({queue:{messages:a,totalPending:a.filter(u=>u.status==="pending").length,totalProcessing:a.filter(u=>u.status==="processing").length,totalFailed:a.filter(u=>u.status==="failed").length,stuckCount:c},recentlyProcessed:o,sessionsWithPendingWork:l})});handleProcessPendingQueue=this.wrapHandler(async(r,n)=>{let s=Math.min(Math.max(parseInt(r.body.sessionLimit,10)||10,1),100),i=await this.workerService.processPendingQueues(s);n.json({success:!0,...i})});handleClearFailedQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),ql(Ga)),a=new s(this.dbManager.getSessionStore().db,3).clearFailed();_.info("QUEUE","Cleared failed queue messages",{clearedCount:a}),n.json({success:!0,clearedCount:a})});handleClearAllQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),ql(Ga)),a=new s(this.dbManager.getSessionStore().db,3).clearAll();_.warn("QUEUE","Cleared ALL queue messages (pending, processing, failed)",{clearedCount:a}),n.json({success:!0,clearedCount:a})});handleRetryMessage=this.wrapHandler((r,n)=>{let s=parseInt(r.params.id,10);if(isNaN(s)){n.status(400).json({error:"Invalid message ID"});return}let{PendingMessageStore:i}=(Fi(),ql(Ga));new i(this.dbManager.getSessionStore().db,3).retryMessage(s)?(_.info("QUEUE","Retried failed message",{messageId:s}),n.json({success:!0,messageId:s})):n.status(404).json({error:"Message not found or not in failed status"})});handleDeleteObservation=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"id");if(s===null)return;this.dbManager.getSessionStore().deleteObservation(s)?(_.info("DATA","Deleted observation",{id:s}),n.json({success:!0,id:s})):this.notFound(n,`Observation #${s} not found`)});handleBulkDeleteObservations=this.wrapHandler((r,n)=>{let{ids:s}=r.body;if(!s||!Array.isArray(s)){this.badRequest(n,"ids must be an array of numbers");return}if(s.length===0){n.json({success:!0,deletedCount:0});return}if(!s.every(o=>typeof o=="number"&&Number.isInteger(o))){this.badRequest(n,"All ids must be integers");return}let a=this.dbManager.getSessionStore().deleteObservations(s);_.info("DATA","Bulk deleted observations",{count:a,requested:s.length}),n.json({success:!0,deletedCount:a})});handleGetAnalyticsTimeline=this.wrapHandler((r,n)=>{let s=r.query.range||"30d",i=r.query.project,a=this.dbManager.getSessionStore().db,o=30;s==="7d"?o=7:s==="90d"?o=90:s==="all"&&(o=365*10);let c=Date.now()-o*24*60*60*1e3,l=i?"AND project = ?":"",u=i?[c,i]:[c],p=a.prepare(` SELECT date(created_at_epoch / 1000, 'unixepoch', 'localtime') as date, COUNT(*) as count @@ -1598,20 +1598,20 @@ Tips: WHERE created_at_epoch >= ? ${l} GROUP BY type ORDER BY tokens DESC - `).all(...u);n.json({range:s,project:i||"all",totals:{totalTokens:p.totalTokens||0,avgTokensPerObservation:Math.round(p.avgTokens||0),totalObservations:p.totalObservations||0},daily:d,byType:m})})};var ks=require("node:fs"),rb=require("node:fs/promises"),Tl=require("node:path"),tW=require("node:os");re();var El=require("node:fs/promises"),K3=require("node:os"),E1=require("node:path"),Eke="https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",Tke=1440*60*1e3,jt=.01,Rke=3e3,xm={"claude-opus-4-7":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:jt,fastMultiplier:6},"claude-opus-4-6":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:jt,fastMultiplier:6},"claude-opus-4-5":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-opus-4-1":{inputCostPerToken:15e-6,outputCostPerToken:75e-6,cacheWriteCostPerToken:1875e-8,cacheReadCostPerToken:15e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-opus-4":{inputCostPerToken:15e-6,outputCostPerToken:75e-6,cacheWriteCostPerToken:1875e-8,cacheReadCostPerToken:15e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-sonnet-4-6":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-sonnet-4-5":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-sonnet-4":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-3-7-sonnet":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-3-5-sonnet":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-haiku-4-5":{inputCostPerToken:1e-6,outputCostPerToken:5e-6,cacheWriteCostPerToken:125e-8,cacheReadCostPerToken:1e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-3-5-haiku":{inputCostPerToken:8e-7,outputCostPerToken:4e-6,cacheWriteCostPerToken:1e-6,cacheReadCostPerToken:8e-8,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-4o":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-4o-mini":{inputCostPerToken:15e-8,outputCostPerToken:6e-7,cacheWriteCostPerToken:15e-8,cacheReadCostPerToken:75e-9,webSearchCostPerRequest:jt,fastMultiplier:1},"gemini-2.5-pro":{inputCostPerToken:125e-8,outputCostPerToken:1e-5,cacheWriteCostPerToken:125e-8,cacheReadCostPerToken:315e-9,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-5.4":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-5.4-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:2e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-5":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-5-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:2e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-4.1":{inputCostPerToken:2e-6,outputCostPerToken:8e-6,cacheWriteCostPerToken:2e-6,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-4.1-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:1e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-4.1-nano":{inputCostPerToken:1e-7,outputCostPerToken:4e-7,cacheWriteCostPerToken:1e-7,cacheReadCostPerToken:25e-9,webSearchCostPerRequest:jt,fastMultiplier:1},o3:{inputCostPerToken:1e-5,outputCostPerToken:4e-5,cacheWriteCostPerToken:1e-5,cacheReadCostPerToken:25e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"o4-mini":{inputCostPerToken:11e-7,outputCostPerToken:44e-7,cacheWriteCostPerToken:11e-7,cacheReadCostPerToken:275e-9,webSearchCostPerRequest:jt,fastMultiplier:1}};var G3={"anthropic--claude-4.6-opus":"claude-opus-4-6","anthropic--claude-4.6-sonnet":"claude-sonnet-4-6","anthropic--claude-4.5-opus":"claude-opus-4-5","anthropic--claude-4.5-sonnet":"claude-sonnet-4-5","anthropic--claude-4.5-haiku":"claude-haiku-4-5"},go=null,V3={},Yy=new Map,k1=new Set;function J3(){return(0,E1.join)((0,K3.homedir)(),".cache","pilot-console-pricing")}function Q3(){return(0,E1.join)(J3(),"litellm-pricing.json")}function Pke(t){return t.input_cost_per_token===void 0||t.output_cost_per_token===void 0?null:{inputCostPerToken:t.input_cost_per_token,outputCostPerToken:t.output_cost_per_token,cacheWriteCostPerToken:t.cache_creation_input_token_cost??t.input_cost_per_token*1.25,cacheReadCostPerToken:t.cache_read_input_token_cost??t.input_cost_per_token*.1,webSearchCostPerRequest:jt,fastMultiplier:t.provider_specific_entry?.fast??1}}async function Ike(){let t=new AbortController,e=setTimeout(()=>t.abort(),Rke);try{let r=await fetch(Eke,{signal:t.signal});if(!r.ok)throw new Error(`HTTP ${r.status}`);let n=await r.json(),s=new Map;for(let[i,a]of Object.entries(n)){let o=Pke(a);if(!o)continue;s.set(i,o);let c=i.replace(/^[^/]+\//,"");c!==i&&!s.has(c)&&s.set(c,o)}return await(0,El.mkdir)(J3(),{recursive:!0}),await(0,El.writeFile)(Q3(),JSON.stringify({timestamp:Date.now(),data:Object.fromEntries(s)})),s}finally{clearTimeout(e)}}async function Cke(){try{let t=await(0,El.readFile)(Q3(),"utf-8"),e=JSON.parse(t);return Date.now()-e.timestamp>Tke?null:new Map(Object.entries(e.data))}catch{return null}}async function Y3(){let t=await Cke();if(t){go=t,Yy.clear();return}try{go=await Ike()}catch{go=new Map(Object.entries(xm))}Yy.clear()}function Oke(t){return Object.hasOwn(V3,t)?V3[t]:Object.hasOwn(G3,t)?G3[t]:t}function Ake(t){return t.replace(/@.*$/,"").replace(/-\d{8}$/,"").replace(/^[^/]+\//,"")}function jke(t){let e=Yy.get(t);if(e!==void 0)return e;let r=Oke(Ake(t)),n=null;if(go?.has(r))n=go.get(r);else if(Object.hasOwn(xm,r))n=xm[r];else{for(let[s,i]of Object.entries(xm))if(r.startsWith(s+"-")||r===s){n=i;break}if(!n&&go){for(let[s,i]of go)if(r.startsWith(s+"-")){n=i;break}}if(!n){for(let[s,i]of Object.entries(xm))if(r.startsWith(s)){n=i;break}}}return Yy.set(t,n),n}var Nke=new Set(["","synthetic","unknown",""]);function Xy(t,e,r,n,s,i,a="standard"){if(Nke.has(t))return 0;let o=jke(t);return o?(a==="fast"?o.fastMultiplier:1)*(e*o.inputCostPerToken+r*o.outputCostPerToken+n*o.cacheWriteCostPerToken+s*o.cacheReadCostPerToken+i*o.webSearchCostPerRequest):(k1.add(t),0)}function vo(){let t=Array.from(k1);return k1.clear(),t}var Dke=(0,Tl.join)((0,tW.homedir)(),".claude","projects"),X3=50,eW=600*1e3,eb=5*1024*1024;function Mke(t){let e=0;for(let[r,n]of Object.entries(t))e+=Xy(r,n.input,n.output,n.cacheCreate,n.cacheRead,0,"standard");return Math.round(e*1e4)/1e4}var tb=class t{cache=new Map;pathCache=new Map;projectsBase;constructor(e){this.projectsBase=e??Dke}static encodeProjectRoot(e){return e.replace(/\//g,"-")}resolveJsonlPath(e,r){let n=this.pathCache.get(e);if(n&&(0,ks.existsSync)(n))return n;let s=`${e}.jsonl`;if(r){let i=t.encodeProjectRoot(r),a=(0,Tl.join)(this.projectsBase,i,s);if((0,ks.existsSync)(a))return this.pathCache.set(e,a),a}if(!(0,ks.existsSync)(this.projectsBase))return null;try{for(let i of(0,ks.readdirSync)(this.projectsBase,{withFileTypes:!0})){if(!i.isDirectory())continue;let a=(0,Tl.join)(this.projectsBase,i.name,s);if((0,ks.existsSync)(a))return this.pathCache.set(e,a),a}}catch{}return null}parseJsonlFile(e){let r;try{let a=(0,ks.statSync)(e);if(a.size>eb)return _.warn("SESSION",`File exceeds ${eb} bytes, skipping`,{path:e,size:a.size}),null;r=a.mtimeMs}catch{return null}let n=this.cache.get(e);if(n&&Date.now()-n.timestamp=X3){let a=this.cache.keys().next().value;a!==void 0&&this.cache.delete(a)}return this.cache.set(e,{stats:i,timestamp:Date.now(),mtimeMs:r}),i}async parseJsonlFileAsync(e){let r,n;try{let o=await(0,rb.stat)(e);n=o.size,r=o.mtimeMs}catch{return null}if(n>eb)return _.warn("SESSION",`File exceeds ${eb} bytes, skipping`,{path:e,size:n}),null;let s=this.cache.get(e);if(s&&Date.now()-s.timestamp=X3){let o=this.cache.keys().next().value;o!==void 0&&this.cache.delete(o)}return this.cache.set(e,{stats:a,timestamp:Date.now(),mtimeMs:r}),a}parseContent(e,r){let n=e.split(` -`).filter(h=>h.trim().length>0),s=null,i=0,a=0,o=!1,c={},l={},u={input:0,output:0,cacheRead:0,cacheCreate:0},p={},d=[];for(let h of n){let y;try{y=JSON.parse(h)}catch{continue}let b=y.type;if(!b)continue;s===null&&y.sessionId&&(s=y.sessionId);let x=y.timestamp;if(x){let w=new Date(x);isNaN(w.getTime())||d.push(w.getTime())}if(b==="user"){let w=y.content;Array.isArray(w)?w.some(k=>typeof k=="object"&&k!==null&&k.type==="text")&&i++:i++}else if(b==="assistant"){let w=y.message;if(!w)continue;a++;let S=w.model;if(S===""&&!w.isApiErrorMessage){let R=w.content;if(Array.isArray(R))for(let O of R)typeof O=="object"&&O!==null&&O.type==="text"&&O.text==="No response requested."&&(o=!0)}S&&S!==""&&S!=="unknown"&&(c[S]=(c[S]??0)+1);let k=w.usage;if(k){let R=k.input_tokens??0,O=k.output_tokens??0,C=k.cache_read_input_tokens??0,U=k.cache_creation_input_tokens??0;u.input+=R,u.output+=O,u.cacheRead+=C,u.cacheCreate+=U;let q=S||"unknown";p[q]||(p[q]={input:0,output:0,cacheRead:0,cacheCreate:0}),p[q].input+=R,p[q].output+=O,p[q].cacheRead+=C,p[q].cacheCreate+=U}let E=w.content;if(Array.isArray(E)){for(let R of E)if(typeof R=="object"&&R!==null&&R.type==="tool_use"){let O=R.name??"unknown";l[O]=(l[O]??0)+1}}}}let m=0,f=null,g=null;d.length>0&&(d.sort((h,y)=>h-y),f=new Date(d[0]).toISOString(),g=new Date(d[d.length-1]).toISOString(),m=Math.round((d[d.length-1]-d[0])/6e4*10)/10);let v={};for(let[h,y]of Object.entries(l).sort(([,b],[,x])=>x-b))v[h]=y;return s||(s=(0,Tl.basename)(r).replace(/\.jsonl$/,"")),{sessionId:s,turns:a,userMessages:i,assistantMessages:a,durationMinutes:m,models:c,tokens:u,tools:v,firstMessage:f,lastMessage:g,isResumed:o,costUsd:Mke(p)}}getStats(e,r){let n=this.resolveJsonlPath(e,r);return n?this.parseJsonlFile(n):null}async getStatsAsync(e,r){let n=this.resolveJsonlPath(e,r);return n?this.parseJsonlFileAsync(n):null}};Ln();var ob=class extends Te{constructor(r){super();this.searchManager=r}searchManager;setupRoutes(r){r.get("/api/search",this.handleUnifiedSearch.bind(this)),r.get("/api/search/semantic",this.handleSemanticSearch.bind(this)),r.get("/api/timeline",this.handleUnifiedTimeline.bind(this)),r.get("/api/decisions",this.handleDecisions.bind(this)),r.get("/api/changes",this.handleChanges.bind(this)),r.get("/api/how-it-works",this.handleHowItWorks.bind(this)),r.get("/api/search/observations",this.handleSearchObservations.bind(this)),r.get("/api/search/sessions",this.handleSearchSessions.bind(this)),r.get("/api/search/prompts",this.handleSearchPrompts.bind(this)),r.get("/api/search/by-concept",this.handleSearchByConcept.bind(this)),r.get("/api/search/by-file",this.handleSearchByFile.bind(this)),r.get("/api/search/by-type",this.handleSearchByType.bind(this)),r.get("/api/context/recent",this.handleGetRecentContext.bind(this)),r.get("/api/context/timeline",this.handleGetContextTimeline.bind(this)),r.get("/api/context/preview",this.handleContextPreview.bind(this)),r.get("/api/context/inject",this.handleContextInject.bind(this)),r.get("/api/timeline/by-query",this.handleGetTimelineByQuery.bind(this)),r.get("/api/search/help",this.handleSearchHelp.bind(this))}handleUnifiedSearch=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.search(r.query);n.json(s)});handleSemanticSearch=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.semanticSearchWithScores(r.query);n.json(s)});handleUnifiedTimeline=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.timeline(r.query);n.json(s)});handleDecisions=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.decisions(r.query);n.json(s)});handleChanges=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.changes(r.query);n.json(s)});handleHowItWorks=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.howItWorks(r.query);n.json(s)});handleSearchObservations=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchObservations(r.query);n.json(s)});handleSearchSessions=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchSessions(r.query);n.json(s)});handleSearchPrompts=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchUserPrompts(r.query);n.json(s)});handleSearchByConcept=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByConcept(r.query);n.json(s)});handleSearchByFile=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByFile(r.query);n.json(s)});handleSearchByType=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByType(r.query);n.json(s)});handleGetRecentContext=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getRecentContext(r.query);n.json(s)});handleGetContextTimeline=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getContextTimeline(r.query);n.json(s)});handleContextPreview=this.wrapHandler(async(r,n)=>{let s=r.query.project;if(!s){this.badRequest(n,"Project parameter is required");return}let{generateContext:i}=await Promise.resolve().then(()=>(z1(),M1)),a=`/preview/${s}`,o=await i({session_id:"preview-"+Date.now(),cwd:a},!0);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(o)});handleContextInject=this.wrapHandler(async(r,n)=>{let s=r.query.projects||r.query.project,i=r.query.colors==="true";if(!s){this.badRequest(n,"Project(s) parameter is required");return}let a=s.split(",").map(d=>d.trim()).filter(Boolean);if(a.length===0){this.badRequest(n,"At least one project is required");return}let{generateContext:o}=await Promise.resolve().then(()=>(z1(),M1)),l=`/context/${a[a.length-1]}`,u=r.query.planPath,p=await o({session_id:"context-inject-"+Date.now(),cwd:l,projects:a,planPath:u||void 0},i);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(p)});handleGetTimelineByQuery=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getTimelineByQuery(r.query);n.json(s)});handleSearchHelp=this.wrapHandler((r,n)=>{n.json({title:"Pilot Memory Search API",description:"HTTP API for searching persistent memory",endpoints:[{path:"/api/search/observations",method:"GET",description:"Search observations using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/sessions",method:"GET",description:"Search session summaries using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)"}},{path:"/api/search/prompts",method:"GET",description:"Search user prompts using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/by-concept",method:"GET",description:"Find observations by concept tag",parameters:{concept:"Concept tag (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-file",method:"GET",description:"Find observations and sessions by file path",parameters:{filePath:"File path or partial path (required)",limit:"Number of results per type (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-type",method:"GET",description:"Find observations by type",parameters:{type:"Observation type (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/context/recent",method:"GET",description:"Get recent session context including summaries and observations",parameters:{project:"Project name (default: current directory)",limit:"Number of recent sessions (default: 3)"}},{path:"/api/context/timeline",method:"GET",description:"Get unified timeline around a specific point in time",parameters:{anchor:'Anchor point: observation ID, session ID (e.g., "S123"), or ISO timestamp (required)',depth_before:"Number of records before anchor (default: 10)",depth_after:"Number of records after anchor (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/timeline/by-query",method:"GET",description:"Search for best match, then get timeline around it",parameters:{query:"Search query (required)",mode:'Search mode: "auto", "observations", or "sessions" (default: "auto")',depth_before:"Number of records before match (default: 10)",depth_after:"Number of records after match (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/help",method:"GET",description:"Get this help documentation"}],examples:(()=>{let s=dh();return[`curl "${s}/api/search/observations?query=authentication&limit=5"`,`curl "${s}/api/search/by-type?type=bugfix&limit=10"`,`curl "${s}/api/context/recent?project=pilot-memory&limit=3"`,`curl "${s}/api/context/timeline?anchor=123&depth_before=5&depth_after=5"`]})()})})};var bo=require("fs"),cb=require("path");re();Or();var lb=class extends Te{getLogFilePath(){let e=Ae.get("CLAUDE_PILOT_DATA_DIR"),r=(0,cb.join)(e,"logs"),n=new Date().toISOString().split("T")[0];return(0,cb.join)(r,`pilot-memory-${n}.log`)}getLogsDir(){let e=Ae.get("CLAUDE_PILOT_DATA_DIR");return(0,cb.join)(e,"logs")}setupRoutes(e){e.get("/api/logs",this.handleGetLogs.bind(this)),e.post("/api/logs/clear",this.handleClearLogs.bind(this))}handleGetLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,bo.existsSync)(n)){r.json({logs:"",path:n,exists:!1});return}let s=parseInt(e.query.lines||"1000",10),i=Math.min(s,1e4),o=(0,bo.readFileSync)(n,"utf-8").split(` + `).all(...u);n.json({range:s,project:i||"all",totals:{totalTokens:p.totalTokens||0,avgTokensPerObservation:Math.round(p.avgTokens||0),totalObservations:p.totalObservations||0},daily:d,byType:m})})};var Es=require("node:fs"),eb=require("node:fs/promises"),kl=require("node:path"),Q3=require("node:os");re();var El=require("node:fs/promises"),W3=require("node:os"),w1=require("node:path"),bEe="https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",xEe=1440*60*1e3,jt=.01,_Ee=3e3,bm={"claude-opus-4-7":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:jt,fastMultiplier:6},"claude-opus-4-6":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:jt,fastMultiplier:6},"claude-opus-4-5":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-opus-4-1":{inputCostPerToken:15e-6,outputCostPerToken:75e-6,cacheWriteCostPerToken:1875e-8,cacheReadCostPerToken:15e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-opus-4":{inputCostPerToken:15e-6,outputCostPerToken:75e-6,cacheWriteCostPerToken:1875e-8,cacheReadCostPerToken:15e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-sonnet-4-6":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-sonnet-4-5":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-sonnet-4":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-3-7-sonnet":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-3-5-sonnet":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-haiku-4-5":{inputCostPerToken:1e-6,outputCostPerToken:5e-6,cacheWriteCostPerToken:125e-8,cacheReadCostPerToken:1e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"claude-3-5-haiku":{inputCostPerToken:8e-7,outputCostPerToken:4e-6,cacheWriteCostPerToken:1e-6,cacheReadCostPerToken:8e-8,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-4o":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-4o-mini":{inputCostPerToken:15e-8,outputCostPerToken:6e-7,cacheWriteCostPerToken:15e-8,cacheReadCostPerToken:75e-9,webSearchCostPerRequest:jt,fastMultiplier:1},"gemini-2.5-pro":{inputCostPerToken:125e-8,outputCostPerToken:1e-5,cacheWriteCostPerToken:125e-8,cacheReadCostPerToken:315e-9,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-5.4":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-5.4-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:2e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-5":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-5-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:2e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-4.1":{inputCostPerToken:2e-6,outputCostPerToken:8e-6,cacheWriteCostPerToken:2e-6,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-4.1-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:1e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"gpt-4.1-nano":{inputCostPerToken:1e-7,outputCostPerToken:4e-7,cacheWriteCostPerToken:1e-7,cacheReadCostPerToken:25e-9,webSearchCostPerRequest:jt,fastMultiplier:1},o3:{inputCostPerToken:1e-5,outputCostPerToken:4e-5,cacheWriteCostPerToken:1e-5,cacheReadCostPerToken:25e-7,webSearchCostPerRequest:jt,fastMultiplier:1},"o4-mini":{inputCostPerToken:11e-7,outputCostPerToken:44e-7,cacheWriteCostPerToken:11e-7,cacheReadCostPerToken:275e-9,webSearchCostPerRequest:jt,fastMultiplier:1}};var H3={"anthropic--claude-4.6-opus":"claude-opus-4-6","anthropic--claude-4.6-sonnet":"claude-sonnet-4-6","anthropic--claude-4.5-opus":"claude-opus-4-5","anthropic--claude-4.5-sonnet":"claude-sonnet-4-5","anthropic--claude-4.5-haiku":"claude-haiku-4-5"},ho=null,B3={},Jy=new Map,_1=new Set;function Z3(){return(0,w1.join)((0,W3.homedir)(),".cache","pilot-console-pricing")}function G3(){return(0,w1.join)(Z3(),"litellm-pricing.json")}function wEe(t){return t.input_cost_per_token===void 0||t.output_cost_per_token===void 0?null:{inputCostPerToken:t.input_cost_per_token,outputCostPerToken:t.output_cost_per_token,cacheWriteCostPerToken:t.cache_creation_input_token_cost??t.input_cost_per_token*1.25,cacheReadCostPerToken:t.cache_read_input_token_cost??t.input_cost_per_token*.1,webSearchCostPerRequest:jt,fastMultiplier:t.provider_specific_entry?.fast??1}}async function SEe(){let t=new AbortController,e=setTimeout(()=>t.abort(),_Ee);try{let r=await fetch(bEe,{signal:t.signal});if(!r.ok)throw new Error(`HTTP ${r.status}`);let n=await r.json(),s=new Map;for(let[i,a]of Object.entries(n)){let o=wEe(a);if(!o)continue;s.set(i,o);let c=i.replace(/^[^/]+\//,"");c!==i&&!s.has(c)&&s.set(c,o)}return await(0,El.mkdir)(Z3(),{recursive:!0}),await(0,El.writeFile)(G3(),JSON.stringify({timestamp:Date.now(),data:Object.fromEntries(s)})),s}finally{clearTimeout(e)}}async function EEe(){try{let t=await(0,El.readFile)(G3(),"utf-8"),e=JSON.parse(t);return Date.now()-e.timestamp>xEe?null:new Map(Object.entries(e.data))}catch{return null}}async function V3(){let t=await EEe();if(t){ho=t,Jy.clear();return}try{ho=await SEe()}catch{ho=new Map(Object.entries(bm))}Jy.clear()}function kEe(t){return Object.hasOwn(B3,t)?B3[t]:Object.hasOwn(H3,t)?H3[t]:t}function TEe(t){return t.replace(/@.*$/,"").replace(/-\d{8}$/,"").replace(/^[^/]+\//,"")}function REe(t){let e=Jy.get(t);if(e!==void 0)return e;let r=kEe(TEe(t)),n=null;if(ho?.has(r))n=ho.get(r);else if(Object.hasOwn(bm,r))n=bm[r];else{for(let[s,i]of Object.entries(bm))if(r.startsWith(s+"-")||r===s){n=i;break}if(!n&&ho){for(let[s,i]of ho)if(r.startsWith(s+"-")){n=i;break}}if(!n){for(let[s,i]of Object.entries(bm))if(r.startsWith(s)){n=i;break}}}return Jy.set(t,n),n}var PEe=new Set(["","synthetic","unknown",""]);function Qy(t,e,r,n,s,i,a="standard"){if(PEe.has(t))return 0;let o=REe(t);return o?(a==="fast"?o.fastMultiplier:1)*(e*o.inputCostPerToken+r*o.outputCostPerToken+n*o.cacheWriteCostPerToken+s*o.cacheReadCostPerToken+i*o.webSearchCostPerRequest):(_1.add(t),0)}function go(){let t=Array.from(_1);return _1.clear(),t}var IEe=(0,kl.join)((0,Q3.homedir)(),".claude","projects"),K3=50,J3=600*1e3,Yy=5*1024*1024;function CEe(t){let e=0;for(let[r,n]of Object.entries(t))e+=Qy(r,n.input,n.output,n.cacheCreate,n.cacheRead,0,"standard");return Math.round(e*1e4)/1e4}var Xy=class t{cache=new Map;pathCache=new Map;projectsBase;constructor(e){this.projectsBase=e??IEe}static encodeProjectRoot(e){return e.replace(/\//g,"-")}resolveJsonlPath(e,r){let n=this.pathCache.get(e);if(n&&(0,Es.existsSync)(n))return n;let s=`${e}.jsonl`;if(r){let i=t.encodeProjectRoot(r),a=(0,kl.join)(this.projectsBase,i,s);if((0,Es.existsSync)(a))return this.pathCache.set(e,a),a}if(!(0,Es.existsSync)(this.projectsBase))return null;try{for(let i of(0,Es.readdirSync)(this.projectsBase,{withFileTypes:!0})){if(!i.isDirectory())continue;let a=(0,kl.join)(this.projectsBase,i.name,s);if((0,Es.existsSync)(a))return this.pathCache.set(e,a),a}}catch{}return null}parseJsonlFile(e){let r;try{let a=(0,Es.statSync)(e);if(a.size>Yy)return _.warn("SESSION",`File exceeds ${Yy} bytes, skipping`,{path:e,size:a.size}),null;r=a.mtimeMs}catch{return null}let n=this.cache.get(e);if(n&&Date.now()-n.timestamp=K3){let a=this.cache.keys().next().value;a!==void 0&&this.cache.delete(a)}return this.cache.set(e,{stats:i,timestamp:Date.now(),mtimeMs:r}),i}async parseJsonlFileAsync(e){let r,n;try{let o=await(0,eb.stat)(e);n=o.size,r=o.mtimeMs}catch{return null}if(n>Yy)return _.warn("SESSION",`File exceeds ${Yy} bytes, skipping`,{path:e,size:n}),null;let s=this.cache.get(e);if(s&&Date.now()-s.timestamp=K3){let o=this.cache.keys().next().value;o!==void 0&&this.cache.delete(o)}return this.cache.set(e,{stats:a,timestamp:Date.now(),mtimeMs:r}),a}parseContent(e,r){let n=e.split(` +`).filter(h=>h.trim().length>0),s=null,i=0,a=0,o=!1,c={},l={},u={input:0,output:0,cacheRead:0,cacheCreate:0},p={},d=[];for(let h of n){let y;try{y=JSON.parse(h)}catch{continue}let b=y.type;if(!b)continue;s===null&&y.sessionId&&(s=y.sessionId);let x=y.timestamp;if(x){let w=new Date(x);isNaN(w.getTime())||d.push(w.getTime())}if(b==="user"){let w=y.content;Array.isArray(w)?w.some(E=>typeof E=="object"&&E!==null&&E.type==="text")&&i++:i++}else if(b==="assistant"){let w=y.message;if(!w)continue;a++;let S=w.model;if(S===""&&!w.isApiErrorMessage){let R=w.content;if(Array.isArray(R))for(let O of R)typeof O=="object"&&O!==null&&O.type==="text"&&O.text==="No response requested."&&(o=!0)}S&&S!==""&&S!=="unknown"&&(c[S]=(c[S]??0)+1);let E=w.usage;if(E){let R=E.input_tokens??0,O=E.output_tokens??0,C=E.cache_read_input_tokens??0,U=E.cache_creation_input_tokens??0;u.input+=R,u.output+=O,u.cacheRead+=C,u.cacheCreate+=U;let q=S||"unknown";p[q]||(p[q]={input:0,output:0,cacheRead:0,cacheCreate:0}),p[q].input+=R,p[q].output+=O,p[q].cacheRead+=C,p[q].cacheCreate+=U}let k=w.content;if(Array.isArray(k)){for(let R of k)if(typeof R=="object"&&R!==null&&R.type==="tool_use"){let O=R.name??"unknown";l[O]=(l[O]??0)+1}}}}let m=0,f=null,g=null;d.length>0&&(d.sort((h,y)=>h-y),f=new Date(d[0]).toISOString(),g=new Date(d[d.length-1]).toISOString(),m=Math.round((d[d.length-1]-d[0])/6e4*10)/10);let v={};for(let[h,y]of Object.entries(l).sort(([,b],[,x])=>x-b))v[h]=y;return s||(s=(0,kl.basename)(r).replace(/\.jsonl$/,"")),{sessionId:s,turns:a,userMessages:i,assistantMessages:a,durationMinutes:m,models:c,tokens:u,tools:v,firstMessage:f,lastMessage:g,isResumed:o,costUsd:CEe(p)}}getStats(e,r){let n=this.resolveJsonlPath(e,r);return n?this.parseJsonlFile(n):null}async getStatsAsync(e,r){let n=this.resolveJsonlPath(e,r);return n?this.parseJsonlFileAsync(n):null}};Ln();var ib=class extends Te{constructor(r){super();this.searchManager=r}searchManager;setupRoutes(r){r.get("/api/search",this.handleUnifiedSearch.bind(this)),r.get("/api/search/semantic",this.handleSemanticSearch.bind(this)),r.get("/api/timeline",this.handleUnifiedTimeline.bind(this)),r.get("/api/decisions",this.handleDecisions.bind(this)),r.get("/api/changes",this.handleChanges.bind(this)),r.get("/api/how-it-works",this.handleHowItWorks.bind(this)),r.get("/api/search/observations",this.handleSearchObservations.bind(this)),r.get("/api/search/sessions",this.handleSearchSessions.bind(this)),r.get("/api/search/prompts",this.handleSearchPrompts.bind(this)),r.get("/api/search/by-concept",this.handleSearchByConcept.bind(this)),r.get("/api/search/by-file",this.handleSearchByFile.bind(this)),r.get("/api/search/by-type",this.handleSearchByType.bind(this)),r.get("/api/context/recent",this.handleGetRecentContext.bind(this)),r.get("/api/context/timeline",this.handleGetContextTimeline.bind(this)),r.get("/api/context/preview",this.handleContextPreview.bind(this)),r.get("/api/context/inject",this.handleContextInject.bind(this)),r.get("/api/timeline/by-query",this.handleGetTimelineByQuery.bind(this)),r.get("/api/search/help",this.handleSearchHelp.bind(this))}handleUnifiedSearch=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.search(r.query);n.json(s)});handleSemanticSearch=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.semanticSearchWithScores(r.query);n.json(s)});handleUnifiedTimeline=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.timeline(r.query);n.json(s)});handleDecisions=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.decisions(r.query);n.json(s)});handleChanges=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.changes(r.query);n.json(s)});handleHowItWorks=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.howItWorks(r.query);n.json(s)});handleSearchObservations=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchObservations(r.query);n.json(s)});handleSearchSessions=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchSessions(r.query);n.json(s)});handleSearchPrompts=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchUserPrompts(r.query);n.json(s)});handleSearchByConcept=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByConcept(r.query);n.json(s)});handleSearchByFile=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByFile(r.query);n.json(s)});handleSearchByType=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByType(r.query);n.json(s)});handleGetRecentContext=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getRecentContext(r.query);n.json(s)});handleGetContextTimeline=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getContextTimeline(r.query);n.json(s)});handleContextPreview=this.wrapHandler(async(r,n)=>{let s=r.query.project;if(!s){this.badRequest(n,"Project parameter is required");return}let{generateContext:i}=await Promise.resolve().then(()=>(N1(),j1)),a=`/preview/${s}`,o=await i({session_id:"preview-"+Date.now(),cwd:a},!0);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(o)});handleContextInject=this.wrapHandler(async(r,n)=>{let s=r.query.projects||r.query.project,i=r.query.colors==="true";if(!s){this.badRequest(n,"Project(s) parameter is required");return}let a=s.split(",").map(d=>d.trim()).filter(Boolean);if(a.length===0){this.badRequest(n,"At least one project is required");return}let{generateContext:o}=await Promise.resolve().then(()=>(N1(),j1)),l=`/context/${a[a.length-1]}`,u=r.query.planPath,p=await o({session_id:"context-inject-"+Date.now(),cwd:l,projects:a,planPath:u||void 0},i);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(p)});handleGetTimelineByQuery=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getTimelineByQuery(r.query);n.json(s)});handleSearchHelp=this.wrapHandler((r,n)=>{n.json({title:"Pilot Memory Search API",description:"HTTP API for searching persistent memory",endpoints:[{path:"/api/search/observations",method:"GET",description:"Search observations using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/sessions",method:"GET",description:"Search session summaries using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)"}},{path:"/api/search/prompts",method:"GET",description:"Search user prompts using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/by-concept",method:"GET",description:"Find observations by concept tag",parameters:{concept:"Concept tag (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-file",method:"GET",description:"Find observations and sessions by file path",parameters:{filePath:"File path or partial path (required)",limit:"Number of results per type (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-type",method:"GET",description:"Find observations by type",parameters:{type:"Observation type (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/context/recent",method:"GET",description:"Get recent session context including summaries and observations",parameters:{project:"Project name (default: current directory)",limit:"Number of recent sessions (default: 3)"}},{path:"/api/context/timeline",method:"GET",description:"Get unified timeline around a specific point in time",parameters:{anchor:'Anchor point: observation ID, session ID (e.g., "S123"), or ISO timestamp (required)',depth_before:"Number of records before anchor (default: 10)",depth_after:"Number of records after anchor (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/timeline/by-query",method:"GET",description:"Search for best match, then get timeline around it",parameters:{query:"Search query (required)",mode:'Search mode: "auto", "observations", or "sessions" (default: "auto")',depth_before:"Number of records before match (default: 10)",depth_after:"Number of records after match (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/help",method:"GET",description:"Get this help documentation"}],examples:(()=>{let s=uh();return[`curl "${s}/api/search/observations?query=authentication&limit=5"`,`curl "${s}/api/search/by-type?type=bugfix&limit=10"`,`curl "${s}/api/context/recent?project=pilot-memory&limit=3"`,`curl "${s}/api/context/timeline?anchor=123&depth_before=5&depth_after=5"`]})()})})};var yo=require("fs"),ab=require("path");re();Or();var ob=class extends Te{getLogFilePath(){let e=Ae.get("CLAUDE_PILOT_DATA_DIR"),r=(0,ab.join)(e,"logs"),n=new Date().toISOString().split("T")[0];return(0,ab.join)(r,`pilot-memory-${n}.log`)}getLogsDir(){let e=Ae.get("CLAUDE_PILOT_DATA_DIR");return(0,ab.join)(e,"logs")}setupRoutes(e){e.get("/api/logs",this.handleGetLogs.bind(this)),e.post("/api/logs/clear",this.handleClearLogs.bind(this))}handleGetLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,yo.existsSync)(n)){r.json({logs:"",path:n,exists:!1});return}let s=parseInt(e.query.lines||"1000",10),i=Math.min(s,1e4),o=(0,yo.readFileSync)(n,"utf-8").split(` `),c=Math.max(0,o.length-i),l=o.slice(c).join(` -`);r.json({logs:l,path:n,exists:!0,totalLines:o.length,returnedLines:o.length-c})});handleClearLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,bo.existsSync)(n)){r.json({success:!0,message:"Log file does not exist",path:n});return}(0,bo.writeFileSync)(n,"","utf-8"),_.info("SYSTEM","Log file cleared via UI",{path:n}),r.json({success:!0,message:"Log file cleared",path:n})})};re();var ub=class extends Te{constructor(r,n){super();this.dbManager=r;this.defaultProject=n}dbManager;defaultProject;setupRoutes(r){r.post("/api/memory/save",this.handleSaveMemory.bind(this))}handleSaveMemory=this.wrapHandler(async(r,n)=>{let{text:s,title:i,project:a}=r.body,o=a||this.defaultProject;if(!s||typeof s!="string"||s.trim().length===0){this.badRequest(n,"text is required and must be non-empty");return}let c=this.dbManager.getSessionStore(),l=this.dbManager.getChromaSync(),u=c.getOrCreateManualSession(o),p={type:"discovery",title:i||s.substring(0,60).trim()+(s.length>60?"...":""),subtitle:"Manual memory",facts:[],narrative:s,concepts:[],files_read:[],files_modified:[]},d=c.storeObservation(u,o,p,0,0);_.info("MEMORY","Manual observation saved",{id:d.id,project:o,title:p.title}),l.syncObservation(d.id,u,o,p,0,d.createdAtEpoch,0).catch(m=>{_.error("MEMORY","ChromaDB sync failed",{id:d.id},m)}),n.json({success:!0,id:d.id,title:p.title,project:o,message:`Memory saved as observation #${d.id}`})})};var sZ=Q(rd(),1),Xr=Q(require("path"),1),$e=require("fs"),Em=require("zlib"),iZ=require("stream/promises"),Cl=require("os");re();var pb=class extends Error{constructor(){super("Decompressed size exceeds limit"),this.name="DecompressionLimitError"}},db=class t extends Te{constructor(r){super();this.dbManager=r;this.backupDir=Xr.default.join((0,Cl.homedir)(),".pilot/memory","backups"),this.ensureBackupDir()}dbManager;backupDir;static BACKUP_FILENAME_RE=/^pilot-memory-[\w-]+\.(backup\.gz|backup\.json|metadata\.json)$/;isValidBackupFilename(r){return t.BACKUP_FILENAME_RE.test(r)}setupRoutes(r){r.get("/api/backups",this.handleListBackups.bind(this)),r.post("/api/backups/create",this.handleCreateBackup.bind(this)),r.delete("/api/backups/:filename",this.handleDeleteBackup.bind(this)),r.get("/api/backups/:filename/download",this.handleDownloadBackup.bind(this)),r.post("/api/backups/:filename/restore",this.handleRestoreBackup.bind(this)),r.post("/api/backups/restore/upload",sZ.default.raw({limit:"500mb",type:"application/gzip"}),this.handleRestoreFromUpload.bind(this)),r.get("/api/backups/:filename/info",this.handleGetBackupInfo.bind(this))}handleListBackups=this.wrapHandler((r,n)=>{let s=[];if((0,$e.existsSync)(this.backupDir)){let i=(0,$e.readdirSync)(this.backupDir).filter(a=>a.endsWith(".backup.gz")||a.endsWith(".backup.json")).sort((a,o)=>o.localeCompare(a));for(let a of i){let o=Xr.default.join(this.backupDir,a),c=(0,$e.statSync)(o),l={filename:a,path:o,createdAt:c.mtime.toISOString(),sizeBytes:c.size},u=o.replace(/\.(backup\.gz|backup\.json)$/,".metadata.json");if((0,$e.existsSync)(u))try{l.metadata=JSON.parse((0,$e.readFileSync)(u,"utf-8"))}catch{}s.push(l)}}n.json({backupDir:this.backupDir,backups:s,totalCount:s.length})});handleCreateBackup=this.wrapHandler(async(r,n)=>{let s=r.body.includeSettings!==!1,i=r.body.compress!==!1,o=`pilot-memory-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}`,c=i?`${o}.backup.gz`:`${o}.backup.json`,l=Xr.default.join(this.backupDir,c),u=Xr.default.join(this.backupDir,`${o}.metadata.json`);_.info("BACKUP","Creating backup",{backupPath:l,includeSettings:s,compress:i});let d=this.dbManager.getSessionStore().db,m=d.prepare("SELECT * FROM sdk_sessions").all(),f=d.prepare("SELECT * FROM session_summaries").all(),g=d.prepare("SELECT * FROM observations").all(),v=d.prepare("SELECT * FROM user_prompts").all(),h=null,y=Xr.default.join((0,Cl.homedir)(),".pilot/memory","settings.json");if(s&&(0,$e.existsSync)(y))try{if(h=JSON.parse((0,$e.readFileSync)(y,"utf-8")),h&&typeof h=="object"){let R=["CLAUDE_PILOT_REMOTE_TOKEN"];for(let O of R)O in h&&h[O]&&(h[O]="")}}catch(R){_.warn("BACKUP","Failed to read settings",{},R)}let b=Xr.default.join((0,Cl.homedir)(),".pilot/memory","pilot-memory.db"),x=0;(0,$e.existsSync)(b)&&(x=(0,$e.statSync)(b).size);let w={version:"1.0",createdAt:new Date().toISOString(),data:{sessions:m,summaries:f,observations:g,prompts:v,settings:h}},S={version:"1.0",createdAt:new Date().toISOString(),createdAtEpoch:Date.now(),contents:{database:!0,settings:s&&h!==null},stats:{observations:g.length,sessions:m.length,summaries:f.length,prompts:v.length,dbSizeBytes:x}},k=JSON.stringify(w,null,2);if(i){let R=(0,Em.createGzip)(),O=(0,$e.createWriteStream)(l);await(0,iZ.pipeline)((async function*(){yield k})(),R,O)}else(0,$e.writeFileSync)(l,k,"utf-8");(0,$e.writeFileSync)(u,JSON.stringify(S,null,2),"utf-8");let E=(0,$e.statSync)(l);_.info("BACKUP","Backup created successfully",{filename:c,sizeBytes:E.size,observations:g.length}),n.json({success:!0,filename:c,path:l,sizeBytes:E.size,metadata:S})});handleDeleteBackup=this.wrapHandler((r,n)=>{let{filename:s}=r.params;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let i=Xr.default.join(this.backupDir,s),a=s.replace(/\.(backup\.gz|backup\.json)$/,""),o=Xr.default.join(this.backupDir,`${a}.metadata.json`);if(!(0,$e.existsSync)(i)){this.notFound(n,"Backup not found");return}(0,$e.unlinkSync)(i),(0,$e.existsSync)(o)&&(0,$e.unlinkSync)(o),_.info("BACKUP","Backup deleted",{filename:s}),n.json({success:!0,filename:s})});handleDownloadBackup=this.wrapHandler((r,n)=>{let{filename:s}=r.params;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let i=Xr.default.join(this.backupDir,s);if(!(0,$e.existsSync)(i)){this.notFound(n,"Backup not found");return}let a=s.replace(/[^a-zA-Z0-9._-]/g,"_");n.setHeader("Content-Disposition",`attachment; filename="${a}"`),n.setHeader("Content-Type",s.endsWith(".gz")?"application/gzip":"application/json"),(0,$e.createReadStream)(i).pipe(n)});handleRestoreBackup=this.wrapHandler(async(r,n)=>{let{filename:s}=r.params,i=r.body.restoreSettings===!0,a=r.body.clearExisting===!0;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let o=Xr.default.join(this.backupDir,s);if(!(0,$e.existsSync)(o)){this.notFound(n,"Backup not found");return}_.info("BACKUP","Starting restore",{filename:s,restoreSettings:i,clearExisting:a});let c;try{if(s.endsWith(".gz")){let d=[],m=(0,Em.createGunzip)(),f=(0,$e.createReadStream)(o);await new Promise((g,v)=>{f.pipe(m).on("data",h=>d.push(h)).on("end",()=>g()).on("error",v)}),c=JSON.parse(Buffer.concat(d).toString("utf-8"))}else c=JSON.parse((0,$e.readFileSync)(o,"utf-8"))}catch(d){_.error("BACKUP","Failed to read backup",{filename:s},d),this.badRequest(n,"Invalid or corrupted backup file");return}if(!c.data||!c.version){this.badRequest(n,"Invalid backup format");return}let l=this.dbManager.getSessionStore(),u={sessionsRestored:0,sessionsSkipped:0,summariesRestored:0,summariesSkipped:0,observationsRestored:0,observationsSkipped:0,promptsRestored:0,promptsSkipped:0,settingsRestored:!1},p=l.db.transaction(()=>{if(a&&(l.db.exec(` +`);r.json({logs:l,path:n,exists:!0,totalLines:o.length,returnedLines:o.length-c})});handleClearLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,yo.existsSync)(n)){r.json({success:!0,message:"Log file does not exist",path:n});return}(0,yo.writeFileSync)(n,"","utf-8"),_.info("SYSTEM","Log file cleared via UI",{path:n}),r.json({success:!0,message:"Log file cleared",path:n})})};re();var cb=class extends Te{constructor(r,n){super();this.dbManager=r;this.defaultProject=n}dbManager;defaultProject;setupRoutes(r){r.post("/api/memory/save",this.handleSaveMemory.bind(this))}handleSaveMemory=this.wrapHandler(async(r,n)=>{let{text:s,title:i,project:a}=r.body,o=a||this.defaultProject;if(!s||typeof s!="string"||s.trim().length===0){this.badRequest(n,"text is required and must be non-empty");return}let c=this.dbManager.getSessionStore(),l=this.dbManager.getChromaSync(),u=c.getOrCreateManualSession(o),p={type:"discovery",title:i||s.substring(0,60).trim()+(s.length>60?"...":""),subtitle:"Manual memory",facts:[],narrative:s,concepts:[],files_read:[],files_modified:[]},d=c.storeObservation(u,o,p,0,0);_.info("MEMORY","Manual observation saved",{id:d.id,project:o,title:p.title}),l.syncObservation(d.id,u,o,p,0,d.createdAtEpoch,0).catch(m=>{_.error("MEMORY","ChromaDB sync failed",{id:d.id},m)}),n.json({success:!0,id:d.id,title:p.title,project:o,message:`Memory saved as observation #${d.id}`})})};var eZ=Q(td(),1),Xr=Q(require("path"),1),$e=require("fs"),Em=require("zlib"),tZ=require("stream/promises"),Il=require("os");re();var lb=class extends Error{constructor(){super("Decompressed size exceeds limit"),this.name="DecompressionLimitError"}},ub=class t extends Te{constructor(r){super();this.dbManager=r;this.backupDir=Xr.default.join((0,Il.homedir)(),".pilot/memory","backups"),this.ensureBackupDir()}dbManager;backupDir;static BACKUP_FILENAME_RE=/^pilot-memory-[\w-]+\.(backup\.gz|backup\.json|metadata\.json)$/;isValidBackupFilename(r){return t.BACKUP_FILENAME_RE.test(r)}setupRoutes(r){r.get("/api/backups",this.handleListBackups.bind(this)),r.post("/api/backups/create",this.handleCreateBackup.bind(this)),r.delete("/api/backups/:filename",this.handleDeleteBackup.bind(this)),r.get("/api/backups/:filename/download",this.handleDownloadBackup.bind(this)),r.post("/api/backups/:filename/restore",this.handleRestoreBackup.bind(this)),r.post("/api/backups/restore/upload",eZ.default.raw({limit:"500mb",type:"application/gzip"}),this.handleRestoreFromUpload.bind(this)),r.get("/api/backups/:filename/info",this.handleGetBackupInfo.bind(this))}handleListBackups=this.wrapHandler((r,n)=>{let s=[];if((0,$e.existsSync)(this.backupDir)){let i=(0,$e.readdirSync)(this.backupDir).filter(a=>a.endsWith(".backup.gz")||a.endsWith(".backup.json")).sort((a,o)=>o.localeCompare(a));for(let a of i){let o=Xr.default.join(this.backupDir,a),c=(0,$e.statSync)(o),l={filename:a,path:o,createdAt:c.mtime.toISOString(),sizeBytes:c.size},u=o.replace(/\.(backup\.gz|backup\.json)$/,".metadata.json");if((0,$e.existsSync)(u))try{l.metadata=JSON.parse((0,$e.readFileSync)(u,"utf-8"))}catch{}s.push(l)}}n.json({backupDir:this.backupDir,backups:s,totalCount:s.length})});handleCreateBackup=this.wrapHandler(async(r,n)=>{let s=r.body.includeSettings!==!1,i=r.body.compress!==!1,o=`pilot-memory-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}`,c=i?`${o}.backup.gz`:`${o}.backup.json`,l=Xr.default.join(this.backupDir,c),u=Xr.default.join(this.backupDir,`${o}.metadata.json`);_.info("BACKUP","Creating backup",{backupPath:l,includeSettings:s,compress:i});let d=this.dbManager.getSessionStore().db,m=d.prepare("SELECT * FROM sdk_sessions").all(),f=d.prepare("SELECT * FROM session_summaries").all(),g=d.prepare("SELECT * FROM observations").all(),v=d.prepare("SELECT * FROM user_prompts").all(),h=null,y=Xr.default.join((0,Il.homedir)(),".pilot/memory","settings.json");if(s&&(0,$e.existsSync)(y))try{if(h=JSON.parse((0,$e.readFileSync)(y,"utf-8")),h&&typeof h=="object"){let R=["CLAUDE_PILOT_REMOTE_TOKEN"];for(let O of R)O in h&&h[O]&&(h[O]="")}}catch(R){_.warn("BACKUP","Failed to read settings",{},R)}let b=Xr.default.join((0,Il.homedir)(),".pilot/memory","pilot-memory.db"),x=0;(0,$e.existsSync)(b)&&(x=(0,$e.statSync)(b).size);let w={version:"1.0",createdAt:new Date().toISOString(),data:{sessions:m,summaries:f,observations:g,prompts:v,settings:h}},S={version:"1.0",createdAt:new Date().toISOString(),createdAtEpoch:Date.now(),contents:{database:!0,settings:s&&h!==null},stats:{observations:g.length,sessions:m.length,summaries:f.length,prompts:v.length,dbSizeBytes:x}},E=JSON.stringify(w,null,2);if(i){let R=(0,Em.createGzip)(),O=(0,$e.createWriteStream)(l);await(0,tZ.pipeline)((async function*(){yield E})(),R,O)}else(0,$e.writeFileSync)(l,E,"utf-8");(0,$e.writeFileSync)(u,JSON.stringify(S,null,2),"utf-8");let k=(0,$e.statSync)(l);_.info("BACKUP","Backup created successfully",{filename:c,sizeBytes:k.size,observations:g.length}),n.json({success:!0,filename:c,path:l,sizeBytes:k.size,metadata:S})});handleDeleteBackup=this.wrapHandler((r,n)=>{let{filename:s}=r.params;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let i=Xr.default.join(this.backupDir,s),a=s.replace(/\.(backup\.gz|backup\.json)$/,""),o=Xr.default.join(this.backupDir,`${a}.metadata.json`);if(!(0,$e.existsSync)(i)){this.notFound(n,"Backup not found");return}(0,$e.unlinkSync)(i),(0,$e.existsSync)(o)&&(0,$e.unlinkSync)(o),_.info("BACKUP","Backup deleted",{filename:s}),n.json({success:!0,filename:s})});handleDownloadBackup=this.wrapHandler((r,n)=>{let{filename:s}=r.params;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let i=Xr.default.join(this.backupDir,s);if(!(0,$e.existsSync)(i)){this.notFound(n,"Backup not found");return}let a=s.replace(/[^a-zA-Z0-9._-]/g,"_");n.setHeader("Content-Disposition",`attachment; filename="${a}"`),n.setHeader("Content-Type",s.endsWith(".gz")?"application/gzip":"application/json"),(0,$e.createReadStream)(i).pipe(n)});handleRestoreBackup=this.wrapHandler(async(r,n)=>{let{filename:s}=r.params,i=r.body.restoreSettings===!0,a=r.body.clearExisting===!0;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let o=Xr.default.join(this.backupDir,s);if(!(0,$e.existsSync)(o)){this.notFound(n,"Backup not found");return}_.info("BACKUP","Starting restore",{filename:s,restoreSettings:i,clearExisting:a});let c;try{if(s.endsWith(".gz")){let d=[],m=(0,Em.createGunzip)(),f=(0,$e.createReadStream)(o);await new Promise((g,v)=>{f.pipe(m).on("data",h=>d.push(h)).on("end",()=>g()).on("error",v)}),c=JSON.parse(Buffer.concat(d).toString("utf-8"))}else c=JSON.parse((0,$e.readFileSync)(o,"utf-8"))}catch(d){_.error("BACKUP","Failed to read backup",{filename:s},d),this.badRequest(n,"Invalid or corrupted backup file");return}if(!c.data||!c.version){this.badRequest(n,"Invalid backup format");return}let l=this.dbManager.getSessionStore(),u={sessionsRestored:0,sessionsSkipped:0,summariesRestored:0,summariesSkipped:0,observationsRestored:0,observationsSkipped:0,promptsRestored:0,promptsSkipped:0,settingsRestored:!1},p=l.db.transaction(()=>{if(a&&(l.db.exec(` DELETE FROM observations; DELETE FROM session_summaries; DELETE FROM user_prompts; DELETE FROM sdk_sessions; - `),_.info("BACKUP","Cleared existing data")),Array.isArray(c.data.sessions))for(let d of c.data.sessions)l.importSdkSession(d).imported?u.sessionsRestored++:u.sessionsSkipped++;if(Array.isArray(c.data.summaries))for(let d of c.data.summaries)l.importSessionSummary(d).imported?u.summariesRestored++:u.summariesSkipped++;if(Array.isArray(c.data.observations))for(let d of c.data.observations)l.importObservation(d).imported?u.observationsRestored++:u.observationsSkipped++;if(Array.isArray(c.data.prompts))for(let d of c.data.prompts)l.importUserPrompt(d).imported?u.promptsRestored++:u.promptsSkipped++});try{p()}catch(d){_.error("BACKUP","Restore failed \u2014 transaction rolled back",{filename:s},d),n.status(500).json({error:"Restore failed \u2014 existing data preserved"});return}if(i&&c.data.settings){let d=Xr.default.join((0,Cl.homedir)(),".pilot/memory","settings.json");(0,$e.writeFileSync)(d,JSON.stringify(c.data.settings,null,2),"utf-8"),u.settingsRestored=!0,_.info("BACKUP","Settings restored")}_.info("BACKUP","Restore completed",u),n.json({success:!0,filename:s,stats:u})});handleRestoreFromUpload=this.wrapHandler(async(r,n)=>{let s=r.query.restoreSettings==="true",i=r.query.clearExisting==="true";if(!r.body||r.body.length===0){this.badRequest(n,"No backup data provided");return}_.info("BACKUP","Starting restore from upload",{sizeBytes:r.body.length,restoreSettings:s,clearExisting:i});let a=200*1024*1024,o;try{let p=(0,Em.createGunzip)(),d=[],m=0;await new Promise((f,g)=>{p.on("data",v=>{if(m+=v.length,m>a){p.destroy(),g(new pb);return}d.push(v)}),p.on("end",()=>f()),p.on("error",()=>{try{o=JSON.parse(r.body.toString("utf-8")),f()}catch{g(new Error("Invalid backup format"))}}),p.end(r.body)}),o||(o=JSON.parse(Buffer.concat(d).toString("utf-8")))}catch(p){if(p instanceof pb){n.status(413).json({error:"Backup too large: decompressed size exceeds 200MB limit"});return}_.error("BACKUP","Failed to parse uploaded backup",{},p),this.badRequest(n,"Invalid or corrupted backup file");return}if(!o.data||!o.version){this.badRequest(n,"Invalid backup format");return}let c=this.dbManager.getSessionStore(),l={sessionsRestored:0,sessionsSkipped:0,summariesRestored:0,summariesSkipped:0,observationsRestored:0,observationsSkipped:0,promptsRestored:0,promptsSkipped:0,settingsRestored:!1},u=c.db.transaction(()=>{if(i&&(c.db.exec(` + `),_.info("BACKUP","Cleared existing data")),Array.isArray(c.data.sessions))for(let d of c.data.sessions)l.importSdkSession(d).imported?u.sessionsRestored++:u.sessionsSkipped++;if(Array.isArray(c.data.summaries))for(let d of c.data.summaries)l.importSessionSummary(d).imported?u.summariesRestored++:u.summariesSkipped++;if(Array.isArray(c.data.observations))for(let d of c.data.observations)l.importObservation(d).imported?u.observationsRestored++:u.observationsSkipped++;if(Array.isArray(c.data.prompts))for(let d of c.data.prompts)l.importUserPrompt(d).imported?u.promptsRestored++:u.promptsSkipped++});try{p()}catch(d){_.error("BACKUP","Restore failed \u2014 transaction rolled back",{filename:s},d),n.status(500).json({error:"Restore failed \u2014 existing data preserved"});return}if(i&&c.data.settings){let d=Xr.default.join((0,Il.homedir)(),".pilot/memory","settings.json");(0,$e.writeFileSync)(d,JSON.stringify(c.data.settings,null,2),"utf-8"),u.settingsRestored=!0,_.info("BACKUP","Settings restored")}_.info("BACKUP","Restore completed",u),n.json({success:!0,filename:s,stats:u})});handleRestoreFromUpload=this.wrapHandler(async(r,n)=>{let s=r.query.restoreSettings==="true",i=r.query.clearExisting==="true";if(!r.body||r.body.length===0){this.badRequest(n,"No backup data provided");return}_.info("BACKUP","Starting restore from upload",{sizeBytes:r.body.length,restoreSettings:s,clearExisting:i});let a=200*1024*1024,o;try{let p=(0,Em.createGunzip)(),d=[],m=0;await new Promise((f,g)=>{p.on("data",v=>{if(m+=v.length,m>a){p.destroy(),g(new lb);return}d.push(v)}),p.on("end",()=>f()),p.on("error",()=>{try{o=JSON.parse(r.body.toString("utf-8")),f()}catch{g(new Error("Invalid backup format"))}}),p.end(r.body)}),o||(o=JSON.parse(Buffer.concat(d).toString("utf-8")))}catch(p){if(p instanceof lb){n.status(413).json({error:"Backup too large: decompressed size exceeds 200MB limit"});return}_.error("BACKUP","Failed to parse uploaded backup",{},p),this.badRequest(n,"Invalid or corrupted backup file");return}if(!o.data||!o.version){this.badRequest(n,"Invalid backup format");return}let c=this.dbManager.getSessionStore(),l={sessionsRestored:0,sessionsSkipped:0,summariesRestored:0,summariesSkipped:0,observationsRestored:0,observationsSkipped:0,promptsRestored:0,promptsSkipped:0,settingsRestored:!1},u=c.db.transaction(()=>{if(i&&(c.db.exec(` DELETE FROM observations; DELETE FROM session_summaries; DELETE FROM user_prompts; DELETE FROM sdk_sessions; - `),_.info("BACKUP","Cleared existing data")),Array.isArray(o.data.sessions))for(let p of o.data.sessions)c.importSdkSession(p).imported?l.sessionsRestored++:l.sessionsSkipped++;if(Array.isArray(o.data.summaries))for(let p of o.data.summaries)c.importSessionSummary(p).imported?l.summariesRestored++:l.summariesSkipped++;if(Array.isArray(o.data.observations))for(let p of o.data.observations)c.importObservation(p).imported?l.observationsRestored++:l.observationsSkipped++;if(Array.isArray(o.data.prompts))for(let p of o.data.prompts)c.importUserPrompt(p).imported?l.promptsRestored++:l.promptsSkipped++});try{u()}catch(p){_.error("BACKUP","Restore failed \u2014 transaction rolled back",{},p),n.status(500).json({error:"Restore failed \u2014 existing data preserved"});return}if(s&&o.data.settings){let p=Xr.default.join((0,Cl.homedir)(),".pilot/memory","settings.json");(0,$e.writeFileSync)(p,JSON.stringify(o.data.settings,null,2),"utf-8"),l.settingsRestored=!0}_.info("BACKUP","Restore from upload completed",l),n.json({success:!0,source:"upload",stats:l})});handleGetBackupInfo=this.wrapHandler((r,n)=>{let{filename:s}=r.params;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let i=Xr.default.join(this.backupDir,s),a=s.replace(/\.(backup\.gz|backup\.json)$/,""),o=Xr.default.join(this.backupDir,`${a}.metadata.json`);if(!(0,$e.existsSync)(i)){this.notFound(n,"Backup not found");return}let c=(0,$e.statSync)(i),l={filename:s,path:i,createdAt:c.mtime.toISOString(),sizeBytes:c.size};if((0,$e.existsSync)(o))try{l.metadata=JSON.parse((0,$e.readFileSync)(o,"utf-8"))}catch{}n.json(l)});ensureBackupDir(){(0,$e.existsSync)(this.backupDir)||((0,$e.mkdirSync)(this.backupDir,{recursive:!0}),_.info("BACKUP","Created backup directory",{path:this.backupDir}))}};Or();er();re();var Ol=class{dbManager;vectorSync;constructor(e,r){this.dbManager=e,this.vectorSync=r??null}async deleteFromVectorDb(e,r){if(!(!this.vectorSync||e.length===0))try{await this.vectorSync.deleteDocuments(e,r)}catch(n){_.error("RETENTION","Vector deletion failed (non-fatal)",{ids:e.length,docType:r},n)}}getPolicy(){let e=Ae.loadFromFile(Ht);return{enabled:e.CLAUDE_PILOT_RETENTION_ENABLED,maxAgeDays:parseInt(e.CLAUDE_PILOT_RETENTION_MAX_AGE_DAYS,10)||0,maxCount:parseInt(e.CLAUDE_PILOT_RETENTION_MAX_COUNT,10)||0,excludeTypes:this.parseJsonArray(e.CLAUDE_PILOT_RETENTION_EXCLUDE_TYPES),softDelete:e.CLAUDE_PILOT_RETENTION_SOFT_DELETE}}parseJsonArray(e){try{let r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}async preview(e){let r=e||this.getPolicy(),s=this.dbManager.getSessionStore().db,a=s.prepare("SELECT COUNT(*) as count FROM observations").get().count,o=r.excludeTypes.length>0?`AND type NOT IN (${r.excludeTypes.map(()=>"?").join(", ")})`:"",c=0;if(r.maxAgeDays>0){let g=Date.now()-r.maxAgeDays*24*60*60*1e3,v=` + `),_.info("BACKUP","Cleared existing data")),Array.isArray(o.data.sessions))for(let p of o.data.sessions)c.importSdkSession(p).imported?l.sessionsRestored++:l.sessionsSkipped++;if(Array.isArray(o.data.summaries))for(let p of o.data.summaries)c.importSessionSummary(p).imported?l.summariesRestored++:l.summariesSkipped++;if(Array.isArray(o.data.observations))for(let p of o.data.observations)c.importObservation(p).imported?l.observationsRestored++:l.observationsSkipped++;if(Array.isArray(o.data.prompts))for(let p of o.data.prompts)c.importUserPrompt(p).imported?l.promptsRestored++:l.promptsSkipped++});try{u()}catch(p){_.error("BACKUP","Restore failed \u2014 transaction rolled back",{},p),n.status(500).json({error:"Restore failed \u2014 existing data preserved"});return}if(s&&o.data.settings){let p=Xr.default.join((0,Il.homedir)(),".pilot/memory","settings.json");(0,$e.writeFileSync)(p,JSON.stringify(o.data.settings,null,2),"utf-8"),l.settingsRestored=!0}_.info("BACKUP","Restore from upload completed",l),n.json({success:!0,source:"upload",stats:l})});handleGetBackupInfo=this.wrapHandler((r,n)=>{let{filename:s}=r.params;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let i=Xr.default.join(this.backupDir,s),a=s.replace(/\.(backup\.gz|backup\.json)$/,""),o=Xr.default.join(this.backupDir,`${a}.metadata.json`);if(!(0,$e.existsSync)(i)){this.notFound(n,"Backup not found");return}let c=(0,$e.statSync)(i),l={filename:s,path:i,createdAt:c.mtime.toISOString(),sizeBytes:c.size};if((0,$e.existsSync)(o))try{l.metadata=JSON.parse((0,$e.readFileSync)(o,"utf-8"))}catch{}n.json(l)});ensureBackupDir(){(0,$e.existsSync)(this.backupDir)||((0,$e.mkdirSync)(this.backupDir,{recursive:!0}),_.info("BACKUP","Created backup directory",{path:this.backupDir}))}};Or();er();re();var Cl=class{dbManager;vectorSync;constructor(e,r){this.dbManager=e,this.vectorSync=r??null}async deleteFromVectorDb(e,r){if(!(!this.vectorSync||e.length===0))try{await this.vectorSync.deleteDocuments(e,r)}catch(n){_.error("RETENTION","Vector deletion failed (non-fatal)",{ids:e.length,docType:r},n)}}getPolicy(){let e=Ae.loadFromFile(Ht);return{enabled:e.CLAUDE_PILOT_RETENTION_ENABLED,maxAgeDays:parseInt(e.CLAUDE_PILOT_RETENTION_MAX_AGE_DAYS,10)||0,maxCount:parseInt(e.CLAUDE_PILOT_RETENTION_MAX_COUNT,10)||0,excludeTypes:this.parseJsonArray(e.CLAUDE_PILOT_RETENTION_EXCLUDE_TYPES),softDelete:e.CLAUDE_PILOT_RETENTION_SOFT_DELETE}}parseJsonArray(e){try{let r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}async preview(e){let r=e||this.getPolicy(),s=this.dbManager.getSessionStore().db,a=s.prepare("SELECT COUNT(*) as count FROM observations").get().count,o=r.excludeTypes.length>0?`AND type NOT IN (${r.excludeTypes.map(()=>"?").join(", ")})`:"",c=0;if(r.maxAgeDays>0){let g=Date.now()-r.maxAgeDays*24*60*60*1e3,v=` SELECT COUNT(*) as count FROM observations WHERE created_at_epoch < ? ${o} `;c=s.prepare(v).get(g,...r.excludeTypes).count}let l=0;if(r.maxCount>0){let g=` @@ -1686,7 +1686,7 @@ Tips: FROM deleted_observations ORDER BY deleted_at_epoch DESC LIMIT ? - `).all(e)}catch{return[]}}};re();var Al=Q(require("fs"),1),Tm=Q(require("path"),1),aZ=Q(require("os"),1),mb=class extends Te{dbManager;constructor(e){super(),this.dbManager=e}getRetentionService(){return new Ol(this.dbManager,this.dbManager.getVectorSyncOrNull())}setupRoutes(e){e.get("/api/retention/policy",this.handleGetPolicy.bind(this)),e.get("/api/retention/preview",this.handlePreview.bind(this)),e.post("/api/retention/run",this.handleRun.bind(this)),e.get("/api/retention/archive",this.handleGetArchive.bind(this)),e.get("/api/retention/archive/list",this.handleListArchived.bind(this)),e.post("/api/retention/restore",this.handleRestore.bind(this)),e.post("/api/retention/vacuum",this.handleVacuum.bind(this)),e.get("/api/vector-db/health",this.handleVectorDbHealth.bind(this))}handleGetPolicy=this.wrapHandler(async(e,r)=>{let n=this.getRetentionService().getPolicy();r.json({policy:n})});handlePreview=this.wrapHandler(async(e,r)=>{let n=this.parseQueryPolicy(e.query),s=await this.getRetentionService().preview(n);r.json({preview:s,policy:n||this.getRetentionService().getPolicy()})});handleRun=this.wrapHandler(async(e,r)=>{let{dryRun:n=!1,policy:s}=e.body,i;s&&(i={enabled:s.enabled??!0,maxAgeDays:parseInt(s.maxAgeDays,10)||0,maxCount:parseInt(s.maxCount,10)||0,excludeTypes:Array.isArray(s.excludeTypes)?s.excludeTypes:[],softDelete:s.softDelete??!0}),_.info("RETENTION",`Running cleanup (dryRun: ${n})`,{policy:i||this.getRetentionService().getPolicy()});let a=await this.getRetentionService().run(i,n);r.json({success:a.errors.length===0,result:a,policy:i||this.getRetentionService().getPolicy()})});handleGetArchive=this.wrapHandler(async(e,r)=>{let n=this.getRetentionService().getArchiveCount();r.json({archived:n})});handleListArchived=this.wrapHandler(async(e,r)=>{let n=parseInt(e.query.limit,10)||100,s=this.getRetentionService().listArchived(n);r.json({observations:s,count:s.length,total:this.getRetentionService().getArchiveCount()})});handleRestore=this.wrapHandler(async(e,r)=>{let{ids:n}=e.body,s=Array.isArray(n)?n.map(a=>parseInt(String(a),10)).filter(a=>!isNaN(a)):void 0;_.info("RETENTION","Restoring from archive",{ids:s?.length??"all"});let i=await this.getRetentionService().restore(s);r.json({success:i.errors.length===0,restored:i.restored,errors:i.errors})});handleVacuum=this.wrapHandler(async(e,r)=>{let n=this.dbManager.getVectorSyncOrNull();if(!n){r.status(400).json({success:!1,error:"Vector database is not enabled"});return}_.info("RETENTION","Starting vacuum \u2014 rebuilding vector database index");let s=await n.vacuum();r.json({success:!s.error,...s})});handleVectorDbHealth=this.wrapHandler(async(e,r)=>{let n=Tm.default.join(aZ.default.homedir(),".pilot/memory/vector-db"),s=Bg(n),i=s.logical,a=s.physical,o=this.readLastEviction(Tm.default.dirname(n)),c=this.dbManager.getVectorSyncOrNull();if(!c){r.json({directorySize:i,physicalSize:a,embeddingCount:0,expectedSize:0,bloatRatio:0,healthy:!0,available:!1,lastEviction:o});return}let l=0;try{await c.isHealthy()&&(l=await c.getEmbeddingCount())}catch{}let u=384*4*l*10,p=u>0?i/u:0,d=p<20;r.json({directorySize:i,physicalSize:a,largestFile:s.largestFile??null,embeddingCount:l,expectedSize:u,bloatRatio:p,healthy:d,available:!0,lastEviction:o})});readLastEviction(e){try{let r=Tm.default.join(e,"vector-db.last-eviction.json");return Al.default.existsSync(r)?JSON.parse(Al.default.readFileSync(r,"utf-8")):null}catch{return null}}getDirectorySize(e){let r=0;try{if(!Al.default.existsSync(e))return 0;let n=Al.default.readdirSync(e,{withFileTypes:!0});for(let s of n){let i=Tm.default.join(e,s.name);if(s.isDirectory())r+=this.getDirectorySize(i);else try{r+=Al.default.statSync(i).size}catch{}}}catch{}return r}parseQueryPolicy(e){if(!e.maxAgeDays&&!e.maxCount)return;let r=this.getRetentionService().getPolicy();return{enabled:!0,maxAgeDays:e.maxAgeDays?parseInt(e.maxAgeDays,10):r.maxAgeDays,maxCount:e.maxCount?parseInt(e.maxCount,10):r.maxCount,excludeTypes:e.excludeTypes?e.excludeTypes.split(",").filter(Boolean):r.excludeTypes,softDelete:e.softDelete!=="false"}}};var fb=class extends Te{metricsService;constructor(e){super(),this.metricsService=e}setupRoutes(e){e.get("/api/metrics",this.handleGetMetrics.bind(this)),e.get("/metrics",this.handleGetPrometheus.bind(this))}handleGetMetrics=this.wrapHandler(async(e,r)=>{let n=await this.metricsService.getMetrics();r.json(n)});handleGetPrometheus=this.wrapHandler(async(e,r)=>{let n=await this.metricsService.toPrometheus();r.set("Content-Type","text/plain; version=0.0.4"),r.send(n)})};var $1=Q(require("crypto"),1);re();pE();function Gke(t,e){let r=Buffer.from(t),n=Buffer.from(e);return r.length!==n.length?($1.default.timingSafeEqual(r,r),!1):$1.default.timingSafeEqual(r,n)}var Rm=new Map,oZ=5,Vke=3e4,Kke=900*1e3;function Jke(t){let e=Rm.get(t);if(!e||e.countKke)return Rm.delete(t),0;let r=e.count-oZ;return Math.min(1e3*Math.pow(2,r),Vke)}function Qke(t){let e=Rm.get(t)||{count:0,lastAttempt:0};e.count++,e.lastAttempt=Date.now(),Rm.set(t,e)}function Yke(t){Rm.delete(t)}var hb=class extends Te{setupRoutes(e){e.get("/login",this.handleLoginPage.bind(this)),e.post("/api/auth/login",this.handleLogin.bind(this)),e.post("/api/auth/logout",this.handleLogout.bind(this)),e.get("/api/auth/status",this.handleAuthStatus.bind(this))}handleLoginPage=this.wrapHandler((e,r)=>{if(!Za()){r.redirect("/");return}let n=` + `).all(e)}catch{return[]}}};re();var Ol=Q(require("fs"),1),km=Q(require("path"),1),rZ=Q(require("os"),1),pb=class extends Te{dbManager;constructor(e){super(),this.dbManager=e}getRetentionService(){return new Cl(this.dbManager,this.dbManager.getVectorSyncOrNull())}setupRoutes(e){e.get("/api/retention/policy",this.handleGetPolicy.bind(this)),e.get("/api/retention/preview",this.handlePreview.bind(this)),e.post("/api/retention/run",this.handleRun.bind(this)),e.get("/api/retention/archive",this.handleGetArchive.bind(this)),e.get("/api/retention/archive/list",this.handleListArchived.bind(this)),e.post("/api/retention/restore",this.handleRestore.bind(this)),e.post("/api/retention/vacuum",this.handleVacuum.bind(this)),e.get("/api/vector-db/health",this.handleVectorDbHealth.bind(this))}handleGetPolicy=this.wrapHandler(async(e,r)=>{let n=this.getRetentionService().getPolicy();r.json({policy:n})});handlePreview=this.wrapHandler(async(e,r)=>{let n=this.parseQueryPolicy(e.query),s=await this.getRetentionService().preview(n);r.json({preview:s,policy:n||this.getRetentionService().getPolicy()})});handleRun=this.wrapHandler(async(e,r)=>{let{dryRun:n=!1,policy:s}=e.body,i;s&&(i={enabled:s.enabled??!0,maxAgeDays:parseInt(s.maxAgeDays,10)||0,maxCount:parseInt(s.maxCount,10)||0,excludeTypes:Array.isArray(s.excludeTypes)?s.excludeTypes:[],softDelete:s.softDelete??!0}),_.info("RETENTION",`Running cleanup (dryRun: ${n})`,{policy:i||this.getRetentionService().getPolicy()});let a=await this.getRetentionService().run(i,n);r.json({success:a.errors.length===0,result:a,policy:i||this.getRetentionService().getPolicy()})});handleGetArchive=this.wrapHandler(async(e,r)=>{let n=this.getRetentionService().getArchiveCount();r.json({archived:n})});handleListArchived=this.wrapHandler(async(e,r)=>{let n=parseInt(e.query.limit,10)||100,s=this.getRetentionService().listArchived(n);r.json({observations:s,count:s.length,total:this.getRetentionService().getArchiveCount()})});handleRestore=this.wrapHandler(async(e,r)=>{let{ids:n}=e.body,s=Array.isArray(n)?n.map(a=>parseInt(String(a),10)).filter(a=>!isNaN(a)):void 0;_.info("RETENTION","Restoring from archive",{ids:s?.length??"all"});let i=await this.getRetentionService().restore(s);r.json({success:i.errors.length===0,restored:i.restored,errors:i.errors})});handleVacuum=this.wrapHandler(async(e,r)=>{let n=this.dbManager.getVectorSyncOrNull();if(!n){r.status(400).json({success:!1,error:"Vector database is not enabled"});return}_.info("RETENTION","Starting vacuum \u2014 rebuilding vector database index");let s=await n.vacuum();r.json({success:!s.error,...s})});handleVectorDbHealth=this.wrapHandler(async(e,r)=>{let n=km.default.join(rZ.default.homedir(),".pilot/memory/vector-db"),s=Fg(n),i=s.logical,a=s.physical,o=this.readLastEviction(km.default.dirname(n)),c=this.dbManager.getVectorSyncOrNull();if(!c){r.json({directorySize:i,physicalSize:a,embeddingCount:0,expectedSize:0,bloatRatio:0,healthy:!0,available:!1,lastEviction:o});return}let l=0;try{await c.isHealthy()&&(l=await c.getEmbeddingCount())}catch{}let u=384*4*l*10,p=u>0?i/u:0,d=p<20;r.json({directorySize:i,physicalSize:a,largestFile:s.largestFile??null,embeddingCount:l,expectedSize:u,bloatRatio:p,healthy:d,available:!0,lastEviction:o})});readLastEviction(e){try{let r=km.default.join(e,"vector-db.last-eviction.json");return Ol.default.existsSync(r)?JSON.parse(Ol.default.readFileSync(r,"utf-8")):null}catch{return null}}getDirectorySize(e){let r=0;try{if(!Ol.default.existsSync(e))return 0;let n=Ol.default.readdirSync(e,{withFileTypes:!0});for(let s of n){let i=km.default.join(e,s.name);if(s.isDirectory())r+=this.getDirectorySize(i);else try{r+=Ol.default.statSync(i).size}catch{}}}catch{}return r}parseQueryPolicy(e){if(!e.maxAgeDays&&!e.maxCount)return;let r=this.getRetentionService().getPolicy();return{enabled:!0,maxAgeDays:e.maxAgeDays?parseInt(e.maxAgeDays,10):r.maxAgeDays,maxCount:e.maxCount?parseInt(e.maxCount,10):r.maxCount,excludeTypes:e.excludeTypes?e.excludeTypes.split(",").filter(Boolean):r.excludeTypes,softDelete:e.softDelete!=="false"}}};var db=class extends Te{metricsService;constructor(e){super(),this.metricsService=e}setupRoutes(e){e.get("/api/metrics",this.handleGetMetrics.bind(this)),e.get("/metrics",this.handleGetPrometheus.bind(this))}handleGetMetrics=this.wrapHandler(async(e,r)=>{let n=await this.metricsService.getMetrics();r.json(n)});handleGetPrometheus=this.wrapHandler(async(e,r)=>{let n=await this.metricsService.toPrometheus();r.set("Content-Type","text/plain; version=0.0.4"),r.send(n)})};var D1=Q(require("crypto"),1);re();ck();function qEe(t,e){let r=Buffer.from(t),n=Buffer.from(e);return r.length!==n.length?(D1.default.timingSafeEqual(r,r),!1):D1.default.timingSafeEqual(r,n)}var Tm=new Map,nZ=5,FEe=3e4,HEe=900*1e3;function BEe(t){let e=Tm.get(t);if(!e||e.countHEe)return Tm.delete(t),0;let r=e.count-nZ;return Math.min(1e3*Math.pow(2,r),FEe)}function WEe(t){let e=Tm.get(t)||{count:0,lastAttempt:0};e.count++,e.lastAttempt=Date.now(),Tm.set(t,e)}function ZEe(t){Tm.delete(t)}var mb=class extends Te{setupRoutes(e){e.get("/login",this.handleLoginPage.bind(this)),e.post("/api/auth/login",this.handleLogin.bind(this)),e.post("/api/auth/logout",this.handleLogout.bind(this)),e.get("/api/auth/status",this.handleAuthStatus.bind(this))}handleLoginPage=this.wrapHandler((e,r)=>{if(!Wa()){r.redirect("/");return}let n=` @@ -1880,19 +1880,19 @@ Tips: - `.trim();r.setHeader("Content-Type","text/html"),r.send(n)});handleLogin=this.wrapHandler(async(e,r)=>{let{token:n}=e.body,s=e.ip||e.socket.remoteAddress||"unknown";if(!n){r.status(400).json({code:"MISSING_TOKEN",message:"Token is required"});return}let i=Dg();if(!i){r.status(500).json({code:"NOT_CONFIGURED",message:"Remote authentication is not configured"});return}let a=Jke(s);if(a>0&&await new Promise(c=>setTimeout(c,a)),!Gke(n,i)){Qke(s),_.warn("SECURITY","Failed login attempt",{ip:s}),r.status(401).json({code:"INVALID_TOKEN",message:"Invalid token"});return}Yke(s);let o=S6(s);r.cookie(uE(),o,{httpOnly:!0,secure:e.protocol==="https",sameSite:"lax",maxAge:1440*60*1e3,path:"/"}),_.info("SECURITY","User logged in",{ip:s}),r.json({code:"SUCCESS",message:"Login successful"})});handleLogout=this.wrapHandler((e,r)=>{let n=uE(),s=e.cookies?.[n];s&&k6(s),r.clearCookie(n,{httpOnly:!0,secure:e.protocol==="https",sameSite:"lax",path:"/"}),_.info("SECURITY","User logged out",{ip:e.ip||e.socket.remoteAddress}),r.json({code:"SUCCESS",message:"Logout successful"})});handleAuthStatus=this.wrapHandler((e,r)=>{let n=Za();r.json({authRequired:n,authenticated:!n||!!e.auth})})};var yn=require("fs"),gi=Q(require("path"),1);var gb=require("fs"),Bs=Q(require("path"),1);er();function hr(t,e){let r=zr(process.env.CLAUDE_PROJECT_ROOT||process.cwd());if(!e||!t)return r;let n=t.getSessionStore().getProjectRoot(e);return!n||!(0,gb.existsSync)(n)||!(0,gb.statSync)(n).isDirectory()?r:n}var cZ=["docs/plans","docs/prd"];function lZ(t,e,r){if(r&&Bs.default.isAbsolute(r)&&t){let n=Bs.default.resolve(r),s=t.getSessionStore().getAllProjectRoots();for(let{rootPath:i}of s)if(Xke(n,i))return i}return hr(t,e)}function Xke(t,e){let r=Bs.default.resolve(e);for(let s of cZ){let i=Bs.default.join(r,s);if(t===i||t.startsWith(i+Bs.default.sep))return!0}let n=Bs.default.join(r,".worktrees");if(t.startsWith(n+Bs.default.sep)){for(let s of cZ)if(t.includes(`${Bs.default.sep}${s}${Bs.default.sep}`))return!0}return!1}var jl=require("child_process"),yb=require("fs"),vb=Q(require("path"),1),Pm={...process.env,GIT_OPTIONAL_LOCKS:"0"},Im=3e3;function uZ(t){let e=0,r=0,n=0;for(let s of t.split(` -`)){if(!s.trim())continue;let i=s.split(" ");i.length>=2&&(e+=i[0]==="-"?0:parseInt(i[0],10)||0,r+=i[1]==="-"?0:parseInt(i[1],10)||0,n++)}return{additions:e,deletions:r,fileCount:n}}function eEe(t,e){if(!e.startsWith("spec/"))return null;let r="main";try{let n=vb.default.join(t,".git");if((0,yb.existsSync)(n)){let s=(0,yb.readFileSync)(n,"utf-8").trim();if(s.startsWith("gitdir:")){let i=s.replace("gitdir:","").trim(),a=vb.default.resolve(t,i,"..",".."),o=vb.default.dirname(a),u=(0,jl.execFileSync)("git",["worktree","list"],{cwd:o,encoding:"utf-8",timeout:Im,env:Pm}).split(` -`)[0].match(/\[([^\]]+)\]/);u&&(r=u[1])}}}catch{}return{active:!0,baseBranch:r}}function pZ(t){try{let e=(0,jl.execFileSync)("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:t,encoding:"utf-8",timeout:Im,env:Pm}).trim(),r=(0,jl.execFileSync)("git",["status","--porcelain"],{cwd:t,encoding:"utf-8",timeout:Im,env:Pm}),n=0,s=0,i=0;for(let p of r.split(` -`)){if(!p)continue;let d=p[0]||" ",m=p[1]||" ";d==="?"&&m==="?"?i++:(d!==" "&&d!=="?"&&n++,m!==" "&&s++)}let a=0,o=0;try{let p=(0,jl.execFileSync)("git",["diff","--numstat","HEAD"],{cwd:t,encoding:"utf-8",timeout:Im,env:Pm}),d=uZ(p);a=d.additions,o=d.deletions}catch{}let c=eEe(t,e),l=0;if(c)try{let p=`${c.baseBranch}...${e}`,d=(0,jl.execFileSync)("git",["diff","--numstat",p],{cwd:t,encoding:"utf-8",timeout:Im,env:Pm}),m=uZ(d);a+=m.additions,o+=m.deletions,l=m.fileCount}catch{}let u=n+s+i+l;return{branch:e,staged:n,unstaged:s,untracked:i,totalFiles:u,additions:a,deletions:o,worktree:c}}catch{return{branch:null,staged:0,unstaged:0,untracked:0,totalFiles:0,additions:0,deletions:0}}}var gr=require("fs"),Mr=Q(require("path"),1);re();var dZ=["docs/plans","docs/prd"];function Cm(t,e){if(!e.endsWith(".md"))return!1;let r=Mr.default.resolve(t);for(let s of dZ){let i=Mr.default.join(r,s);if(e.startsWith(i+Mr.default.sep)||e.startsWith(i+"/"))return!0}let n=Mr.default.join(r,".worktrees");if(e.startsWith(n)){for(let s of dZ)if(e.includes(`/${s}/`))return!0}return!1}function L1(t,e){if(!e.endsWith(".md"))return!1;let r=Mr.default.resolve(t),n=Mr.default.join(r,"docs","plans");if(e.startsWith(n+Mr.default.sep)||e.startsWith(n+"/"))return!0;let s=Mr.default.join(r,".worktrees");return!!(e.startsWith(s)&&e.includes("/docs/plans/"))}function bb(t,e,r,n){let s=t.match(/^Status:\s*(\w+)/m);if(!s){let w=/^- \[[ x]\] Task \d+:/m.test(t),S=/^# .+(Plan|Fix)/m.test(t);if(!w&&!S)return null;_.warn("HTTP","Plan file missing Status header, defaulting to PENDING",{filePath:r})}let i=s?.[1]??"PENDING",a=(t.match(/^- \[x\] Task \d+:/gm)||[]).length,o=(t.match(/^- \[ \] Task \d+:/gm)||[]).length;a===0&&o===0&&(o=(t.match(/^### Task \d+:/gm)||[]).length);let c=a+o,l=t.match(/^Approved:\s*(\w+)/m),u=l?l[1].toLowerCase()==="yes":!1,p=t.match(/^Iterations:\s*(\d+)/m),d=p?parseInt(p[1],10):0,m=t.match(/^Worktree:\s*(\w+)/m),f=m?m[1].toLowerCase()!=="no":!0,v=t.match(/^Type:\s*(\w+)/m)?.[1]==="Bugfix"?"Bugfix":"Feature",y=t.match(/^Author:\s*(.+)/m)?.[1].trim()||void 0,b;i==="PENDING"&&!u?b="plan":i==="PENDING"&&u?b="implement":i==="COMPLETE"||i==="VERIFIED"?b="verify":b=i.toLowerCase();let x=e.replace(".md","");return x.match(/^\d{4}-\d{2}-\d{2}-/)&&(x=x.split("-").slice(3).join("-")),{name:x,status:i,completed:a,total:c,phase:b,iterations:d,approved:u,worktree:f,specType:v,author:y,filePath:r,modifiedAt:n.toISOString()}}function tEe(t){let e=Mr.default.join(t,".worktrees");if(!(0,gr.existsSync)(e))return[];let r=[];try{let n=(0,gr.readdirSync)(e,{withFileTypes:!0});for(let s of n){if(!s.isDirectory())continue;let i=Mr.default.join(e,s.name,"docs","plans");(0,gr.existsSync)(i)&&r.push(i)}}catch(n){_.error("HTTP","Failed to read worktrees directory",{worktreesDir:e},n)}return r}var mZ=new Map,rEe=0;function U1(t){let e;try{e=(0,gr.readdirSync)(t).filter(a=>a.endsWith(".md")).sort().reverse().map(a=>{let o=Mr.default.join(t,a),c=(0,gr.statSync)(o);return{name:a,filePath:o,mtimeMs:c.mtimeMs,size:c.size}})}catch(i){return _.error("HTTP","Failed to read plans from directory",{plansDir:t},i),[]}let r=e.map(i=>`${i.name}:${i.mtimeMs}:${i.size}`).join("|"),n=mZ.get(t);if(n&&n.fingerprint===r)return n.plans;rEe+=1;let s=[];for(let i of e)try{let a=(0,gr.readFileSync)(i.filePath,"utf-8"),o=bb(a,i.name,i.filePath,new Date(i.mtimeMs));o&&s.push(o)}catch(a){_.error("HTTP","Failed to read plan file",{filePath:i.filePath},a)}return mZ.set(t,{fingerprint:r,plans:s}),s}function xb(t){let e=[],r=Mr.default.join(t,"docs","plans");return(0,gr.existsSync)(r)&&e.push(r),e.push(...tEe(t)),e}function _b(t){let e=new Map;for(let r of t){let n=e.get(r.name);if(!n){e.set(r.name,r);continue}let s=r.filePath.includes("/.worktrees/"),i=n.filePath.includes("/.worktrees/");s&&!i?e.set(r.name,r):!s&&i||new Date(r.modifiedAt).getTime()>new Date(n.modifiedAt).getTime()&&e.set(r.name,r)}return Array.from(e.values())}function fZ(t){let e=new Date;e.setHours(0,0,0,0);let r=[];for(let n of xb(t))try{let s=(0,gr.readdirSync)(n).filter(i=>i.endsWith(".md")).sort().reverse();for(let i of s){let a=Mr.default.join(n,i),o=(0,gr.statSync)(a),c=new Date(o.mtime);if(c.setHours(0,0,0,0),c.getTime()!==e.getTime())continue;let l=(0,gr.readFileSync)(a,"utf-8"),u=bb(l,i,a,o.mtime);u&&u.status!=="VERIFIED"&&r.push(u)}}catch(s){_.error("HTTP","Failed to read active plans",{plansDir:n},s)}return _b(r)}function hZ(t){let e=[];for(let r of xb(t))e.push(...U1(r));return _b(e).sort((r,n)=>new Date(n.modifiedAt).getTime()-new Date(r.modifiedAt).getTime()).slice(0,10)}function Om(t){let e=[];for(let r of xb(t))e.push(...U1(r));return _b(e).sort((r,n)=>new Date(n.modifiedAt).getTime()-new Date(r.modifiedAt).getTime())}function gZ(t){let e=[];for(let d of xb(t))e.push(...U1(d));let r=_b(e);if(r.length===0)return{totalSpecs:0,verified:0,inProgress:0,pending:0,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]};let n=r.filter(d=>d.status==="VERIFIED"),s=r.filter(d=>d.status==="PENDING"&&d.approved||d.status==="COMPLETE"),i=r.filter(d=>d.status==="PENDING"&&!d.approved),a=n.reduce((d,m)=>d+m.iterations,0),o=r.reduce((d,m)=>d+m.completed,0),c=r.reduce((d,m)=>d+m.total,0),l=new Map;for(let d of n){let m=d.modifiedAt.slice(0,10);l.set(m,(l.get(m)||0)+1)}let u=Array.from(l.entries()).sort(([d],[m])=>d.localeCompare(m)).map(([d,m])=>({date:d,count:m})),p=n.sort((d,m)=>new Date(m.modifiedAt).getTime()-new Date(d.modifiedAt).getTime()).slice(0,5).map(d=>({name:d.name,verifiedAt:d.modifiedAt}));return{totalSpecs:r.length,verified:n.length,inProgress:s.length,pending:i.length,avgIterations:n.length>0?Math.round(a/n.length*10)/10:0,totalTasksCompleted:o,totalTasks:c,completionTimeline:u,recentlyVerified:p}}function nEe(t,e,r,n){let s=e.replace(".md","");s.match(/^\d{4}-\d{2}-\d{2}-/)&&(s=s.split("-").slice(3).join("-"));let i=[];for(let p of t.matchAll(/^## (.+)$/gm))i.push(p[1].trim());let a=t.match(/^Author:\s*(.+)/m),o=t.match(/^Category:\s*(.+)/m),c=t.match(/^Status:\s*(.+)/m),l=t.match(/^Research:\s*(.+)/m),u=t.match(/^Created:\s*(.+)/m);return{name:s,filePath:r,modifiedAt:n.toISOString(),sections:i,author:a?.[1].trim()||void 0,category:o?.[1].trim()||void 0,status:c?.[1].trim()||void 0,research:l?.[1].trim()||void 0,createdAt:u?.[1].trim()||void 0}}function sEe(t){let e=[];try{let r=(0,gr.readdirSync)(t).filter(n=>n.endsWith(".md")).sort().reverse();for(let n of r){let s=Mr.default.join(t,n),i=(0,gr.statSync)(s),a=(0,gr.readFileSync)(s,"utf-8");e.push(nEe(a,n,s,i.mtime))}}catch(r){_.error("HTTP","Failed to read PRDs from directory",{prdDir:t},r)}return e}function wb(t){let e=Mr.default.join(t,"docs","prd");return(0,gr.existsSync)(e)?sEe(e).sort((r,n)=>new Date(n.modifiedAt).getTime()-new Date(r.modifiedAt).getTime()).slice(0,50):[]}var Sb=class t extends Te{dbManager;sseBroadcaster;constructor(e,r){super(),this.dbManager=e??null,this.sseBroadcaster=r??null}static VALID_PLAN_STATUSES=new Set(["PENDING","COMPLETE","VERIFIED"]);isValidPlanStatus(e){return typeof e=="string"&&t.VALID_PLAN_STATUSES.has(e)}setupRoutes(e){e.get("/api/plan",this.handleGetActivePlan.bind(this)),e.get("/api/plans",this.handleGetAllPlans.bind(this)),e.get("/api/plans/active",this.handleGetActiveSpecs.bind(this)),e.get("/api/plans/active/all",this.handleGetAllProjectSpecs.bind(this)),e.get("/api/plan/content",this.handleGetPlanContent.bind(this)),e.delete("/api/plan",this.handleDeletePlan.bind(this)),e.get("/api/plans/stats",this.handleGetPlanStats.bind(this)),e.get("/api/git",this.handleGetGitInfo.bind(this)),e.get("/api/prd",this.handleGetAllPRDs.bind(this)),e.get("/api/prd/all",this.handleGetAllProjectPRDs.bind(this)),e.get("/api/prd/content",this.handleGetPRDContent.bind(this)),e.delete("/api/prd",this.handleDeletePRD.bind(this)),e.post("/api/sessions/:sessionDbId/plan",this.handleAssociatePlan.bind(this)),e.post("/api/sessions/by-content-id/:contentSessionId/plan",this.handleAssociatePlanByContentId.bind(this)),e.get("/api/sessions/:sessionDbId/plan",this.handleGetSessionPlan.bind(this)),e.get("/api/sessions/by-content-id/:contentSessionId/plan",this.handleGetSessionPlanByContentId.bind(this)),e.delete("/api/sessions/:sessionDbId/plan",this.handleClearSessionPlan.bind(this)),e.put("/api/sessions/:sessionDbId/plan/status",this.handleUpdatePlanStatus.bind(this))}handleGetPlanStats=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n);r.json(gZ(s))});handleGetActivePlan=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n),i=fZ(s);r.json({active:i.length>0,plans:i,plan:i[0]||null})});handleGetAllPlans=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n);r.json({plans:hZ(s)})});handleGetGitInfo=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n);r.json(pZ(s))});handleGetActiveSpecs=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n);r.json({specs:Om(s)})});handleGetAllProjectSpecs=this.wrapHandler((e,r)=>{let n=[],s=new Set;if(this.dbManager){let a=this.dbManager.getSessionStore().getAllProjectRoots();for(let{project:o,rootPath:c}of a){if(s.has(c))continue;s.add(c);let l=Om(c);for(let u of l)u.project=o;n.push(...l)}}let i=process.env.CLAUDE_PROJECT_ROOT||process.cwd();if(!s.has(i)){let a=Om(i);for(let o of a)o.project=gi.default.basename(i);n.push(...a)}n.sort((a,o)=>new Date(o.modifiedAt).getTime()-new Date(a.modifiedAt).getTime()),r.json({specs:n})});handleGetPlanContent=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n),i=e.query.path;if(!i){let p=Om(s);if(p.length===0){r.status(404).json({error:"No active specs found"});return}let d=p[0];try{let m=(0,yn.readFileSync)(d.filePath,"utf-8");r.json({content:m,name:d.name,status:d.status,filePath:d.filePath})}catch{r.status(404).json({error:"Plan file not found"})}return}let a=gi.default.resolve(s,i);if(!L1(s,a)){r.status(403).json({error:"Access denied: path must be within docs/plans/ or .worktrees/*/docs/plans/"});return}if(!(0,yn.existsSync)(a)){r.status(404).json({error:"Plan not found"});return}let o=(0,yn.readFileSync)(a,"utf-8"),c=gi.default.basename(a),l=(0,yn.statSync)(a),u=bb(o,c,a,l.mtime);r.json({content:o,name:u?.name||c.replace(".md",""),status:u?.status||"UNKNOWN",filePath:a})});handleDeletePlan=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n),i=e.query.path;if(!i){this.badRequest(r,"Missing path query parameter");return}let a=gi.default.resolve(s,i);if(!L1(s,a)){r.status(403).json({error:"Access denied: path must be within docs/plans/ or .worktrees/*/docs/plans/"});return}if(!(0,yn.existsSync)(a)){this.notFound(r,"Plan not found");return}(0,yn.unlinkSync)(a),r.json({success:!0})});handleAssociatePlan=this.wrapHandler((e,r)=>{let n=this.parseIntParam(e,r,"sessionDbId");if(n===null||!this.validateRequired(e,r,["planPath","status"]))return;if(!this.isValidPlanStatus(e.body.status)){this.badRequest(r,`Invalid status: ${e.body.status}. Must be PENDING, COMPLETE, or VERIFIED`);return}let s=this.getDb(r);if(!s)return;let i=w1(s,n,e.body.planPath,e.body.status);this.broadcastPlanChange(),r.json({plan:i})});handleAssociatePlanByContentId=this.wrapHandler((e,r)=>{let n=e.params.contentSessionId;if(!n){this.badRequest(r,"Missing contentSessionId");return}if(!this.validateRequired(e,r,["planPath","status"]))return;if(!this.isValidPlanStatus(e.body.status)){this.badRequest(r,`Invalid status: ${e.body.status}. Must be PENDING, COMPLETE, or VERIFIED`);return}let s=this.getDb(r);if(!s)return;let i=s.prepare("SELECT id FROM sdk_sessions WHERE content_session_id = ?").get(n);if(!i){this.notFound(r,"Session not found");return}let a=w1(s,i.id,e.body.planPath,e.body.status);this.broadcastPlanChange(),r.json({plan:a})});handleGetSessionPlan=this.wrapHandler((e,r)=>{let n=this.parseIntParam(e,r,"sessionDbId");if(n===null)return;let s=this.getDb(r);s&&r.json({plan:Gy(s,n)})});handleGetSessionPlanByContentId=this.wrapHandler((e,r)=>{let n=e.params.contentSessionId;if(!n){this.badRequest(r,"Missing contentSessionId");return}let s=this.getDb(r);s&&r.json({plan:$3(s,n)})});handleClearSessionPlan=this.wrapHandler((e,r)=>{let n=this.parseIntParam(e,r,"sessionDbId");if(n===null)return;let s=this.getDb(r);s&&(U3(s,n),this.broadcastPlanChange(),r.json({success:!0}))});handleUpdatePlanStatus=this.wrapHandler((e,r)=>{let n=this.parseIntParam(e,r,"sessionDbId");if(n===null||!this.validateRequired(e,r,["status"]))return;if(!this.isValidPlanStatus(e.body.status)){this.badRequest(r,`Invalid status: ${e.body.status}. Must be PENDING, COMPLETE, or VERIFIED`);return}let s=this.getDb(r);s&&(L3(s,n,e.body.status),this.broadcastPlanChange(),r.json({plan:Gy(s,n)}))});handleGetAllPRDs=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n);r.json({prds:wb(s)})});handleGetAllProjectPRDs=this.wrapHandler((e,r)=>{let n=[],s=new Set;if(this.dbManager){let a=this.dbManager.getSessionStore().getAllProjectRoots();for(let{project:o,rootPath:c}of a){if(s.has(c))continue;s.add(c);let l=wb(c);for(let u of l)n.push({...u,project:o})}}let i=process.env.CLAUDE_PROJECT_ROOT||process.cwd();if(!s.has(i)){let a=wb(i);for(let o of a)n.push({...o,project:gi.default.basename(i)})}n.sort((a,o)=>new Date(o.modifiedAt).getTime()-new Date(a.modifiedAt).getTime()),r.json({prds:n.slice(0,10)})});handleGetPRDContent=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n),i=e.query.path;if(!i){this.badRequest(r,"Missing path query parameter");return}let a=gi.default.resolve(s,i);if(!Cm(s,a)){r.status(403).json({error:"Access denied: path must be within docs/prd/"});return}if(!(0,yn.existsSync)(a)){r.status(404).json({error:"PRD not found"});return}let o=(0,yn.readFileSync)(a,"utf-8"),l=gi.default.basename(a).replace(".md","");l.match(/^\d{4}-\d{2}-\d{2}-/)&&(l=l.split("-").slice(3).join("-")),r.json({content:o,name:l,filePath:a})});handleDeletePRD=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n),i=e.query.path;if(!i){this.badRequest(r,"Missing path query parameter");return}let a=gi.default.resolve(s,i);if(!Cm(s,a)){r.status(403).json({error:"Access denied: path must be within docs/prd/"});return}if(!(0,yn.existsSync)(a)){this.notFound(r,"PRD not found");return}(0,yn.unlinkSync)(a),r.json({success:!0})});broadcastPlanChange(){this.sseBroadcaster?.broadcast({type:"plan_association_changed"})}getDb(e){return this.dbManager?this.dbManager.getSessionStore().db:(e.status(503).json({error:"Database not available"}),null)}};var iEe=500;function kb(t,e){let r=t.prepare(`INSERT INTO notifications (type, title, message, plan_path, session_id) + `.trim();r.setHeader("Content-Type","text/html"),r.send(n)});handleLogin=this.wrapHandler(async(e,r)=>{let{token:n}=e.body,s=e.ip||e.socket.remoteAddress||"unknown";if(!n){r.status(400).json({code:"MISSING_TOKEN",message:"Token is required"});return}let i=jg();if(!i){r.status(500).json({code:"NOT_CONFIGURED",message:"Remote authentication is not configured"});return}let a=BEe(s);if(a>0&&await new Promise(c=>setTimeout(c,a)),!qEe(n,i)){WEe(s),_.warn("SECURITY","Failed login attempt",{ip:s}),r.status(401).json({code:"INVALID_TOKEN",message:"Invalid token"});return}ZEe(s);let o=b6(s);r.cookie(ok(),o,{httpOnly:!0,secure:e.protocol==="https",sameSite:"lax",maxAge:1440*60*1e3,path:"/"}),_.info("SECURITY","User logged in",{ip:s}),r.json({code:"SUCCESS",message:"Login successful"})});handleLogout=this.wrapHandler((e,r)=>{let n=ok(),s=e.cookies?.[n];s&&x6(s),r.clearCookie(n,{httpOnly:!0,secure:e.protocol==="https",sameSite:"lax",path:"/"}),_.info("SECURITY","User logged out",{ip:e.ip||e.socket.remoteAddress}),r.json({code:"SUCCESS",message:"Logout successful"})});handleAuthStatus=this.wrapHandler((e,r)=>{let n=Wa();r.json({authRequired:n,authenticated:!n||!!e.auth})})};var yn=require("fs"),gi=Q(require("path"),1);var fb=require("fs"),Bs=Q(require("path"),1);er();function hr(t,e){let r=zr(process.env.CLAUDE_PROJECT_ROOT||process.cwd());if(!e||!t)return r;let n=t.getSessionStore().getProjectRoot(e);return!n||!(0,fb.existsSync)(n)||!(0,fb.statSync)(n).isDirectory()?r:n}var sZ=["docs/plans","docs/prd"];function iZ(t,e,r){if(r&&Bs.default.isAbsolute(r)&&t){let n=Bs.default.resolve(r),s=t.getSessionStore().getAllProjectRoots();for(let{rootPath:i}of s)if(GEe(n,i))return i}return hr(t,e)}function GEe(t,e){let r=Bs.default.resolve(e);for(let s of sZ){let i=Bs.default.join(r,s);if(t===i||t.startsWith(i+Bs.default.sep))return!0}let n=Bs.default.join(r,".worktrees");if(t.startsWith(n+Bs.default.sep)){for(let s of sZ)if(t.includes(`${Bs.default.sep}${s}${Bs.default.sep}`))return!0}return!1}var Al=require("child_process"),gb=require("fs"),hb=Q(require("path"),1),Rm={...process.env,GIT_OPTIONAL_LOCKS:"0"},Pm=3e3;function aZ(t){let e=0,r=0,n=0;for(let s of t.split(` +`)){if(!s.trim())continue;let i=s.split(" ");i.length>=2&&(e+=i[0]==="-"?0:parseInt(i[0],10)||0,r+=i[1]==="-"?0:parseInt(i[1],10)||0,n++)}return{additions:e,deletions:r,fileCount:n}}function VEe(t,e){if(!e.startsWith("spec/"))return null;let r="main";try{let n=hb.default.join(t,".git");if((0,gb.existsSync)(n)){let s=(0,gb.readFileSync)(n,"utf-8").trim();if(s.startsWith("gitdir:")){let i=s.replace("gitdir:","").trim(),a=hb.default.resolve(t,i,"..",".."),o=hb.default.dirname(a),u=(0,Al.execFileSync)("git",["worktree","list"],{cwd:o,encoding:"utf-8",timeout:Pm,env:Rm}).split(` +`)[0].match(/\[([^\]]+)\]/);u&&(r=u[1])}}}catch{}return{active:!0,baseBranch:r}}function oZ(t){try{let e=(0,Al.execFileSync)("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:t,encoding:"utf-8",timeout:Pm,env:Rm}).trim(),r=(0,Al.execFileSync)("git",["status","--porcelain"],{cwd:t,encoding:"utf-8",timeout:Pm,env:Rm}),n=0,s=0,i=0;for(let p of r.split(` +`)){if(!p)continue;let d=p[0]||" ",m=p[1]||" ";d==="?"&&m==="?"?i++:(d!==" "&&d!=="?"&&n++,m!==" "&&s++)}let a=0,o=0;try{let p=(0,Al.execFileSync)("git",["diff","--numstat","HEAD"],{cwd:t,encoding:"utf-8",timeout:Pm,env:Rm}),d=aZ(p);a=d.additions,o=d.deletions}catch{}let c=VEe(t,e),l=0;if(c)try{let p=`${c.baseBranch}...${e}`,d=(0,Al.execFileSync)("git",["diff","--numstat",p],{cwd:t,encoding:"utf-8",timeout:Pm,env:Rm}),m=aZ(d);a+=m.additions,o+=m.deletions,l=m.fileCount}catch{}let u=n+s+i+l;return{branch:e,staged:n,unstaged:s,untracked:i,totalFiles:u,additions:a,deletions:o,worktree:c}}catch{return{branch:null,staged:0,unstaged:0,untracked:0,totalFiles:0,additions:0,deletions:0}}}var gr=require("fs"),Mr=Q(require("path"),1);re();var cZ=["docs/plans","docs/prd"];function Im(t,e){if(!e.endsWith(".md"))return!1;let r=Mr.default.resolve(t);for(let s of cZ){let i=Mr.default.join(r,s);if(e.startsWith(i+Mr.default.sep)||e.startsWith(i+"/"))return!0}let n=Mr.default.join(r,".worktrees");if(e.startsWith(n)){for(let s of cZ)if(e.includes(`/${s}/`))return!0}return!1}function M1(t,e){if(!e.endsWith(".md"))return!1;let r=Mr.default.resolve(t),n=Mr.default.join(r,"docs","plans");if(e.startsWith(n+Mr.default.sep)||e.startsWith(n+"/"))return!0;let s=Mr.default.join(r,".worktrees");return!!(e.startsWith(s)&&e.includes("/docs/plans/"))}function vb(t,e,r,n){let s=t.match(/^Status:\s*(\w+)/m);if(!s){let w=/^- \[[ x]\] Task \d+:/m.test(t),S=/^# .+(Plan|Fix)/m.test(t);if(!w&&!S)return null;_.warn("HTTP","Plan file missing Status header, defaulting to PENDING",{filePath:r})}let i=s?.[1]??"PENDING",a=(t.match(/^- \[x\] Task \d+:/gm)||[]).length,o=(t.match(/^- \[ \] Task \d+:/gm)||[]).length;a===0&&o===0&&(o=(t.match(/^### Task \d+:/gm)||[]).length);let c=a+o,l=t.match(/^Approved:\s*(\w+)/m),u=l?l[1].toLowerCase()==="yes":!1,p=t.match(/^Iterations:\s*(\d+)/m),d=p?parseInt(p[1],10):0,m=t.match(/^Worktree:\s*(\w+)/m),f=m?m[1].toLowerCase()!=="no":!0,v=t.match(/^Type:\s*(\w+)/m)?.[1]==="Bugfix"?"Bugfix":"Feature",y=t.match(/^Author:\s*(.+)/m)?.[1].trim()||void 0,b;i==="PENDING"&&!u?b="plan":i==="PENDING"&&u?b="implement":i==="COMPLETE"||i==="VERIFIED"?b="verify":b=i.toLowerCase();let x=e.replace(".md","");return x.match(/^\d{4}-\d{2}-\d{2}-/)&&(x=x.split("-").slice(3).join("-")),{name:x,status:i,completed:a,total:c,phase:b,iterations:d,approved:u,worktree:f,specType:v,author:y,filePath:r,modifiedAt:n.toISOString()}}function KEe(t){let e=Mr.default.join(t,".worktrees");if(!(0,gr.existsSync)(e))return[];let r=[];try{let n=(0,gr.readdirSync)(e,{withFileTypes:!0});for(let s of n){if(!s.isDirectory())continue;let i=Mr.default.join(e,s.name,"docs","plans");(0,gr.existsSync)(i)&&r.push(i)}}catch(n){_.error("HTTP","Failed to read worktrees directory",{worktreesDir:e},n)}return r}var lZ=new Map,JEe=0;function z1(t){let e;try{e=(0,gr.readdirSync)(t).filter(a=>a.endsWith(".md")).sort().reverse().map(a=>{let o=Mr.default.join(t,a),c=(0,gr.statSync)(o);return{name:a,filePath:o,mtimeMs:c.mtimeMs,size:c.size}})}catch(i){return _.error("HTTP","Failed to read plans from directory",{plansDir:t},i),[]}let r=e.map(i=>`${i.name}:${i.mtimeMs}:${i.size}`).join("|"),n=lZ.get(t);if(n&&n.fingerprint===r)return n.plans;JEe+=1;let s=[];for(let i of e)try{let a=(0,gr.readFileSync)(i.filePath,"utf-8"),o=vb(a,i.name,i.filePath,new Date(i.mtimeMs));o&&s.push(o)}catch(a){_.error("HTTP","Failed to read plan file",{filePath:i.filePath},a)}return lZ.set(t,{fingerprint:r,plans:s}),s}function yb(t){let e=[],r=Mr.default.join(t,"docs","plans");return(0,gr.existsSync)(r)&&e.push(r),e.push(...KEe(t)),e}function bb(t){let e=new Map;for(let r of t){let n=e.get(r.name);if(!n){e.set(r.name,r);continue}let s=r.filePath.includes("/.worktrees/"),i=n.filePath.includes("/.worktrees/");s&&!i?e.set(r.name,r):!s&&i||new Date(r.modifiedAt).getTime()>new Date(n.modifiedAt).getTime()&&e.set(r.name,r)}return Array.from(e.values())}function uZ(t){let e=new Date;e.setHours(0,0,0,0);let r=[];for(let n of yb(t))try{let s=(0,gr.readdirSync)(n).filter(i=>i.endsWith(".md")).sort().reverse();for(let i of s){let a=Mr.default.join(n,i),o=(0,gr.statSync)(a),c=new Date(o.mtime);if(c.setHours(0,0,0,0),c.getTime()!==e.getTime())continue;let l=(0,gr.readFileSync)(a,"utf-8"),u=vb(l,i,a,o.mtime);u&&u.status!=="VERIFIED"&&r.push(u)}}catch(s){_.error("HTTP","Failed to read active plans",{plansDir:n},s)}return bb(r)}function pZ(t){let e=[];for(let r of yb(t))e.push(...z1(r));return bb(e).sort((r,n)=>new Date(n.modifiedAt).getTime()-new Date(r.modifiedAt).getTime()).slice(0,10)}function Cm(t){let e=[];for(let r of yb(t))e.push(...z1(r));return bb(e).sort((r,n)=>new Date(n.modifiedAt).getTime()-new Date(r.modifiedAt).getTime())}function dZ(t){let e=[];for(let d of yb(t))e.push(...z1(d));let r=bb(e);if(r.length===0)return{totalSpecs:0,verified:0,inProgress:0,pending:0,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]};let n=r.filter(d=>d.status==="VERIFIED"),s=r.filter(d=>d.status==="PENDING"&&d.approved||d.status==="COMPLETE"),i=r.filter(d=>d.status==="PENDING"&&!d.approved),a=n.reduce((d,m)=>d+m.iterations,0),o=r.reduce((d,m)=>d+m.completed,0),c=r.reduce((d,m)=>d+m.total,0),l=new Map;for(let d of n){let m=d.modifiedAt.slice(0,10);l.set(m,(l.get(m)||0)+1)}let u=Array.from(l.entries()).sort(([d],[m])=>d.localeCompare(m)).map(([d,m])=>({date:d,count:m})),p=n.sort((d,m)=>new Date(m.modifiedAt).getTime()-new Date(d.modifiedAt).getTime()).slice(0,5).map(d=>({name:d.name,verifiedAt:d.modifiedAt}));return{totalSpecs:r.length,verified:n.length,inProgress:s.length,pending:i.length,avgIterations:n.length>0?Math.round(a/n.length*10)/10:0,totalTasksCompleted:o,totalTasks:c,completionTimeline:u,recentlyVerified:p}}function QEe(t,e,r,n){let s=e.replace(".md","");s.match(/^\d{4}-\d{2}-\d{2}-/)&&(s=s.split("-").slice(3).join("-"));let i=[];for(let p of t.matchAll(/^## (.+)$/gm))i.push(p[1].trim());let a=t.match(/^Author:\s*(.+)/m),o=t.match(/^Category:\s*(.+)/m),c=t.match(/^Status:\s*(.+)/m),l=t.match(/^Research:\s*(.+)/m),u=t.match(/^Created:\s*(.+)/m);return{name:s,filePath:r,modifiedAt:n.toISOString(),sections:i,author:a?.[1].trim()||void 0,category:o?.[1].trim()||void 0,status:c?.[1].trim()||void 0,research:l?.[1].trim()||void 0,createdAt:u?.[1].trim()||void 0}}function YEe(t){let e=[];try{let r=(0,gr.readdirSync)(t).filter(n=>n.endsWith(".md")).sort().reverse();for(let n of r){let s=Mr.default.join(t,n),i=(0,gr.statSync)(s),a=(0,gr.readFileSync)(s,"utf-8");e.push(QEe(a,n,s,i.mtime))}}catch(r){_.error("HTTP","Failed to read PRDs from directory",{prdDir:t},r)}return e}function xb(t){let e=Mr.default.join(t,"docs","prd");return(0,gr.existsSync)(e)?YEe(e).sort((r,n)=>new Date(n.modifiedAt).getTime()-new Date(r.modifiedAt).getTime()).slice(0,50):[]}var _b=class t extends Te{dbManager;sseBroadcaster;constructor(e,r){super(),this.dbManager=e??null,this.sseBroadcaster=r??null}static VALID_PLAN_STATUSES=new Set(["PENDING","COMPLETE","VERIFIED"]);isValidPlanStatus(e){return typeof e=="string"&&t.VALID_PLAN_STATUSES.has(e)}setupRoutes(e){e.get("/api/plan",this.handleGetActivePlan.bind(this)),e.get("/api/plans",this.handleGetAllPlans.bind(this)),e.get("/api/plans/active",this.handleGetActiveSpecs.bind(this)),e.get("/api/plans/active/all",this.handleGetAllProjectSpecs.bind(this)),e.get("/api/plan/content",this.handleGetPlanContent.bind(this)),e.delete("/api/plan",this.handleDeletePlan.bind(this)),e.get("/api/plans/stats",this.handleGetPlanStats.bind(this)),e.get("/api/git",this.handleGetGitInfo.bind(this)),e.get("/api/prd",this.handleGetAllPRDs.bind(this)),e.get("/api/prd/all",this.handleGetAllProjectPRDs.bind(this)),e.get("/api/prd/content",this.handleGetPRDContent.bind(this)),e.delete("/api/prd",this.handleDeletePRD.bind(this)),e.post("/api/sessions/:sessionDbId/plan",this.handleAssociatePlan.bind(this)),e.post("/api/sessions/by-content-id/:contentSessionId/plan",this.handleAssociatePlanByContentId.bind(this)),e.get("/api/sessions/:sessionDbId/plan",this.handleGetSessionPlan.bind(this)),e.get("/api/sessions/by-content-id/:contentSessionId/plan",this.handleGetSessionPlanByContentId.bind(this)),e.delete("/api/sessions/:sessionDbId/plan",this.handleClearSessionPlan.bind(this)),e.put("/api/sessions/:sessionDbId/plan/status",this.handleUpdatePlanStatus.bind(this))}handleGetPlanStats=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n);r.json(dZ(s))});handleGetActivePlan=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n),i=uZ(s);r.json({active:i.length>0,plans:i,plan:i[0]||null})});handleGetAllPlans=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n);r.json({plans:pZ(s)})});handleGetGitInfo=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n);r.json(oZ(s))});handleGetActiveSpecs=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n);r.json({specs:Cm(s)})});handleGetAllProjectSpecs=this.wrapHandler((e,r)=>{let n=[],s=new Set;if(this.dbManager){let a=this.dbManager.getSessionStore().getAllProjectRoots();for(let{project:o,rootPath:c}of a){if(s.has(c))continue;s.add(c);let l=Cm(c);for(let u of l)u.project=o;n.push(...l)}}let i=process.env.CLAUDE_PROJECT_ROOT||process.cwd();if(!s.has(i)){let a=Cm(i);for(let o of a)o.project=gi.default.basename(i);n.push(...a)}n.sort((a,o)=>new Date(o.modifiedAt).getTime()-new Date(a.modifiedAt).getTime()),r.json({specs:n})});handleGetPlanContent=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n),i=e.query.path;if(!i){let p=Cm(s);if(p.length===0){r.status(404).json({error:"No active specs found"});return}let d=p[0];try{let m=(0,yn.readFileSync)(d.filePath,"utf-8");r.json({content:m,name:d.name,status:d.status,filePath:d.filePath})}catch{r.status(404).json({error:"Plan file not found"})}return}let a=gi.default.resolve(s,i);if(!M1(s,a)){r.status(403).json({error:"Access denied: path must be within docs/plans/ or .worktrees/*/docs/plans/"});return}if(!(0,yn.existsSync)(a)){r.status(404).json({error:"Plan not found"});return}let o=(0,yn.readFileSync)(a,"utf-8"),c=gi.default.basename(a),l=(0,yn.statSync)(a),u=vb(o,c,a,l.mtime);r.json({content:o,name:u?.name||c.replace(".md",""),status:u?.status||"UNKNOWN",filePath:a})});handleDeletePlan=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n),i=e.query.path;if(!i){this.badRequest(r,"Missing path query parameter");return}let a=gi.default.resolve(s,i);if(!M1(s,a)){r.status(403).json({error:"Access denied: path must be within docs/plans/ or .worktrees/*/docs/plans/"});return}if(!(0,yn.existsSync)(a)){this.notFound(r,"Plan not found");return}(0,yn.unlinkSync)(a),r.json({success:!0})});handleAssociatePlan=this.wrapHandler((e,r)=>{let n=this.parseIntParam(e,r,"sessionDbId");if(n===null||!this.validateRequired(e,r,["planPath","status"]))return;if(!this.isValidPlanStatus(e.body.status)){this.badRequest(r,`Invalid status: ${e.body.status}. Must be PENDING, COMPLETE, or VERIFIED`);return}let s=this.getDb(r);if(!s)return;let i=b1(s,n,e.body.planPath,e.body.status);this.broadcastPlanChange(),r.json({plan:i})});handleAssociatePlanByContentId=this.wrapHandler((e,r)=>{let n=e.params.contentSessionId;if(!n){this.badRequest(r,"Missing contentSessionId");return}if(!this.validateRequired(e,r,["planPath","status"]))return;if(!this.isValidPlanStatus(e.body.status)){this.badRequest(r,`Invalid status: ${e.body.status}. Must be PENDING, COMPLETE, or VERIFIED`);return}let s=this.getDb(r);if(!s)return;let i=s.prepare("SELECT id FROM sdk_sessions WHERE content_session_id = ?").get(n);if(!i){this.notFound(r,"Session not found");return}let a=b1(s,i.id,e.body.planPath,e.body.status);this.broadcastPlanChange(),r.json({plan:a})});handleGetSessionPlan=this.wrapHandler((e,r)=>{let n=this.parseIntParam(e,r,"sessionDbId");if(n===null)return;let s=this.getDb(r);s&&r.json({plan:Wy(s,n)})});handleGetSessionPlanByContentId=this.wrapHandler((e,r)=>{let n=e.params.contentSessionId;if(!n){this.badRequest(r,"Missing contentSessionId");return}let s=this.getDb(r);s&&r.json({plan:N3(s,n)})});handleClearSessionPlan=this.wrapHandler((e,r)=>{let n=this.parseIntParam(e,r,"sessionDbId");if(n===null)return;let s=this.getDb(r);s&&(M3(s,n),this.broadcastPlanChange(),r.json({success:!0}))});handleUpdatePlanStatus=this.wrapHandler((e,r)=>{let n=this.parseIntParam(e,r,"sessionDbId");if(n===null||!this.validateRequired(e,r,["status"]))return;if(!this.isValidPlanStatus(e.body.status)){this.badRequest(r,`Invalid status: ${e.body.status}. Must be PENDING, COMPLETE, or VERIFIED`);return}let s=this.getDb(r);s&&(D3(s,n,e.body.status),this.broadcastPlanChange(),r.json({plan:Wy(s,n)}))});handleGetAllPRDs=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n);r.json({prds:xb(s)})});handleGetAllProjectPRDs=this.wrapHandler((e,r)=>{let n=[],s=new Set;if(this.dbManager){let a=this.dbManager.getSessionStore().getAllProjectRoots();for(let{project:o,rootPath:c}of a){if(s.has(c))continue;s.add(c);let l=xb(c);for(let u of l)n.push({...u,project:o})}}let i=process.env.CLAUDE_PROJECT_ROOT||process.cwd();if(!s.has(i)){let a=xb(i);for(let o of a)n.push({...o,project:gi.default.basename(i)})}n.sort((a,o)=>new Date(o.modifiedAt).getTime()-new Date(a.modifiedAt).getTime()),r.json({prds:n.slice(0,10)})});handleGetPRDContent=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n),i=e.query.path;if(!i){this.badRequest(r,"Missing path query parameter");return}let a=gi.default.resolve(s,i);if(!Im(s,a)){r.status(403).json({error:"Access denied: path must be within docs/prd/"});return}if(!(0,yn.existsSync)(a)){r.status(404).json({error:"PRD not found"});return}let o=(0,yn.readFileSync)(a,"utf-8"),l=gi.default.basename(a).replace(".md","");l.match(/^\d{4}-\d{2}-\d{2}-/)&&(l=l.split("-").slice(3).join("-")),r.json({content:o,name:l,filePath:a})});handleDeletePRD=this.wrapHandler((e,r)=>{let n=e.query.project,s=hr(this.dbManager,n),i=e.query.path;if(!i){this.badRequest(r,"Missing path query parameter");return}let a=gi.default.resolve(s,i);if(!Im(s,a)){r.status(403).json({error:"Access denied: path must be within docs/prd/"});return}if(!(0,yn.existsSync)(a)){this.notFound(r,"PRD not found");return}(0,yn.unlinkSync)(a),r.json({success:!0})});broadcastPlanChange(){this.sseBroadcaster?.broadcast({type:"plan_association_changed"})}getDb(e){return this.dbManager?this.dbManager.getSessionStore().db:(e.status(503).json({error:"Database not available"}),null)}};var XEe=500;function wb(t,e){let r=t.prepare(`INSERT INTO notifications (type, title, message, plan_path, session_id) VALUES (?, ?, ?, ?, ?)`).run(e.type,e.title,e.message,e.plan_path??null,e.session_id??null);return t.prepare(`DELETE FROM notifications WHERE id NOT IN ( SELECT id FROM notifications ORDER BY created_at DESC, id DESC LIMIT ? - )`).run(iEe),t.prepare("SELECT * FROM notifications WHERE id = ?").get(r.lastInsertRowid)}function vZ(t,e=50,r=!1){return r?t.prepare("SELECT * FROM notifications ORDER BY created_at DESC, id DESC LIMIT ?").all(e):t.prepare("SELECT * FROM notifications WHERE is_read = 0 ORDER BY created_at DESC, id DESC LIMIT ?").all(e)}function yZ(t,e){t.prepare("UPDATE notifications SET is_read = 1 WHERE id = ?").run(e)}function bZ(t){t.prepare("UPDATE notifications SET is_read = 1 WHERE is_read = 0").run()}function xZ(t){return t.prepare("DELETE FROM notifications").run().changes}function _Z(t){return t.prepare("SELECT COUNT(*) as count FROM notifications WHERE is_read = 0").get().count}var Eb=class extends Te{dbManager;sseBroadcaster;constructor(e,r){super(),this.dbManager=e??null,this.sseBroadcaster=r??null}setupRoutes(e){e.post("/api/notifications",this.wrapHandler(this.handleCreate.bind(this))),e.get("/api/notifications",this.wrapHandler(this.handleList.bind(this))),e.patch("/api/notifications/:id/read",this.wrapHandler(this.handleMarkRead.bind(this))),e.post("/api/notifications/read-all",this.wrapHandler(this.handleMarkAllRead.bind(this))),e.get("/api/notifications/unread-count",this.wrapHandler(this.handleUnreadCount.bind(this))),e.delete("/api/notifications",this.wrapHandler(this.handleDeleteAll.bind(this)))}handleCreate(e,r){if(!this.validateRequired(e,r,["type","title","message"]))return;if(String(e.body.title).length>500||String(e.body.message).length>2e3)return this.badRequest(r,"Field too long");let n=this.dbManager.getSessionStore().db,s=kb(n,{type:e.body.type,title:e.body.title,message:e.body.message,plan_path:e.body.planPath,session_id:e.body.sessionId});this.sseBroadcaster?.broadcast({type:"new_notification",notification:s}),r.status(201).json(s)}handleList(e,r){let n=this.dbManager.getSessionStore().db,s=parseInt(e.query.limit,10)||50,i=e.query.include_read==="true",a=vZ(n,s,i);r.status(200).json(a)}handleMarkRead(e,r){let n=this.parseIntParam(e,r,"id");if(n===null)return;let s=this.dbManager.getSessionStore().db;yZ(s,n),r.status(200).json({success:!0})}handleMarkAllRead(e,r){let n=this.dbManager.getSessionStore().db;bZ(n),r.status(200).json({success:!0})}handleUnreadCount(e,r){let n=this.dbManager.getSessionStore().db,s=_Z(n);r.status(200).json({count:s})}handleDeleteAll(e,r){let n=this.dbManager.getSessionStore().db,s=xZ(n);r.status(200).json({success:!0,deleted:s})}};var en=require("child_process"),Pb=require("fs"),Tb=Q(require("path"),1);var bn={...process.env,GIT_OPTIONAL_LOCKS:"0"},Rb=class extends Te{setupRoutes(e){e.get("/api/worktree/status",this.handleGetStatus.bind(this)),e.get("/api/worktree/diff",this.handleGetDiff.bind(this)),e.get("/api/worktree/diff/:file(*)",this.handleGetFileDiff.bind(this)),e.post("/api/worktree/sync",this.handleSync.bind(this)),e.post("/api/worktree/discard",this.handleDiscard.bind(this))}handleGetStatus=this.wrapHandler((e,r)=>{let n=process.env.CLAUDE_PROJECT_ROOT||process.cwd(),s=this.getWorktreeStatus(n);r.json(s)});handleGetDiff=this.wrapHandler((e,r)=>{let n=process.env.CLAUDE_PROJECT_ROOT||process.cwd(),s=this.getWorktreeStatus(n);if(!s.active||!s.branch||!s.baseBranch){r.json({active:!1,files:[]});return}let i=this.getChangedFiles(n,s.baseBranch,s.branch);r.json({active:!0,files:i})});handleGetFileDiff=this.wrapHandler((e,r)=>{let n=process.env.CLAUDE_PROJECT_ROOT||process.cwd(),s=this.getWorktreeStatus(n),i=e.params.file;if(!s.active||!s.branch||!s.baseBranch){this.badRequest(r,"No active worktree");return}if(!i){this.badRequest(r,"Missing file path");return}try{let a=(0,en.execFileSync)("git",["diff",`${s.baseBranch}...${s.branch}`,"--",i],{cwd:n,encoding:"utf-8",timeout:5e3,env:bn});r.json({file:i,diff:a})}catch{this.notFound(r,"File not found in diff")}});handleSync=this.wrapHandler((e,r)=>{let n=process.env.CLAUDE_PROJECT_ROOT||process.cwd(),s=this.getWorktreeStatus(n);if(!s.active||!s.branch||!s.baseBranch){this.badRequest(r,"No active worktree");return}try{let i=this.getMainRepoRoot(n);if(!i){r.status(500).json({error:"Cannot determine main repository root"});return}(0,en.execFileSync)("git",["checkout",s.baseBranch],{cwd:i,encoding:"utf-8",timeout:1e4,env:bn}),(0,en.execFileSync)("git",["merge","--squash",s.branch],{cwd:i,encoding:"utf-8",timeout:3e4,env:bn});let a=s.planSlug||s.branch.replace("spec/","");(0,en.execFileSync)("git",["commit","-m",`feat: implement spec/${a}`],{cwd:i,encoding:"utf-8",timeout:1e4,env:bn});let o=(0,en.execFileSync)("git",["rev-parse","HEAD"],{cwd:i,encoding:"utf-8",timeout:5e3,env:bn}).toString().trim(),c=(0,en.execFileSync)("git",["diff","--stat","HEAD~1"],{cwd:i,encoding:"utf-8",timeout:5e3,env:bn}).toString(),l=this.countFilesFromStat(c);(0,en.execFileSync)("git",["worktree","remove",n,"--force"],{cwd:i,encoding:"utf-8",timeout:1e4,env:bn}),(0,en.execFileSync)("git",["branch","-D",s.branch],{cwd:i,encoding:"utf-8",timeout:5e3,env:bn}),r.json({success:!0,files_changed:l,commit_hash:o})}catch(i){r.status(500).json({error:i.message})}});handleDiscard=this.wrapHandler((e,r)=>{let n=process.env.CLAUDE_PROJECT_ROOT||process.cwd(),s=this.getWorktreeStatus(n);if(!s.active||!s.branch){this.badRequest(r,"No active worktree");return}try{let i=this.getMainRepoRoot(n);if(!i){r.status(500).json({error:"Cannot determine main repository root"});return}(0,en.execFileSync)("git",["worktree","remove",n,"--force"],{cwd:i,encoding:"utf-8",timeout:1e4,env:bn}),(0,en.execFileSync)("git",["branch","-D",s.branch],{cwd:i,encoding:"utf-8",timeout:5e3,env:bn}),r.json({success:!0})}catch(i){r.status(500).json({error:i.message})}});getWorktreeStatus(e){try{let r=(0,en.execFileSync)("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:e,encoding:"utf-8",timeout:2e3,env:bn}).toString().trim();if(!r.startsWith("spec/"))return{active:!1,worktreePath:null,branch:null,baseBranch:null,planSlug:null};let n=this.getMainRepoRoot(e),s="main";if(n)try{let c=(0,en.execFileSync)("git",["worktree","list"],{cwd:n,encoding:"utf-8",timeout:2e3,env:bn}).toString().split(` + )`).run(XEe),t.prepare("SELECT * FROM notifications WHERE id = ?").get(r.lastInsertRowid)}function mZ(t,e=50,r=!1){return r?t.prepare("SELECT * FROM notifications ORDER BY created_at DESC, id DESC LIMIT ?").all(e):t.prepare("SELECT * FROM notifications WHERE is_read = 0 ORDER BY created_at DESC, id DESC LIMIT ?").all(e)}function fZ(t,e){t.prepare("UPDATE notifications SET is_read = 1 WHERE id = ?").run(e)}function hZ(t){t.prepare("UPDATE notifications SET is_read = 1 WHERE is_read = 0").run()}function gZ(t){return t.prepare("DELETE FROM notifications").run().changes}function vZ(t){return t.prepare("SELECT COUNT(*) as count FROM notifications WHERE is_read = 0").get().count}var Sb=class extends Te{dbManager;sseBroadcaster;constructor(e,r){super(),this.dbManager=e??null,this.sseBroadcaster=r??null}setupRoutes(e){e.post("/api/notifications",this.wrapHandler(this.handleCreate.bind(this))),e.get("/api/notifications",this.wrapHandler(this.handleList.bind(this))),e.patch("/api/notifications/:id/read",this.wrapHandler(this.handleMarkRead.bind(this))),e.post("/api/notifications/read-all",this.wrapHandler(this.handleMarkAllRead.bind(this))),e.get("/api/notifications/unread-count",this.wrapHandler(this.handleUnreadCount.bind(this))),e.delete("/api/notifications",this.wrapHandler(this.handleDeleteAll.bind(this)))}handleCreate(e,r){if(!this.validateRequired(e,r,["type","title","message"]))return;if(String(e.body.title).length>500||String(e.body.message).length>2e3)return this.badRequest(r,"Field too long");let n=this.dbManager.getSessionStore().db,s=wb(n,{type:e.body.type,title:e.body.title,message:e.body.message,plan_path:e.body.planPath,session_id:e.body.sessionId});this.sseBroadcaster?.broadcast({type:"new_notification",notification:s}),r.status(201).json(s)}handleList(e,r){let n=this.dbManager.getSessionStore().db,s=parseInt(e.query.limit,10)||50,i=e.query.include_read==="true",a=mZ(n,s,i);r.status(200).json(a)}handleMarkRead(e,r){let n=this.parseIntParam(e,r,"id");if(n===null)return;let s=this.dbManager.getSessionStore().db;fZ(s,n),r.status(200).json({success:!0})}handleMarkAllRead(e,r){let n=this.dbManager.getSessionStore().db;hZ(n),r.status(200).json({success:!0})}handleUnreadCount(e,r){let n=this.dbManager.getSessionStore().db,s=vZ(n);r.status(200).json({count:s})}handleDeleteAll(e,r){let n=this.dbManager.getSessionStore().db,s=gZ(n);r.status(200).json({success:!0,deleted:s})}};var en=require("child_process"),Tb=require("fs"),Eb=Q(require("path"),1);var bn={...process.env,GIT_OPTIONAL_LOCKS:"0"},kb=class extends Te{setupRoutes(e){e.get("/api/worktree/status",this.handleGetStatus.bind(this)),e.get("/api/worktree/diff",this.handleGetDiff.bind(this)),e.get("/api/worktree/diff/:file(*)",this.handleGetFileDiff.bind(this)),e.post("/api/worktree/sync",this.handleSync.bind(this)),e.post("/api/worktree/discard",this.handleDiscard.bind(this))}handleGetStatus=this.wrapHandler((e,r)=>{let n=process.env.CLAUDE_PROJECT_ROOT||process.cwd(),s=this.getWorktreeStatus(n);r.json(s)});handleGetDiff=this.wrapHandler((e,r)=>{let n=process.env.CLAUDE_PROJECT_ROOT||process.cwd(),s=this.getWorktreeStatus(n);if(!s.active||!s.branch||!s.baseBranch){r.json({active:!1,files:[]});return}let i=this.getChangedFiles(n,s.baseBranch,s.branch);r.json({active:!0,files:i})});handleGetFileDiff=this.wrapHandler((e,r)=>{let n=process.env.CLAUDE_PROJECT_ROOT||process.cwd(),s=this.getWorktreeStatus(n),i=e.params.file;if(!s.active||!s.branch||!s.baseBranch){this.badRequest(r,"No active worktree");return}if(!i){this.badRequest(r,"Missing file path");return}try{let a=(0,en.execFileSync)("git",["diff",`${s.baseBranch}...${s.branch}`,"--",i],{cwd:n,encoding:"utf-8",timeout:5e3,env:bn});r.json({file:i,diff:a})}catch{this.notFound(r,"File not found in diff")}});handleSync=this.wrapHandler((e,r)=>{let n=process.env.CLAUDE_PROJECT_ROOT||process.cwd(),s=this.getWorktreeStatus(n);if(!s.active||!s.branch||!s.baseBranch){this.badRequest(r,"No active worktree");return}try{let i=this.getMainRepoRoot(n);if(!i){r.status(500).json({error:"Cannot determine main repository root"});return}(0,en.execFileSync)("git",["checkout",s.baseBranch],{cwd:i,encoding:"utf-8",timeout:1e4,env:bn}),(0,en.execFileSync)("git",["merge","--squash",s.branch],{cwd:i,encoding:"utf-8",timeout:3e4,env:bn});let a=s.planSlug||s.branch.replace("spec/","");(0,en.execFileSync)("git",["commit","-m",`feat: implement spec/${a}`],{cwd:i,encoding:"utf-8",timeout:1e4,env:bn});let o=(0,en.execFileSync)("git",["rev-parse","HEAD"],{cwd:i,encoding:"utf-8",timeout:5e3,env:bn}).toString().trim(),c=(0,en.execFileSync)("git",["diff","--stat","HEAD~1"],{cwd:i,encoding:"utf-8",timeout:5e3,env:bn}).toString(),l=this.countFilesFromStat(c);(0,en.execFileSync)("git",["worktree","remove",n,"--force"],{cwd:i,encoding:"utf-8",timeout:1e4,env:bn}),(0,en.execFileSync)("git",["branch","-D",s.branch],{cwd:i,encoding:"utf-8",timeout:5e3,env:bn}),r.json({success:!0,files_changed:l,commit_hash:o})}catch(i){r.status(500).json({error:i.message})}});handleDiscard=this.wrapHandler((e,r)=>{let n=process.env.CLAUDE_PROJECT_ROOT||process.cwd(),s=this.getWorktreeStatus(n);if(!s.active||!s.branch){this.badRequest(r,"No active worktree");return}try{let i=this.getMainRepoRoot(n);if(!i){r.status(500).json({error:"Cannot determine main repository root"});return}(0,en.execFileSync)("git",["worktree","remove",n,"--force"],{cwd:i,encoding:"utf-8",timeout:1e4,env:bn}),(0,en.execFileSync)("git",["branch","-D",s.branch],{cwd:i,encoding:"utf-8",timeout:5e3,env:bn}),r.json({success:!0})}catch(i){r.status(500).json({error:i.message})}});getWorktreeStatus(e){try{let r=(0,en.execFileSync)("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:e,encoding:"utf-8",timeout:2e3,env:bn}).toString().trim();if(!r.startsWith("spec/"))return{active:!1,worktreePath:null,branch:null,baseBranch:null,planSlug:null};let n=this.getMainRepoRoot(e),s="main";if(n)try{let c=(0,en.execFileSync)("git",["worktree","list"],{cwd:n,encoding:"utf-8",timeout:2e3,env:bn}).toString().split(` `)[0].match(/\[([^\]]+)\]/);c&&(s=c[1])}catch{}let i=r.replace("spec/","");return{active:!0,worktreePath:e,branch:r,baseBranch:s,planSlug:i}}catch{return{active:!1,worktreePath:null,branch:null,baseBranch:null,planSlug:null}}}getChangedFiles(e,r,n){try{let s=(0,en.execFileSync)("git",["diff","--name-status",`${r}...${n}`],{cwd:e,encoding:"utf-8",timeout:1e4,env:bn}).toString(),i=(0,en.execFileSync)("git",["diff","--numstat",`${r}...${n}`],{cwd:e,encoding:"utf-8",timeout:1e4,env:bn}).toString();return this.parseChangedFiles(s,i)}catch{return[]}}parseChangedFiles(e,r){let n=new Map;for(let i of r.split(` `)){if(!i.trim())continue;let a=i.split(" ");a.length>=3&&n.set(a[2],{additions:parseInt(a[0],10)||0,deletions:parseInt(a[1],10)||0})}let s=[];for(let i of e.split(` -`)){if(!i.trim())continue;let a=i.split(" ");if(a.length>=2){let o=a[0].charAt(0),c=a[a.length-1],l=n.get(c)||{additions:0,deletions:0};s.push({path:c,status:o,additions:l.additions,deletions:l.deletions})}}return s}getMainRepoRoot(e){try{let r=Tb.default.join(e,".git");if((0,Pb.existsSync)(r))try{let n=(0,Pb.readFileSync)(r,"utf-8").trim();if(n.startsWith("gitdir:")){let s=n.replace("gitdir:","").trim(),i=Tb.default.resolve(e,s,"..","..");return Tb.default.dirname(i)}}catch{return e}return e}catch{return null}}countFilesFromStat(e){let r=e.trim().split(` -`);if(r.length===0)return 0;let s=r[r.length-1].match(/(\d+) files? changed/);return s?parseInt(s[1],10):0}};var Am=require("node:fs/promises"),AZ=require("node:fs"),jZ=require("node:os"),_o=require("node:path");re();var aEe=/\b(test|pytest|vitest|jest|mocha|spec|coverage|npm\s+test|npx\s+vitest|npx\s+jest)\b/i,oEe=/\bgit\s+(push|pull|commit|merge|rebase|checkout|branch|stash|log|diff|status|add|reset|cherry-pick|tag)\b/i,cEe=/\b(npm\s+run\s+build|npm\s+publish|pip\s+install|docker|deploy|make\s+build|npm\s+run\s+dev|npm\s+start|pm2|systemctl|brew|cargo\s+build|npm\s+run|build)\b/i,lEe=/\b(npm\s+install|pip\s+install|brew\s+install|apt\s+install|cargo\s+add)\b/i,q1=/\b(fix|bug|error|broken|failing|crash|issue|debug|traceback|exception|stack\s*trace|not\s+working|wrong|unexpected|status\s+code|404|500|401|403)\b/i,wZ=/\b(add|create|implement|new|build|feature|introduce|set\s*up|scaffold|generate|make\s+(?:a|me|the)|write\s+(?:a|me|the))\b/i,uEe=/\b(refactor|clean\s*up|rename|reorganize|simplify|extract|restructure|move|migrate|split)\b/i,pEe=/\b(brainstorm|idea|what\s+if|explore|think\s+about|approach|strategy|design|consider|how\s+should|what\s+would|opinion|suggest|recommend)\b/i,SZ=/\b(research|investigate|look\s+into|find\s+out|check|search|analyze|review|understand|explain|how\s+does|what\s+is|show\s+me|list|compare)\b/i,dEe=/\.(py|js|ts|tsx|jsx|json|yaml|yml|toml|sql|sh|go|rs|java|rb|php|css|html|md|csv|xml)\b/i,mEe=/\b(run\s+\S+\.\w+|execute|scrip?t|curl|api\s+\S+|endpoint|request\s+url|fetch\s+\S+|query|database|db\s+\S+)\b/i,fEe=/https?:\/\/\S+/i,F1=new Set(["Edit","Write","MultiEdit","FileEditTool","FileWriteTool","NotebookEdit"]),hEe=new Set(["Read","Grep","Glob","FileReadTool","GrepTool","GlobTool"]),Ib=new Set(["Bash","BashTool","PowerShellTool"]),gEe=new Set(["TaskCreate","TaskUpdate","TaskGet","TaskList","TaskOutput","TaskStop","TodoWrite"]),vEe=new Set(["WebSearch","WebFetch","ToolSearch"]);function yEe(t){return t.some(e=>F1.has(e))}function bEe(t){return t.some(e=>hEe.has(e))}function xEe(t){return t.some(e=>Ib.has(e))}function _Ee(t){return t.some(e=>gEe.has(e))}function wEe(t){return t.some(e=>vEe.has(e))}function SEe(t){return t.some(e=>e.startsWith("mcp__"))}function kEe(t){return t.some(e=>e==="Skill")}function kZ(t){return t.assistantCalls.flatMap(e=>e.tools)}function EEe(t){let e=kZ(t);if(e.length===0)return null;if(t.assistantCalls.some(l=>l.hasPlanMode))return"planning";if(t.assistantCalls.some(l=>l.hasAgentSpawn))return"delegation";let r=yEe(e),n=bEe(e),s=xEe(e),i=_Ee(e),a=wEe(e),o=SEe(e),c=kEe(e);if(s&&!r){let l=t.userMessage;if(aEe.test(l))return"testing";if(oEe.test(l))return"git";if(cEe.test(l)||lEe.test(l))return"build/deploy"}return r?"coding":s&&n?"exploration":s?"coding":a||o||n&&!r?"exploration":i&&!r?"planning":c?"general":null}function TEe(t,e){return t==="coding"?q1.test(e)?"debugging":uEe.test(e)?"refactoring":wZ.test(e)?"feature":"coding":t==="exploration"?SZ.test(e)?"exploration":q1.test(e)?"debugging":"exploration":t}function REe(t){return pEe.test(t)?"brainstorming":SZ.test(t)?"exploration":q1.test(t)?"debugging":wZ.test(t)?"feature":dEe.test(t)||mEe.test(t)?"coding":fEe.test(t)?"exploration":"conversation"}function PEe(t){let e=!1,r=!1,n=0;for(let s of t.assistantCalls){let i=s.tools.some(o=>F1.has(o)),a=s.tools.some(o=>Ib.has(o));i&&(r&&n++,e=!0,r=!1),a&&e&&(r=!0)}return n}function IEe(t){return t.assistantCalls.some(e=>e.tools.some(r=>F1.has(r)))}function EZ(t){let e=kZ(t),r;if(e.length===0)r=REe(t.userMessage);else{let n=EEe(t);r=n?TEe(n,t.userMessage):"general"}return{...t,category:r,retries:PEe(t),hasEdits:IEe(t)}}function TZ(t){return t?t.split(/&&|\|\||;|\|/).map(r=>r.trim()).filter(Boolean).map(r=>{let n=r.split(/\s+/)[0]??"";return n==="sudo"||n==="env"?r.split(/\s+/)[1]??n:n}).filter(Boolean):[]}var RZ=require("node:fs/promises");async function PZ(t,e){let r=await(0,RZ.open)(t,"r");try{let n=r.createReadStream({encoding:"utf-8"}),s="",i=0;for await(let a of n){s+=a;let o;for(;(o=s.indexOf(` -`))!==-1;){let c=s.slice(0,o);s=s.slice(o+1),c.trim().length>0&&(e(c,i),i++)}}s.trim().length>0&&e(s,i)}finally{await r.close()}}function IZ(t){return t.replace(/-/g,"/")}var Nl=["coding","debugging","feature","refactoring","testing","exploration","planning","delegation","git","build/deploy","conversation","brainstorming","general"],CZ={coding:"Coding",debugging:"Debugging",feature:"Feature Dev",refactoring:"Refactoring",testing:"Testing",exploration:"Exploration",planning:"Planning",delegation:"Delegation",git:"Git Ops","build/deploy":"Build/Deploy",conversation:"Conversation",brainstorming:"Brainstorming",general:"General"};var NZ=process.env.CLAUDE_CONFIG_DIR?(0,_o.join)(process.env.CLAUDE_CONFIG_DIR,"projects"):(0,_o.join)((0,jZ.homedir)(),".claude","projects"),DZ=6e4,CEe=10,OZ=5*1024*1024,xo=new Map;function OEe(t){let e=t.dateRange?`${t.dateRange.start.getTime()}:${t.dateRange.end.getTime()}`:"none";return`${t.projectsBase??NZ}|${e}`}function H1(t,e){let r=Date.now();for(let[n,s]of xo)r-s.ts>DZ&&xo.delete(n);if(xo.size>=CEe){let n=[...xo.entries()].sort((s,i)=>s[1].ts-i[1].ts)[0];n&&xo.delete(n[0])}xo.set(t,{data:e,ts:r})}function AEe(t){try{return JSON.parse(t)}catch{return null}}function jEe(t){if(!t.message||t.message.role!=="user")return"";let e=t.message.content;return typeof e=="string"?e:Array.isArray(e)?e.filter(r=>r.type==="text").map(r=>r.text).join(" "):""}function NEe(t){return t.filter(e=>e.type==="tool_use").map(e=>e.name)}function DEe(t){return t.filter(e=>e.type==="tool_use"&&Ib.has(e.name)).flatMap(e=>{let r=e.input?.command;return typeof r=="string"?TZ(r):[]})}function MEe(t,e,r){if(t.type!=="assistant")return null;let n=t.message;if(!n?.usage||!n?.model||n.model===""||n.model==="unknown")return null;let s=n.usage,i={inputTokens:s.input_tokens??0,outputTokens:s.output_tokens??0,cacheCreationInputTokens:s.cache_creation_input_tokens??0,cacheReadInputTokens:s.cache_read_input_tokens??0,webSearchRequests:s.server_tool_use?.web_search_requests??0},a=NEe(n.content??[]),o=s.speed??"standard",c=Xy(n.model,i.inputTokens,i.outputTokens,i.cacheCreationInputTokens,i.cacheReadInputTokens,i.webSearchRequests,o),l=t.uuid,u=n.id??(l?`uuid:${l}`:`local:${e}:${r}`);return{model:n.model,usage:i,costUSD:c,tools:a,mcpTools:a.filter(p=>p.startsWith("mcp__")),hasAgentSpawn:a.includes("Agent"),hasPlanMode:a.includes("EnterPlanMode"),speed:o,timestamp:t.timestamp??"",bashCommands:DEe(n.content??[]),deduplicationKey:u}}function zEe(t,e){if(!e)return!0;let r=new Date(t).getTime();return Number.isNaN(r)?!0:r>=e.start.getTime()&&r<=e.end.getTime()}function $Ee(){let t={};for(let e of Nl)t[e]={turns:0,costUSD:0,retries:0,editTurns:0,oneShotTurns:0};return t}async function LEe(t,e,r,n){let s=[];try{await PZ(t,(R,O)=>{let C=AEe(R);C?(C.__lineIndex=O,s.push(C)):_.debug("PARSER","skipping malformed JSONL line",{filePath:t,index:O})})}catch(R){return _.warn("PARSER","failed to read JSONL file",{filePath:t,error:R instanceof Error?R.message:String(R)}),{session:null}}let i=null,a=null,o=[],c=null,l=[],u=()=>{if(c!==null&&l.length>0){let R={userMessage:jEe(c),assistantCalls:l,timestamp:c.timestamp??"",sessionId:i??""};zEe(R.timestamp,n)&&o.push(R)}c=null,l=[]};for(let R of s)if(i===null&&R.sessionId&&(i=R.sessionId),a===null&&typeof R.cwd=="string"&&R.cwd.length>0&&(a=R.cwd),R.type==="user")u(),c=R;else if(R.type==="assistant"){let O=R.__lineIndex,C=MEe(R,t,O);if(!C||r.has(C.deduplicationKey)||c===null)continue;r.add(C.deduplicationKey),l.push(C)}if(u(),o.length===0)return{session:null};i||(i=(0,_o.basename)(t).replace(/\.jsonl$/,""));let p=o.map(R=>EZ(R)),d="",m="",f=0,g=0,v=0,h=0,y=0,b=0,x={},w={},S={},k={},E=$Ee();for(let R of p){(!d||R.timestamp&&R.timestampm&&(m=R.timestamp);let O=E[R.category];O.turns++,O.retries+=R.retries,R.hasEdits&&(O.editTurns++,R.retries===0&&O.oneShotTurns++);for(let C of R.assistantCalls){b++,f+=C.usage.inputTokens,g+=C.usage.outputTokens,v+=C.usage.cacheReadInputTokens,h+=C.usage.cacheCreationInputTokens,y+=C.costUSD,O.costUSD+=C.costUSD;let U=x[C.model]??={calls:0,costUSD:0,tokens:{inputTokens:0,outputTokens:0,cacheCreationInputTokens:0,cacheReadInputTokens:0,webSearchRequests:0}};U.calls++,U.costUSD+=C.costUSD,U.tokens.inputTokens+=C.usage.inputTokens,U.tokens.outputTokens+=C.usage.outputTokens,U.tokens.cacheCreationInputTokens+=C.usage.cacheCreationInputTokens,U.tokens.cacheReadInputTokens+=C.usage.cacheReadInputTokens,U.tokens.webSearchRequests+=C.usage.webSearchRequests;for(let q of C.tools)q.startsWith("mcp__")?(S[q]??={calls:0}).calls++:(w[q]??={calls:0}).calls++;for(let q of C.bashCommands)(k[q]??={calls:0}).calls++}}return{session:{sessionId:i,project:e,firstTimestamp:d,lastTimestamp:m,totalCostUSD:y,totalInputTokens:f,totalOutputTokens:g,totalCacheReadTokens:v,totalCacheWriteTokens:h,apiCalls:b,turns:p,modelBreakdown:x,toolBreakdown:w,mcpBreakdown:S,bashBreakdown:k,categoryBreakdown:E},cwd:a??void 0}}async function Cb(t={}){let e=t.projectsBase??NZ,r=OEe(t),n=xo.get(r);if(n&&Date.now()-n.tsc.isDirectory()).map(c=>c.name)}catch{return H1(r,[]),[]}let i=new Set,a=[];for(let o of s){let c=(0,_o.join)(e,o),l=[];try{l=(await(0,Am.readdir)(c)).filter(f=>f.endsWith(".jsonl"))}catch{continue}if(l.length===0)continue;let u=[],p=null,d=t.dateRange?.start.getTime();for(let f of l){let g=(0,_o.join)(c,f),v;try{v=await(0,Am.stat)(g)}catch{continue}if(d!==void 0&&v.mtimeMsOZ){_.warn("PARSER","JSONL file exceeds size limit, skipping",{filePath:g,size:v.size,limit:OZ});continue}let{session:h,cwd:y}=await LEe(g,o,i,t.dateRange);h&&u.push(h),p===null&&y&&(p=y)}if(u.length===0)continue;let m=p??IZ(o);a.push({project:o,projectPath:m,sessions:u,totalCostUSD:u.reduce((f,g)=>f+g.totalCostUSD,0),totalApiCalls:u.reduce((f,g)=>f+g.apiCalls,0)})}return a.sort((o,c)=>c.totalCostUSD-o.totalCostUSD),H1(r,a),a}function MZ(t){if(!t)return"1970-01-01";let e=new Date(t);if(Number.isNaN(e.getTime()))return"1970-01-01";let r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${r}-${n}-${s}`}function UEe(t){return MZ(t).slice(0,7)}function zZ(){return{inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,models:new Map}}function qEe(t){if(!t.since&&!t.until)return;let e=(s,i)=>{if(!s||!/^\d{8}$/.test(s))return i;let a=Number(s.slice(0,4)),o=Number(s.slice(4,6))-1,c=Number(s.slice(6,8));return new Date(a,o,c,0,0,0,0)},r=e(t.since,new Date(0)),n=t.until?new Date(e(t.until,new Date).getTime()+24*3600*1e3-1):new Date;return{start:r,end:n}}function $Z(t,e,r,n){t.inputTokens+=r.inputTokens,t.outputTokens+=r.outputTokens,t.cacheCreationTokens+=r.cacheCreationInputTokens,t.cacheReadTokens+=r.cacheReadInputTokens;let s=t.models.get(e)??{modelName:e,inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,cost:0};s.inputTokens+=r.inputTokens,s.outputTokens+=r.outputTokens,s.cacheCreationTokens+=r.cacheCreationInputTokens,s.cacheReadTokens+=r.cacheReadInputTokens,s.cost+=n,t.models.set(e,s)}function LZ(t,e,r){let n=e.inputTokens+e.outputTokens+e.cacheCreationTokens+e.cacheReadTokens,s=Array.from(e.models.values()).sort((c,l)=>l.cost-c.cost),i=s.reduce((c,l)=>c+l.cost,0),a=s.map(c=>c.modelName),o={inputTokens:e.inputTokens,outputTokens:e.outputTokens,cacheCreationTokens:e.cacheCreationTokens,cacheReadTokens:e.cacheReadTokens,totalTokens:n,totalCost:i,modelsUsed:a,modelBreakdowns:s};return r==="daily"?{date:t,...o}:{month:t,...o}}async function B1(t){let e=qEe(t);return Cb({dateRange:e,projectsBase:t.projectsBase})}function*W1(t){for(let e of t)for(let r of e.sessions)for(let n of r.turns)for(let s of n.assistantCalls)yield{timestamp:s.timestamp,model:s.model,tokens:s.usage,cost:s.costUSD}}async function Z1(t={}){vo();let e=await B1(t),r=new Map;for(let s of W1(e)){let i=MZ(s.timestamp),a=r.get(i)??zZ();$Z(a,s.model,s.tokens,s.cost),r.set(i,a)}return{daily:Array.from(r.entries()).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>LZ(s,i,"daily")),unknownModels:vo()}}async function UZ(t={}){vo();let e=await B1(t),r=new Map;for(let s of W1(e)){let i=UEe(s.timestamp),a=r.get(i)??zZ();$Z(a,s.model,s.tokens,s.cost),r.set(i,a)}return{monthly:Array.from(r.entries()).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>LZ(s,i,"monthly")),unknownModels:vo()}}async function qZ(t={}){vo();let e=await B1(t),r=new Map;for(let s of W1(e)){let i=r.get(s.model)??{model:s.model,totalCost:0,inputTokens:0,outputTokens:0,totalTokens:0};i.totalCost+=s.cost,i.inputTokens+=s.tokens.inputTokens,i.outputTokens+=s.tokens.outputTokens,i.totalTokens+=s.tokens.inputTokens+s.tokens.outputTokens+s.tokens.cacheCreationInputTokens+s.tokens.cacheReadInputTokens,r.set(s.model,i)}return{models:Array.from(r.values()).sort((s,i)=>i.totalCost-s.totalCost),unknownModels:vo()}}var HZ=require("node:child_process"),BZ=require("node:fs"),WZ=require("node:util");re();var FEe=(0,WZ.promisify)(HZ.execFile),ZZ=5e3,HEe=15e3,BEe=300*1e3,WEe=8*1024*1024,FZ=new Map;async function Dl(t,e,r){let n=r-Date.now();if(n<=0)return null;let s=Math.min(ZZ,n);try{let{stdout:i}=await FEe("git",e,{cwd:t,timeout:s,maxBuffer:WEe});return i.trim()}catch{return null}}async function ZEe(t,e){return(0,BZ.existsSync)(t)?await Dl(t,["rev-parse","--is-inside-work-tree"],e)==="true":!1}async function G1(t,e,r){if(await Dl(t,["check-ref-format","--branch",e],r)===null)return!1;let s=await Dl(t,["rev-parse","--verify","--quiet",e],r);return s!==null&&s.length>0}async function GEe(t,e){let r=await Dl(t,["symbolic-ref","refs/remotes/origin/HEAD"],e);if(r){let n=r.replace(/^refs\/remotes\/origin\//,"");if(await G1(t,n,e))return n}return await G1(t,"main",e)?"main":await G1(t,"master",e)?"master":"main"}async function VEe(t,e){return await Dl(t,["rev-parse","HEAD"],e)??""}async function KEe(t,e,r,n){let s=`--since=${e.start.toISOString()}`,i=`--until=${e.end.toISOString()}`,a=await Dl(t,["log",r,s,i,"--format=%aI"],n);return a?a.split(` -`).filter(Boolean).map(o=>({timestamp:new Date(o)})):[]}function JEe(t,e){if(!t.firstTimestamp)return 0;let r=new Date(t.firstTimestamp),n=new Date(new Date(t.lastTimestamp||t.firstTimestamp).getTime()+3600*1e3);return e.filter(s=>s.timestamp>=r&&s.timestamp<=n).length}async function QEe(t,e,r){let n=t.projectPath,s=Date.now(),i=Math.min(r.remainingMs,ZZ*4),a=s+i,o=(v,h)=>({productiveSessions:[],productiveCost:0,commitsShipped:0,hasGit:h,degraded:v});if(r.remainingMs<=0)return o(!0,!1);if(!n||!await ZEe(n,a))return r.remainingMs-=Date.now()-s,o(!1,!1);let c=await VEe(n,a),l=`${n}|${e.start.getTime()}|${e.end.getTime()}|${c}`,u=FZ.get(l);if(u&&u.sha===c&&Date.now()-u.ts=a)return r.remainingMs-=Date.now()-s,o(!0,!0);let d=[],m=!1;try{d=await KEe(n,e,p,a)}catch(v){m=!0,_.warn("PARSER","code-quality: commit lookup failed",{cwd:n,error:v instanceof Error?v.message:String(v)})}let f=m||Date.now()>=a,g={productiveSessions:[],productiveCost:0,commitsShipped:0,hasGit:!0,degraded:f};if(!f)for(let v of t.sessions){let h=JEe(v,d);h>0&&(g.productiveSessions.push(v),g.productiveCost+=v.totalCostUSD,g.commitsShipped+=h)}return r.remainingMs-=Date.now()-s,f||FZ.set(l,{result:g,ts:Date.now(),sha:c}),g}async function GZ(t){let e=await Cb({dateRange:t.dateRange,projectsBase:t.projectsBase}),r=0,n=0,s=0,i=0,a=0,o=new Map;for(let v of Nl)o.set(v,{editTurns:0,oneShotTurns:0,retries:0});for(let v of e)for(let h of v.sessions){i++,a+=h.totalCostUSD;for(let y of Nl){let b=h.categoryBreakdown[y],x=o.get(y);x.editTurns+=b.editTurns,x.oneShotTurns+=b.oneShotTurns,x.retries+=b.retries,r+=b.editTurns,n+=b.oneShotTurns,s+=b.retries}}let c=Nl.map(v=>{let h=o.get(v);return{category:v,label:CZ[v],editTurns:h.editTurns,retries:h.retries,oneShotPct:h.editTurns>0?h.oneShotTurns/h.editTurns:0}}).filter(v=>v.editTurns>0).sort((v,h)=>h.retries-v.retries||h.editTurns-v.editTurns).slice(0,3),l={remainingMs:HEe},u=0,p=0,d=0,m=!1,f=!1,g=[];for(let v of e){let h=await QEe(v,t.dateRange,l);h.hasGit&&(m=!0),h.degraded&&(f=!0,g.push(v.project)),u+=h.productiveCost,p+=h.productiveSessions.length,d+=h.commitsShipped}return{totalEditTurns:r,oneShotTurns:n,oneShotPct:r>0?n/r:0,retries:s,retriesPerEditTurn:r>0?s/r:0,topCategories:c,productive:{cost:u,sessions:p},totalSessions:i,totalCost:a,commitsShipped:d,hasGitData:m,degraded:f,degradedProjects:g}}function YEe(t){switch(t.kind){case"pro":return 20;case"max":return 200;case"custom":return Math.max(0,t.monthlyUsd??0);default:return 0}}function XEe(t){return typeof t!="number"||Number.isNaN(t)?1:Math.min(28,Math.max(1,Math.floor(t)))}function eTe(t,e){let r=XEe(t),n=e.getFullYear(),s=e.getMonth(),i;e.getDate()>=r?i=new Date(n,s,r,0,0,0,0):i=new Date(n,s-1,r,0,0,0,0);let a=new Date(i);return a.setMonth(a.getMonth()+1),{periodStart:i,periodEnd:a}}function tTe(t){return t>=1?"over":t>=.8?"near":"under"}function VZ(t,e,r=new Date){let n=YEe(t),{periodStart:s,periodEnd:i}=eTe(t.resetDay??1,r),a=0;for(let d of e){let m=new Date(d.date+"T00:00:00");m>=s&&m0?a/n:0;return{kind:t.kind,monthlyBudgetUsd:n,spendToDate:a,forecastEndOfPeriod:u,periodStart:s.toISOString().slice(0,10),periodEnd:i.toISOString().slice(0,10),daysElapsed:l,daysTotal:c,status:tTe(p),pctUsed:p}}var vi=Q(require("node:fs"),1),V1=Q(require("node:os"),1),jm=Q(require("node:path"),1),ra=/^\d{8}$/,rTe=300*1e3,Ob=class extends Te{cache=new Map;pendingExecutions=new Map;pricingReady=null;projectsBase;defaultWindowMonths;constructor(e={}){super(),this.projectsBase=e.projectsBase,this.defaultWindowMonths=e.defaultWindowMonths??12,this.pricingReady=Y3().catch(()=>{})}setupRoutes(e){e.get("/api/usage/daily",this.wrapHandler(this.handleDaily.bind(this))),e.get("/api/usage/monthly",this.wrapHandler(this.handleMonthly.bind(this))),e.get("/api/usage/models",this.wrapHandler(this.handleModels.bind(this))),e.get("/api/usage/yield",this.wrapHandler(this.handleYield.bind(this))),e.get("/api/usage/plan",this.wrapHandler(this.handlePlan.bind(this))),e.put("/api/usage/plan",this.wrapHandler(this.handlePlanPut.bind(this)))}async handlePlanPut(e,r){let n=e.body;if(!n||typeof n!="object"){this.badRequest(r,"Request body must be a plan object.");return}if(typeof n.kind!="string"||!["none","pro","max","custom"].includes(n.kind)){this.badRequest(r,"kind must be one of: none, pro, max, custom");return}if(n.monthlyUsd!==void 0&&(typeof n.monthlyUsd!="number"||n.monthlyUsd<0||n.monthlyUsd>1e4)){this.badRequest(r,"monthlyUsd must be a number between 0 and 10000");return}if(n.resetDay!==void 0&&(typeof n.resetDay!="number"||n.resetDay<1||n.resetDay>28)){this.badRequest(r,"resetDay must be a number between 1 and 28");return}let s=jm.join(V1.homedir(),".pilot","config.json"),i={};try{i=JSON.parse(vi.readFileSync(s,"utf-8"))}catch{i={}}let a=i.usage??{},c={...a.plan??{},kind:n.kind};n.monthlyUsd!==void 0&&(c.monthlyUsd=n.monthlyUsd),n.resetDay!==void 0&&(c.resetDay=n.resetDay),i.usage={...a,plan:c},vi.mkdirSync(jm.dirname(s),{recursive:!0});let l=s+".tmp";vi.writeFileSync(l,JSON.stringify(i,null,2),"utf-8"),vi.renameSync(l,s),this.cache.delete("plan"),r.json({available:!0,plan:c})}async handlePlan(e,r){let n=await this.getCachedOrExecute("plan",async()=>{await this.pricingReady;let s=this.readPlanFromConfig(),{daily:i}=await Z1({}),a=VZ(s,i.map(o=>({date:o.date,totalCost:o.totalCost})));return{plan:s,progress:a}});r.json({available:!0,...n})}readPlanFromConfig(){let e=jm.join(V1.homedir(),".pilot","config.json");try{let n=JSON.parse(vi.readFileSync(e,"utf-8")).usage?.plan;if(n&&typeof n.kind=="string"&&["none","pro","max","custom"].includes(n.kind))return{kind:n.kind,monthlyUsd:typeof n.monthlyUsd=="number"?n.monthlyUsd:void 0,resetDay:typeof n.resetDay=="number"?n.resetDay:void 0}}catch{}return{kind:"none"}}async handleYield(e,r){let n=e.query.since,s=e.query.until;if(n&&!ra.test(n)){this.badRequest(r,"Invalid since parameter. Expected YYYYMMDD format.");return}if(s&&!ra.test(s)){this.badRequest(r,"Invalid until parameter. Expected YYYYMMDD format.");return}let i=`yield-${n??""}-${s??""}`,a=await this.getCachedOrExecute(i,async()=>{await this.pricingReady;let o={start:n?this.parseDate(n):new Date(Date.now()-720*3600*1e3),end:s?new Date(this.parseDate(s).getTime()+24*3600*1e3-1):new Date};return GZ({dateRange:o})});r.json({available:!0,...a})}parseDate(e){let r=Number(e.slice(0,4)),n=Number(e.slice(4,6))-1,s=Number(e.slice(6,8));return new Date(r,n,s)}async handleDaily(e,r){let n=e.query.since,s=e.query.until;if(n&&!ra.test(n)){this.badRequest(r,"Invalid since parameter. Expected YYYYMMDD format.");return}if(s&&!ra.test(s)){this.badRequest(r,"Invalid until parameter. Expected YYYYMMDD format.");return}let i=n||this.defaultSince(),a=`daily-${i}-${s||""}`,o=await this.getCachedOrExecute(a,async()=>(await this.pricingReady,Z1({since:i,until:s,projectsBase:this.projectsBase})));r.json({available:!0,...o})}async handleMonthly(e,r){let n=e.query.since,s=e.query.until;if(n&&!ra.test(n)){this.badRequest(r,"Invalid since parameter. Expected YYYYMMDD format.");return}if(s&&!ra.test(s)){this.badRequest(r,"Invalid until parameter. Expected YYYYMMDD format.");return}let i=n||this.defaultMonthlyOrModelsSince(),a=`monthly-${i}-${s||""}`,o=await this.getCachedOrExecute(a,async()=>(await this.pricingReady,UZ({since:i,until:s,projectsBase:this.projectsBase})));r.json({available:!0,...o})}async handleModels(e,r){let n=e.query.since,s=e.query.until;if(n&&!ra.test(n)){this.badRequest(r,"Invalid since parameter. Expected YYYYMMDD format.");return}if(s&&!ra.test(s)){this.badRequest(r,"Invalid until parameter. Expected YYYYMMDD format.");return}let i=n||this.defaultMonthlyOrModelsSince(),a=`models-${i}-${s||""}`,o=await this.getCachedOrExecute(a,async()=>(await this.pricingReady,qZ({since:i,until:s,projectsBase:this.projectsBase})));r.json({available:!0,...o})}async getCachedOrExecute(e,r){let n=this.cache.get(e);if(n&&Date.now()-n.timestamp(this.cache.set(e,{data:a,timestamp:Date.now()}),a)).finally(()=>{this.pendingExecutions.delete(e)});return this.pendingExecutions.set(e,i),i}defaultSince(){let e=new Date;return e.setDate(e.getDate()-30),this.toYyyymmdd(e)}defaultMonthlyOrModelsSince(){let e=new Date;return e.setMonth(e.getMonth()-this.defaultWindowMonths),this.toYyyymmdd(e)}toYyyymmdd(e){let r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${r}${n}${s}`}};var KZ=require("bun:sqlite"),jb=require("node:fs/promises"),JZ=require("node:os"),K1=require("node:path");var nTe=300*1e3,sTe=1e4,Ab=class extends Te{cache=null;pending=null;rtkPath;constructor(){super(),this.rtkPath=Bun.which("rtk")}setupRoutes(e){e.get("/api/tool-savings",this.wrapHandler(this.handleToolSavings.bind(this)))}async handleToolSavings(e,r){let n=await this.getCached();r.json(n)}async getCached(){return this.cache&&Date.now()-this.cache.timestamp{let n={rtk:e,contextMode:r};return this.cache={data:n,timestamp:Date.now()},n}).finally(()=>{this.pending=null}),this.pending)}async fetchRtkStats(){if(!this.rtkPath)return{available:!1,error:"rtk not installed"};try{let e=Bun.spawn([this.rtkPath,"gain","--format","json"],{stdout:"pipe",stderr:"pipe"}),r=setTimeout(()=>{try{e.kill("SIGTERM")}catch{}},sTe);try{let n=await new Response(e.stdout).text();if(await e.exited!==0)return{available:!1,error:"rtk command failed"};let a=JSON.parse(n).summary;return a?{available:!0,totalCommands:a.total_commands,totalInput:a.total_input,totalOutput:a.total_output,totalSaved:a.total_saved,avgSavingsPct:a.avg_savings_pct,totalTimeMs:a.total_time_ms}:{available:!1,error:"Unexpected rtk output"}}finally{clearTimeout(r)}}catch(e){return{available:!1,error:e instanceof Error?e.message:"rtk error"}}}async fetchContextModeStats(){let e=(0,K1.join)((0,JZ.homedir)(),".claude","context-mode","content"),r;try{r=(await(0,jb.readdir)(e)).filter(l=>l.endsWith(".db"))}catch{return{available:!1,error:"context-mode not installed"}}if(r.length===0)return{available:!1,error:"no indexed content"};let n=0,s=0,i=0,a=0,o=0;for(let c of r){let l=(0,K1.join)(e,c);try{let u=await(0,jb.stat)(l);a+=u.size;let p=new KZ.Database(l,{readonly:!0});try{let d=p.query("SELECT COUNT(*) AS sources, COALESCE(SUM(chunk_count), 0) AS chunks, COALESCE(SUM(code_chunk_count), 0) AS codeChunks FROM sources").get();d&&(n+=d.sources??0,s+=d.chunks??0,i+=d.codeChunks??0,o+=1)}finally{p.close()}}catch{}}return o===0?{available:!1,error:"no readable context-mode databases"}:{available:!0,sources:n,chunks:s,codeChunks:i,dbSizeBytes:a,databases:o}}};var J1=require("child_process"),Q1=require("fs"),Y1=require("os");var Nb={valid:!1,tier:null,email:null,daysRemaining:null,isExpired:!1},iTe=300*1e3,Db=class extends Te{cache=null;setupRoutes(e){e.get("/api/license",this.handleGetLicense.bind(this)),e.post("/api/license/activate",this.handleActivate.bind(this))}handleGetLicense=this.wrapHandler((e,r)=>{let n=e.query.refresh==="1";r.json(this.getLicenseInfo(n))});getLicenseInfo(e=!1){if(!e&&this.cache&&Date.now(){let{key:n}=e.body;if(!n||typeof n!="string"){this.badRequest(r,"License key is required");return}let s=this.activateLicense(n.trim());r.json(s)});activateLicense(e){let r=`${(0,Y1.homedir)()}/.pilot/bin/pilot`;if(!(0,Q1.existsSync)(r))return{success:!1,tier:null,email:null,error:"Pilot binary not found"};try{let s=(0,J1.spawnSync)(r,["activate",e,"--json"],{stdio:"pipe",timeout:1e4,env:Wu()}).stdout?.toString().trim();if(!s)return{success:!1,tier:null,email:null,error:"No response from pilot"};let i=JSON.parse(s);return i.success?(this.cache=null,{success:!0,tier:i.tier??null,email:i.email??null,error:null}):{success:!1,tier:null,email:null,error:i.error??"Activation failed"}}catch{return{success:!1,tier:null,email:null,error:"Activation request failed"}}}fetchLicenseFromCLI(){let e=`${(0,Y1.homedir)()}/.pilot/bin/pilot`;if(!(0,Q1.existsSync)(e))return{...Nb};try{let n=(0,J1.spawnSync)(e,["status","--json"],{stdio:"pipe",timeout:5e3,env:Wu()}).stdout?.toString().trim();if(!n)return{...Nb};let s=JSON.parse(n);return s.success?{valid:!0,tier:s.tier??null,email:s.email??null,daysRemaining:s.days_remaining??null,isExpired:!1}:s.error==="No license found"?{...Nb}:{valid:!1,tier:s.tier??null,email:s.email??null,daysRemaining:s.days_remaining??null,isExpired:!0}}catch{return{...Nb}}}};var xe=Q(require("path"),1),le=require("node:fs");re();var aTe=3e4,Mb=class extends Te{dbManager;listCache=new Map;constructor(e){super(),this.dbManager=e??null}listExtensions(e){let r=`${e.project??""}|${e.all?"all":""}`,n=this.listCache.get(r);if(n&&Date.now()-n.timestamp{let n=e.query.project,s=e.query.all==="true",i=this.listExtensions({project:n,all:s});r.json({extensions:i})});handleContent=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),i=e.query.scope||"global",a=e.query.project,o=e.query.pluginName;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}let c=process.env.HOME||"",l=null;if(o?l=this.resolvePluginExtensionPath(c,o,n,s):l=this.resolveExtensionPath(n,s,i,a,c),!l||!(0,le.existsSync)(l)){r.status(404).json({error:"Extension not found"});return}try{let u=(0,le.readFileSync)(l,"utf-8");r.json({name:s,content:u,format:"markdown"})}catch{r.status(404).json({error:"Extension not found"})}});handleSave=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),{content:i,scope:a,project:o}=e.body;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}if(!i||typeof i!="string"){r.status(400).json({error:"Missing content"});return}let c=process.env.HOME||"",l=this.resolveExtensionPath(n,s,a,o,c);if(!l){r.status(404).json({error:`Extension not found: ${n}/${s}`});return}try{(0,le.writeFileSync)(l,i,"utf-8"),this.invalidateListCache(),r.json({ok:!0})}catch(u){_.error("HTTP",`Failed to save ${l}`,{},u),r.status(500).json({error:"Failed to save extension"})}});handleRename=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),{newName:i,scope:a,project:o}=e.body;if(!this.isValidName(s)||!this.isValidName(i)){r.status(400).json({error:"Invalid name"});return}let c=process.env.HOME||"",l=this.resolveExtensionPath(n,s,a,o,c);if(!l){r.status(404).json({error:`Extension not found: ${n}/${s}`});return}try{if(n==="skill"){let u=xe.default.dirname(l),p=xe.default.join(xe.default.dirname(u),i);if((0,le.existsSync)(p)){r.status(409).json({error:"An extension with that name already exists"});return}(0,le.renameSync)(u,p)}else{let u=xe.default.extname(l),p=xe.default.join(xe.default.dirname(l),`${i}${u}`);if((0,le.existsSync)(p)){r.status(409).json({error:"An extension with that name already exists"});return}(0,le.renameSync)(l,p)}this.invalidateListCache(),r.json({ok:!0,newName:i})}catch{r.status(500).json({error:"Failed to rename extension"})}});handleDelete=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),i=e.query.scope||"global",a=e.query.project;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}let o=process.env.HOME||"",c=this.resolveExtensionPath(n,s,i,a,o);if(!c){r.status(404).json({error:`Extension not found: ${n}/${s}`});return}try{if(n==="skill"){let l=xe.default.dirname(c);(0,le.rmSync)(l,{recursive:!0})}else(0,le.unlinkSync)(c);this.invalidateListCache(),r.json({ok:!0})}catch{r.status(500).json({error:"Failed to delete extension"})}});handleMove=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),{from:i,to:a,project:o}=e.body;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}if(i!=="project"&&i!=="global"||a!=="project"&&a!=="global"){r.status(400).json({error:"from/to must be 'project' or 'global'"});return}let c=process.env.HOME||"",l=this.performScopeMove(n,s,i,a,o,c);if(!l.ok){r.status(400).json({error:l.error});return}this.invalidateListCache(),r.json({ok:!0})});scanPluginExtensions(e){let r=xe.default.join(e,".claude"),n=this.readEnabledPlugins(r);if(n.size===0)return[];let s=xe.default.join(r,"plugins","cache");if(!(0,le.existsSync)(s))return[];let i;try{i=(0,le.readdirSync)(s).filter(c=>{try{return(0,le.statSync)(xe.default.join(s,c)).isDirectory()}catch{return!1}})}catch{return[]}let a=new Map;for(let c of i){let l=xe.default.join(s,c),u;try{u=(0,le.readdirSync)(l).filter(p=>{try{return(0,le.statSync)(xe.default.join(l,p)).isDirectory()}catch{return!1}})}catch{continue}for(let p of u){let d=`${p}@${c}`;if(!n.has(d))continue;let m=xe.default.join(l,p),f=null;try{let x=(0,le.readdirSync)(m).filter(S=>{try{return(0,le.statSync)(xe.default.join(m,S)).isDirectory()}catch{return!1}}),w=this.pickLatestVersion(x);w&&(f=xe.default.join(m,w))}catch{continue}if(!f)continue;let g=this.readPluginDisplayName(f)??p,v=[];for(let[x,w]of Object.entries({commands:"command",rules:"rule",agents:"agent"})){let S=xe.default.join(f,x),k=this.scanMarkdownDir(S);for(let E of k)this.fileExists(xe.default.join(S,`${E}.md.tmpl`))||v.push({name:E,category:w,scope:"global",filePath:`${x}/${E}.md`,editable:!1,format:"markdown",pluginName:g})}let h=xe.default.join(f,"skills"),y=this.scanSkillsDir(h);for(let x of y)v.push({name:x,category:"skill",scope:"global",filePath:`skills/${x}/SKILL.md`,editable:!1,format:"markdown",pluginName:g});let b=a.get(p);(!b||v.length>b.length)&&a.set(p,v)}}let o=[];for(let c of a.values())o.push(...c);return o}pickLatestVersion(e){if(e.length===0)return;if(e.length===1)return e[0];if(e.includes("latest"))return"latest";let r=e.map(n=>{let s=n.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);return{raw:n,major:s?parseInt(s[1],10):-1,minor:s?parseInt(s[2],10):-1,patch:s?parseInt(s[3],10):-1,prerelease:s?.[4]??null,isSemver:s!==null}});return r.sort((n,s)=>n.isSemver&&!s.isSemver?-1:!n.isSemver&&s.isSemver?1:n.isSemver&&s.isSemver?n.major!==s.major?s.major-n.major:n.minor!==s.minor?s.minor-n.minor:n.patch!==s.patch?s.patch-n.patch:!n.prerelease&&s.prerelease?-1:n.prerelease&&!s.prerelease?1:n.prerelease&&s.prerelease?s.prerelease.localeCompare(n.prerelease):0:s.raw.localeCompare(n.raw)),r[0].raw}scanMarkdownDir(e,r,n){try{return(0,le.existsSync)(e)?(0,le.readdirSync)(e).filter(s=>{try{return!s.endsWith(".md")||!(0,le.statSync)(xe.default.join(e,s)).isFile()?!1:r&&n?!r.has(`${n}/${s}`):!0}catch{return!1}}).map(s=>s.replace(/\.md$/,"")).sort():[]}catch{return[]}}scanSkillsDir(e,r){try{return(0,le.existsSync)(e)?(0,le.readdirSync)(e).filter(n=>{try{let s=xe.default.join(e,n);return!(!(0,le.statSync)(s).isDirectory()||!(0,le.readdirSync)(s).includes("SKILL.md")||r&&r.has(`skills/${n}/SKILL.md`))}catch{return!1}}).sort():[]}catch{return[]}}loadPilotManifest(e){try{let r=xe.default.join(e,".claude",".pilot-manifest.json");if(!(0,le.existsSync)(r))return new Set;let n=JSON.parse((0,le.readFileSync)(r,"utf-8"));return new Set(Array.isArray(n.files)?n.files:[])}catch{return new Set}}performScopeMove(e,r,n,s,i,a){let o=this.resolveExtensionPath(e,r,n,i,a);if(!o)return{ok:!1,error:`Extension not found: ${e}/${r} (scope: ${n})`};let c=s==="global"?xe.default.join(a,".claude"):i?xe.default.join(hr(this.dbManager,i),".claude"):null;if(!c)return{ok:!1,error:"Cannot determine destination for scope move"};try{if(e==="skill"){let l=xe.default.dirname(o),u=xe.default.join(c,"skills",r);if(this.dirExists(u))return{ok:!1,error:`Extension '${r}' already exists at destination`};this.copyRecursive(l,u),(0,le.rmSync)(l,{recursive:!0})}else{let l=r.endsWith(".md")?r:`${r}.md`,u=this.categoryToDir(e),p=xe.default.join(c,u,l),d=xe.default.dirname(p);if(this.dirExists(d)||(0,le.mkdirSync)(d,{recursive:!0}),this.fileExists(p))return{ok:!1,error:`Extension '${r}' already exists at destination`};(0,le.copyFileSync)(o,p),(0,le.unlinkSync)(o)}return{ok:!0}}catch(l){return _.error("HTTP","Extension move failed",{},l),{ok:!1,error:"Failed to move extension"}}}scanMarkdownExtensions(e,r,n){let s=[];for(let i of["rule","command","agent"]){let a=this.categoryToDir(i),o=xe.default.join(e,a),c=this.scanMarkdownDir(o,n,a);for(let l of c)s.push({name:l,category:i,scope:r,filePath:`${a}/${l}.md`,editable:!0,format:"markdown"})}return s}scanSkillExtensions(e,r,n){let s=xe.default.join(e,"skills");return this.scanSkillsDir(s,n).map(a=>({name:a,category:"skill",scope:r,filePath:`skills/${a}/SKILL.md`,editable:!0,format:"markdown"}))}resolveExtensionPath(e,r,n,s,i){let a=n==="project"?xe.default.join(hr(this.dbManager,s),".claude"):xe.default.join(i,".claude"),o=null;if(e==="skill"){let c=xe.default.join(a,"skills",r,"SKILL.md");o=this.fileExists(c)?c:null}else if(e==="rule"||e==="command"||e==="agent"){let c=this.categoryToDir(e),l=xe.default.join(a,c,r.endsWith(".md")?r:`${r}.md`);o=this.fileExists(l)?l:null}return o&&!this.isContainedPath(o,a)?null:o}isContainedPath(e,r){try{if((0,le.lstatSync)(e).isSymbolicLink()){let i=(0,le.realpathSync)(e),a=(0,le.realpathSync)(r);return i.startsWith(a+"/")||i===a}let n=xe.default.resolve(e),s=xe.default.resolve(r);return n.startsWith(s+"/")||n===s}catch{return!1}}fileExists(e){try{return(0,le.statSync)(e).isFile()}catch{return!1}}dirExists(e){try{return(0,le.statSync)(e).isDirectory()}catch{return!1}}categoryToDir(e){switch(e){case"rule":return"rules";case"command":return"commands";case"agent":return"agents";case"skill":return"skills";default:return e}}isValidName(e){return/^[a-zA-Z0-9_\-\.]+$/.test(e)&&!e.includes("..")}resolvePluginExtensionPath(e,r,n,s){let i=xe.default.join(e,".claude","plugins","cache");if(!(0,le.existsSync)(i))return null;try{for(let a of(0,le.readdirSync)(i)){let o=xe.default.join(i,a);if((0,le.statSync)(o).isDirectory())for(let c of(0,le.readdirSync)(o)){let l=xe.default.join(o,c);if(!(0,le.statSync)(l).isDirectory())continue;let u=(0,le.readdirSync)(l).filter(g=>{try{return(0,le.statSync)(xe.default.join(l,g)).isDirectory()}catch{return!1}}),p=this.pickLatestVersion(u);if(!p)continue;let d=xe.default.join(l,p);if((this.readPluginDisplayName(d)??c)!==r)continue;let f=this.categoryToDir(n);if(n==="skill"){let g=xe.default.join(d,"skills",s,"SKILL.md");if((0,le.existsSync)(g))return g}else{let g=xe.default.join(d,f,`${s}.md`);if((0,le.existsSync)(g))return g}}}}catch{}return null}readEnabledPlugins(e){try{let r=xe.default.join(e,"settings.json");if(!(0,le.existsSync)(r))return new Set;let s=JSON.parse((0,le.readFileSync)(r,"utf-8"))?.enabledPlugins;return!s||typeof s!="object"||Array.isArray(s)?new Set:new Set(Object.keys(s).filter(i=>s[i]===!0))}catch{return new Set}}readPluginDisplayName(e){for(let r of[".plugin",".claude-plugin"])try{let n=xe.default.join(e,r,"plugin.json");if(!(0,le.existsSync)(n))continue;let s=JSON.parse((0,le.readFileSync)(n,"utf-8"));return typeof s?.name=="string"?s.name:null}catch{continue}return null}copyRecursive(e,r){(0,le.mkdirSync)(r,{recursive:!0});for(let n of(0,le.readdirSync)(e)){let s=xe.default.join(e,n),i=xe.default.join(r,n);(0,le.statSync)(s).isDirectory()?this.copyRecursive(s,i):(0,le.copyFileSync)(s,i)}}};var vr=Q(require("path"),1),ft=Q(require("node:fs"),1);re();var zb=vr.default.join(process.env.HOME||"",".pilot","config.json"),oTe={rules:"rule",commands:"command",agents:"agent",skills:"skill"},cTe={instructions:"rule",prompts:"command",agents:"agent",skills:"skill"},X1=`# Track only extension directories \u2014 managed by Pilot Shell +`)){if(!i.trim())continue;let a=i.split(" ");if(a.length>=2){let o=a[0].charAt(0),c=a[a.length-1],l=n.get(c)||{additions:0,deletions:0};s.push({path:c,status:o,additions:l.additions,deletions:l.deletions})}}return s}getMainRepoRoot(e){try{let r=Eb.default.join(e,".git");if((0,Tb.existsSync)(r))try{let n=(0,Tb.readFileSync)(r,"utf-8").trim();if(n.startsWith("gitdir:")){let s=n.replace("gitdir:","").trim(),i=Eb.default.resolve(e,s,"..","..");return Eb.default.dirname(i)}}catch{return e}return e}catch{return null}}countFilesFromStat(e){let r=e.trim().split(` +`);if(r.length===0)return 0;let s=r[r.length-1].match(/(\d+) files? changed/);return s?parseInt(s[1],10):0}};var Om=require("node:fs/promises"),PZ=require("node:fs"),IZ=require("node:os"),xo=require("node:path");re();var eke=/\b(test|pytest|vitest|jest|mocha|spec|coverage|npm\s+test|npx\s+vitest|npx\s+jest)\b/i,tke=/\bgit\s+(push|pull|commit|merge|rebase|checkout|branch|stash|log|diff|status|add|reset|cherry-pick|tag)\b/i,rke=/\b(npm\s+run\s+build|npm\s+publish|pip\s+install|docker|deploy|make\s+build|npm\s+run\s+dev|npm\s+start|pm2|systemctl|brew|cargo\s+build|npm\s+run|build)\b/i,nke=/\b(npm\s+install|pip\s+install|brew\s+install|apt\s+install|cargo\s+add)\b/i,$1=/\b(fix|bug|error|broken|failing|crash|issue|debug|traceback|exception|stack\s*trace|not\s+working|wrong|unexpected|status\s+code|404|500|401|403)\b/i,yZ=/\b(add|create|implement|new|build|feature|introduce|set\s*up|scaffold|generate|make\s+(?:a|me|the)|write\s+(?:a|me|the))\b/i,ske=/\b(refactor|clean\s*up|rename|reorganize|simplify|extract|restructure|move|migrate|split)\b/i,ike=/\b(brainstorm|idea|what\s+if|explore|think\s+about|approach|strategy|design|consider|how\s+should|what\s+would|opinion|suggest|recommend)\b/i,bZ=/\b(research|investigate|look\s+into|find\s+out|check|search|analyze|review|understand|explain|how\s+does|what\s+is|show\s+me|list|compare)\b/i,ake=/\.(py|js|ts|tsx|jsx|json|yaml|yml|toml|sql|sh|go|rs|java|rb|php|css|html|md|csv|xml)\b/i,oke=/\b(run\s+\S+\.\w+|execute|scrip?t|curl|api\s+\S+|endpoint|request\s+url|fetch\s+\S+|query|database|db\s+\S+)\b/i,cke=/https?:\/\/\S+/i,L1=new Set(["Edit","Write","MultiEdit","FileEditTool","FileWriteTool","NotebookEdit"]),lke=new Set(["Read","Grep","Glob","FileReadTool","GrepTool","GlobTool"]),Rb=new Set(["Bash","BashTool","PowerShellTool"]),uke=new Set(["TaskCreate","TaskUpdate","TaskGet","TaskList","TaskOutput","TaskStop","TodoWrite"]),pke=new Set(["WebSearch","WebFetch","ToolSearch"]);function dke(t){return t.some(e=>L1.has(e))}function mke(t){return t.some(e=>lke.has(e))}function fke(t){return t.some(e=>Rb.has(e))}function hke(t){return t.some(e=>uke.has(e))}function gke(t){return t.some(e=>pke.has(e))}function vke(t){return t.some(e=>e.startsWith("mcp__"))}function yke(t){return t.some(e=>e==="Skill")}function xZ(t){return t.assistantCalls.flatMap(e=>e.tools)}function bke(t){let e=xZ(t);if(e.length===0)return null;if(t.assistantCalls.some(l=>l.hasPlanMode))return"planning";if(t.assistantCalls.some(l=>l.hasAgentSpawn))return"delegation";let r=dke(e),n=mke(e),s=fke(e),i=hke(e),a=gke(e),o=vke(e),c=yke(e);if(s&&!r){let l=t.userMessage;if(eke.test(l))return"testing";if(tke.test(l))return"git";if(rke.test(l)||nke.test(l))return"build/deploy"}return r?"coding":s&&n?"exploration":s?"coding":a||o||n&&!r?"exploration":i&&!r?"planning":c?"general":null}function xke(t,e){return t==="coding"?$1.test(e)?"debugging":ske.test(e)?"refactoring":yZ.test(e)?"feature":"coding":t==="exploration"?bZ.test(e)?"exploration":$1.test(e)?"debugging":"exploration":t}function _ke(t){return ike.test(t)?"brainstorming":bZ.test(t)?"exploration":$1.test(t)?"debugging":yZ.test(t)?"feature":ake.test(t)||oke.test(t)?"coding":cke.test(t)?"exploration":"conversation"}function wke(t){let e=!1,r=!1,n=0;for(let s of t.assistantCalls){let i=s.tools.some(o=>L1.has(o)),a=s.tools.some(o=>Rb.has(o));i&&(r&&n++,e=!0,r=!1),a&&e&&(r=!0)}return n}function Ske(t){return t.assistantCalls.some(e=>e.tools.some(r=>L1.has(r)))}function _Z(t){let e=xZ(t),r;if(e.length===0)r=_ke(t.userMessage);else{let n=bke(t);r=n?xke(n,t.userMessage):"general"}return{...t,category:r,retries:wke(t),hasEdits:Ske(t)}}function wZ(t){return t?t.split(/&&|\|\||;|\|/).map(r=>r.trim()).filter(Boolean).map(r=>{let n=r.split(/\s+/)[0]??"";return n==="sudo"||n==="env"?r.split(/\s+/)[1]??n:n}).filter(Boolean):[]}var SZ=require("node:fs/promises");async function EZ(t,e){let r=await(0,SZ.open)(t,"r");try{let n=r.createReadStream({encoding:"utf-8"}),s="",i=0;for await(let a of n){s+=a;let o;for(;(o=s.indexOf(` +`))!==-1;){let c=s.slice(0,o);s=s.slice(o+1),c.trim().length>0&&(e(c,i),i++)}}s.trim().length>0&&e(s,i)}finally{await r.close()}}function kZ(t){return t.replace(/-/g,"/")}var jl=["coding","debugging","feature","refactoring","testing","exploration","planning","delegation","git","build/deploy","conversation","brainstorming","general"],TZ={coding:"Coding",debugging:"Debugging",feature:"Feature Dev",refactoring:"Refactoring",testing:"Testing",exploration:"Exploration",planning:"Planning",delegation:"Delegation",git:"Git Ops","build/deploy":"Build/Deploy",conversation:"Conversation",brainstorming:"Brainstorming",general:"General"};var CZ=process.env.CLAUDE_CONFIG_DIR?(0,xo.join)(process.env.CLAUDE_CONFIG_DIR,"projects"):(0,xo.join)((0,IZ.homedir)(),".claude","projects"),OZ=6e4,Eke=10,RZ=5*1024*1024,bo=new Map;function kke(t){let e=t.dateRange?`${t.dateRange.start.getTime()}:${t.dateRange.end.getTime()}`:"none";return`${t.projectsBase??CZ}|${e}`}function U1(t,e){let r=Date.now();for(let[n,s]of bo)r-s.ts>OZ&&bo.delete(n);if(bo.size>=Eke){let n=[...bo.entries()].sort((s,i)=>s[1].ts-i[1].ts)[0];n&&bo.delete(n[0])}bo.set(t,{data:e,ts:r})}function Tke(t){try{return JSON.parse(t)}catch{return null}}function Rke(t){if(!t.message||t.message.role!=="user")return"";let e=t.message.content;return typeof e=="string"?e:Array.isArray(e)?e.filter(r=>r.type==="text").map(r=>r.text).join(" "):""}function Pke(t){return t.filter(e=>e.type==="tool_use").map(e=>e.name)}function Ike(t){return t.filter(e=>e.type==="tool_use"&&Rb.has(e.name)).flatMap(e=>{let r=e.input?.command;return typeof r=="string"?wZ(r):[]})}function Cke(t,e,r){if(t.type!=="assistant")return null;let n=t.message;if(!n?.usage||!n?.model||n.model===""||n.model==="unknown")return null;let s=n.usage,i={inputTokens:s.input_tokens??0,outputTokens:s.output_tokens??0,cacheCreationInputTokens:s.cache_creation_input_tokens??0,cacheReadInputTokens:s.cache_read_input_tokens??0,webSearchRequests:s.server_tool_use?.web_search_requests??0},a=Pke(n.content??[]),o=s.speed??"standard",c=Qy(n.model,i.inputTokens,i.outputTokens,i.cacheCreationInputTokens,i.cacheReadInputTokens,i.webSearchRequests,o),l=t.uuid,u=n.id??(l?`uuid:${l}`:`local:${e}:${r}`);return{model:n.model,usage:i,costUSD:c,tools:a,mcpTools:a.filter(p=>p.startsWith("mcp__")),hasAgentSpawn:a.includes("Agent"),hasPlanMode:a.includes("EnterPlanMode"),speed:o,timestamp:t.timestamp??"",bashCommands:Ike(n.content??[]),deduplicationKey:u}}function Oke(t,e){if(!e)return!0;let r=new Date(t).getTime();return Number.isNaN(r)?!0:r>=e.start.getTime()&&r<=e.end.getTime()}function Ake(){let t={};for(let e of jl)t[e]={turns:0,costUSD:0,retries:0,editTurns:0,oneShotTurns:0};return t}async function jke(t,e,r,n){let s=[];try{await EZ(t,(R,O)=>{let C=Tke(R);C?(C.__lineIndex=O,s.push(C)):_.debug("PARSER","skipping malformed JSONL line",{filePath:t,index:O})})}catch(R){return _.warn("PARSER","failed to read JSONL file",{filePath:t,error:R instanceof Error?R.message:String(R)}),{session:null}}let i=null,a=null,o=[],c=null,l=[],u=()=>{if(c!==null&&l.length>0){let R={userMessage:Rke(c),assistantCalls:l,timestamp:c.timestamp??"",sessionId:i??""};Oke(R.timestamp,n)&&o.push(R)}c=null,l=[]};for(let R of s)if(i===null&&R.sessionId&&(i=R.sessionId),a===null&&typeof R.cwd=="string"&&R.cwd.length>0&&(a=R.cwd),R.type==="user")u(),c=R;else if(R.type==="assistant"){let O=R.__lineIndex,C=Cke(R,t,O);if(!C||r.has(C.deduplicationKey)||c===null)continue;r.add(C.deduplicationKey),l.push(C)}if(u(),o.length===0)return{session:null};i||(i=(0,xo.basename)(t).replace(/\.jsonl$/,""));let p=o.map(R=>_Z(R)),d="",m="",f=0,g=0,v=0,h=0,y=0,b=0,x={},w={},S={},E={},k=Ake();for(let R of p){(!d||R.timestamp&&R.timestampm&&(m=R.timestamp);let O=k[R.category];O.turns++,O.retries+=R.retries,R.hasEdits&&(O.editTurns++,R.retries===0&&O.oneShotTurns++);for(let C of R.assistantCalls){b++,f+=C.usage.inputTokens,g+=C.usage.outputTokens,v+=C.usage.cacheReadInputTokens,h+=C.usage.cacheCreationInputTokens,y+=C.costUSD,O.costUSD+=C.costUSD;let U=x[C.model]??={calls:0,costUSD:0,tokens:{inputTokens:0,outputTokens:0,cacheCreationInputTokens:0,cacheReadInputTokens:0,webSearchRequests:0}};U.calls++,U.costUSD+=C.costUSD,U.tokens.inputTokens+=C.usage.inputTokens,U.tokens.outputTokens+=C.usage.outputTokens,U.tokens.cacheCreationInputTokens+=C.usage.cacheCreationInputTokens,U.tokens.cacheReadInputTokens+=C.usage.cacheReadInputTokens,U.tokens.webSearchRequests+=C.usage.webSearchRequests;for(let q of C.tools)q.startsWith("mcp__")?(S[q]??={calls:0}).calls++:(w[q]??={calls:0}).calls++;for(let q of C.bashCommands)(E[q]??={calls:0}).calls++}}return{session:{sessionId:i,project:e,firstTimestamp:d,lastTimestamp:m,totalCostUSD:y,totalInputTokens:f,totalOutputTokens:g,totalCacheReadTokens:v,totalCacheWriteTokens:h,apiCalls:b,turns:p,modelBreakdown:x,toolBreakdown:w,mcpBreakdown:S,bashBreakdown:E,categoryBreakdown:k},cwd:a??void 0}}async function Pb(t={}){let e=t.projectsBase??CZ,r=kke(t),n=bo.get(r);if(n&&Date.now()-n.tsc.isDirectory()).map(c=>c.name)}catch{return U1(r,[]),[]}let i=new Set,a=[];for(let o of s){let c=(0,xo.join)(e,o),l=[];try{l=(await(0,Om.readdir)(c)).filter(f=>f.endsWith(".jsonl"))}catch{continue}if(l.length===0)continue;let u=[],p=null,d=t.dateRange?.start.getTime();for(let f of l){let g=(0,xo.join)(c,f),v;try{v=await(0,Om.stat)(g)}catch{continue}if(d!==void 0&&v.mtimeMsRZ){_.warn("PARSER","JSONL file exceeds size limit, skipping",{filePath:g,size:v.size,limit:RZ});continue}let{session:h,cwd:y}=await jke(g,o,i,t.dateRange);h&&u.push(h),p===null&&y&&(p=y)}if(u.length===0)continue;let m=p??kZ(o);a.push({project:o,projectPath:m,sessions:u,totalCostUSD:u.reduce((f,g)=>f+g.totalCostUSD,0),totalApiCalls:u.reduce((f,g)=>f+g.apiCalls,0)})}return a.sort((o,c)=>c.totalCostUSD-o.totalCostUSD),U1(r,a),a}function AZ(t){if(!t)return"1970-01-01";let e=new Date(t);if(Number.isNaN(e.getTime()))return"1970-01-01";let r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${r}-${n}-${s}`}function Nke(t){return AZ(t).slice(0,7)}function jZ(){return{inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,models:new Map}}function Dke(t){if(!t.since&&!t.until)return;let e=(s,i)=>{if(!s||!/^\d{8}$/.test(s))return i;let a=Number(s.slice(0,4)),o=Number(s.slice(4,6))-1,c=Number(s.slice(6,8));return new Date(a,o,c,0,0,0,0)},r=e(t.since,new Date(0)),n=t.until?new Date(e(t.until,new Date).getTime()+24*3600*1e3-1):new Date;return{start:r,end:n}}function NZ(t,e,r,n){t.inputTokens+=r.inputTokens,t.outputTokens+=r.outputTokens,t.cacheCreationTokens+=r.cacheCreationInputTokens,t.cacheReadTokens+=r.cacheReadInputTokens;let s=t.models.get(e)??{modelName:e,inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,cost:0};s.inputTokens+=r.inputTokens,s.outputTokens+=r.outputTokens,s.cacheCreationTokens+=r.cacheCreationInputTokens,s.cacheReadTokens+=r.cacheReadInputTokens,s.cost+=n,t.models.set(e,s)}function DZ(t,e,r){let n=e.inputTokens+e.outputTokens+e.cacheCreationTokens+e.cacheReadTokens,s=Array.from(e.models.values()).sort((c,l)=>l.cost-c.cost),i=s.reduce((c,l)=>c+l.cost,0),a=s.map(c=>c.modelName),o={inputTokens:e.inputTokens,outputTokens:e.outputTokens,cacheCreationTokens:e.cacheCreationTokens,cacheReadTokens:e.cacheReadTokens,totalTokens:n,totalCost:i,modelsUsed:a,modelBreakdowns:s};return r==="daily"?{date:t,...o}:{month:t,...o}}async function q1(t){let e=Dke(t);return Pb({dateRange:e,projectsBase:t.projectsBase})}function*F1(t){for(let e of t)for(let r of e.sessions)for(let n of r.turns)for(let s of n.assistantCalls)yield{timestamp:s.timestamp,model:s.model,tokens:s.usage,cost:s.costUSD}}async function H1(t={}){go();let e=await q1(t),r=new Map;for(let s of F1(e)){let i=AZ(s.timestamp),a=r.get(i)??jZ();NZ(a,s.model,s.tokens,s.cost),r.set(i,a)}return{daily:Array.from(r.entries()).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>DZ(s,i,"daily")),unknownModels:go()}}async function MZ(t={}){go();let e=await q1(t),r=new Map;for(let s of F1(e)){let i=Nke(s.timestamp),a=r.get(i)??jZ();NZ(a,s.model,s.tokens,s.cost),r.set(i,a)}return{monthly:Array.from(r.entries()).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>DZ(s,i,"monthly")),unknownModels:go()}}async function zZ(t={}){go();let e=await q1(t),r=new Map;for(let s of F1(e)){let i=r.get(s.model)??{model:s.model,totalCost:0,inputTokens:0,outputTokens:0,totalTokens:0};i.totalCost+=s.cost,i.inputTokens+=s.tokens.inputTokens,i.outputTokens+=s.tokens.outputTokens,i.totalTokens+=s.tokens.inputTokens+s.tokens.outputTokens+s.tokens.cacheCreationInputTokens+s.tokens.cacheReadInputTokens,r.set(s.model,i)}return{models:Array.from(r.values()).sort((s,i)=>i.totalCost-s.totalCost),unknownModels:go()}}var LZ=require("node:child_process"),UZ=require("node:fs"),qZ=require("node:util");re();var Mke=(0,qZ.promisify)(LZ.execFile),FZ=5e3,zke=15e3,$ke=300*1e3,Lke=8*1024*1024,$Z=new Map;async function Nl(t,e,r){let n=r-Date.now();if(n<=0)return null;let s=Math.min(FZ,n);try{let{stdout:i}=await Mke("git",e,{cwd:t,timeout:s,maxBuffer:Lke});return i.trim()}catch{return null}}async function Uke(t,e){return(0,UZ.existsSync)(t)?await Nl(t,["rev-parse","--is-inside-work-tree"],e)==="true":!1}async function B1(t,e,r){if(await Nl(t,["check-ref-format","--branch",e],r)===null)return!1;let s=await Nl(t,["rev-parse","--verify","--quiet",e],r);return s!==null&&s.length>0}async function qke(t,e){let r=await Nl(t,["symbolic-ref","refs/remotes/origin/HEAD"],e);if(r){let n=r.replace(/^refs\/remotes\/origin\//,"");if(await B1(t,n,e))return n}return await B1(t,"main",e)?"main":await B1(t,"master",e)?"master":"main"}async function Fke(t,e){return await Nl(t,["rev-parse","HEAD"],e)??""}async function Hke(t,e,r,n){let s=`--since=${e.start.toISOString()}`,i=`--until=${e.end.toISOString()}`,a=await Nl(t,["log",r,s,i,"--format=%aI"],n);return a?a.split(` +`).filter(Boolean).map(o=>({timestamp:new Date(o)})):[]}function Bke(t,e){if(!t.firstTimestamp)return 0;let r=new Date(t.firstTimestamp),n=new Date(new Date(t.lastTimestamp||t.firstTimestamp).getTime()+3600*1e3);return e.filter(s=>s.timestamp>=r&&s.timestamp<=n).length}async function Wke(t,e,r){let n=t.projectPath,s=Date.now(),i=Math.min(r.remainingMs,FZ*4),a=s+i,o=(v,h)=>({productiveSessions:[],productiveCost:0,commitsShipped:0,hasGit:h,degraded:v});if(r.remainingMs<=0)return o(!0,!1);if(!n||!await Uke(n,a))return r.remainingMs-=Date.now()-s,o(!1,!1);let c=await Fke(n,a),l=`${n}|${e.start.getTime()}|${e.end.getTime()}|${c}`,u=$Z.get(l);if(u&&u.sha===c&&Date.now()-u.ts<$ke)return r.remainingMs-=Date.now()-s,u.result;let p="main";try{p=await qke(n,a)}catch(v){_.warn("PARSER","code-quality: main branch detection failed",{cwd:n,error:v instanceof Error?v.message:String(v)})}if(Date.now()>=a)return r.remainingMs-=Date.now()-s,o(!0,!0);let d=[],m=!1;try{d=await Hke(n,e,p,a)}catch(v){m=!0,_.warn("PARSER","code-quality: commit lookup failed",{cwd:n,error:v instanceof Error?v.message:String(v)})}let f=m||Date.now()>=a,g={productiveSessions:[],productiveCost:0,commitsShipped:0,hasGit:!0,degraded:f};if(!f)for(let v of t.sessions){let h=Bke(v,d);h>0&&(g.productiveSessions.push(v),g.productiveCost+=v.totalCostUSD,g.commitsShipped+=h)}return r.remainingMs-=Date.now()-s,f||$Z.set(l,{result:g,ts:Date.now(),sha:c}),g}async function HZ(t){let e=await Pb({dateRange:t.dateRange,projectsBase:t.projectsBase}),r=0,n=0,s=0,i=0,a=0,o=new Map;for(let v of jl)o.set(v,{editTurns:0,oneShotTurns:0,retries:0});for(let v of e)for(let h of v.sessions){i++,a+=h.totalCostUSD;for(let y of jl){let b=h.categoryBreakdown[y],x=o.get(y);x.editTurns+=b.editTurns,x.oneShotTurns+=b.oneShotTurns,x.retries+=b.retries,r+=b.editTurns,n+=b.oneShotTurns,s+=b.retries}}let c=jl.map(v=>{let h=o.get(v);return{category:v,label:TZ[v],editTurns:h.editTurns,retries:h.retries,oneShotPct:h.editTurns>0?h.oneShotTurns/h.editTurns:0}}).filter(v=>v.editTurns>0).sort((v,h)=>h.retries-v.retries||h.editTurns-v.editTurns).slice(0,3),l={remainingMs:zke},u=0,p=0,d=0,m=!1,f=!1,g=[];for(let v of e){let h=await Wke(v,t.dateRange,l);h.hasGit&&(m=!0),h.degraded&&(f=!0,g.push(v.project)),u+=h.productiveCost,p+=h.productiveSessions.length,d+=h.commitsShipped}return{totalEditTurns:r,oneShotTurns:n,oneShotPct:r>0?n/r:0,retries:s,retriesPerEditTurn:r>0?s/r:0,topCategories:c,productive:{cost:u,sessions:p},totalSessions:i,totalCost:a,commitsShipped:d,hasGitData:m,degraded:f,degradedProjects:g}}function Zke(t){switch(t.kind){case"pro":return 20;case"max":return 200;case"custom":return Math.max(0,t.monthlyUsd??0);default:return 0}}function Gke(t){return typeof t!="number"||Number.isNaN(t)?1:Math.min(28,Math.max(1,Math.floor(t)))}function Vke(t,e){let r=Gke(t),n=e.getFullYear(),s=e.getMonth(),i;e.getDate()>=r?i=new Date(n,s,r,0,0,0,0):i=new Date(n,s-1,r,0,0,0,0);let a=new Date(i);return a.setMonth(a.getMonth()+1),{periodStart:i,periodEnd:a}}function Kke(t){return t>=1?"over":t>=.8?"near":"under"}function BZ(t,e,r=new Date){let n=Zke(t),{periodStart:s,periodEnd:i}=Vke(t.resetDay??1,r),a=0;for(let d of e){let m=new Date(d.date+"T00:00:00");m>=s&&m0?a/n:0;return{kind:t.kind,monthlyBudgetUsd:n,spendToDate:a,forecastEndOfPeriod:u,periodStart:s.toISOString().slice(0,10),periodEnd:i.toISOString().slice(0,10),daysElapsed:l,daysTotal:c,status:Kke(p),pctUsed:p}}var vi=Q(require("node:fs"),1),W1=Q(require("node:os"),1),Am=Q(require("node:path"),1),ra=/^\d{8}$/,Jke=300*1e3,Ib=class extends Te{cache=new Map;pendingExecutions=new Map;pricingReady=null;projectsBase;defaultWindowMonths;constructor(e={}){super(),this.projectsBase=e.projectsBase,this.defaultWindowMonths=e.defaultWindowMonths??12,this.pricingReady=V3().catch(()=>{})}setupRoutes(e){e.get("/api/usage/daily",this.wrapHandler(this.handleDaily.bind(this))),e.get("/api/usage/monthly",this.wrapHandler(this.handleMonthly.bind(this))),e.get("/api/usage/models",this.wrapHandler(this.handleModels.bind(this))),e.get("/api/usage/yield",this.wrapHandler(this.handleYield.bind(this))),e.get("/api/usage/plan",this.wrapHandler(this.handlePlan.bind(this))),e.put("/api/usage/plan",this.wrapHandler(this.handlePlanPut.bind(this)))}async handlePlanPut(e,r){let n=e.body;if(!n||typeof n!="object"){this.badRequest(r,"Request body must be a plan object.");return}if(typeof n.kind!="string"||!["none","pro","max","custom"].includes(n.kind)){this.badRequest(r,"kind must be one of: none, pro, max, custom");return}if(n.monthlyUsd!==void 0&&(typeof n.monthlyUsd!="number"||n.monthlyUsd<0||n.monthlyUsd>1e4)){this.badRequest(r,"monthlyUsd must be a number between 0 and 10000");return}if(n.resetDay!==void 0&&(typeof n.resetDay!="number"||n.resetDay<1||n.resetDay>28)){this.badRequest(r,"resetDay must be a number between 1 and 28");return}let s=Am.join(W1.homedir(),".pilot","config.json"),i={};try{i=JSON.parse(vi.readFileSync(s,"utf-8"))}catch{i={}}let a=i.usage??{},c={...a.plan??{},kind:n.kind};n.monthlyUsd!==void 0&&(c.monthlyUsd=n.monthlyUsd),n.resetDay!==void 0&&(c.resetDay=n.resetDay),i.usage={...a,plan:c},vi.mkdirSync(Am.dirname(s),{recursive:!0});let l=s+".tmp";vi.writeFileSync(l,JSON.stringify(i,null,2),"utf-8"),vi.renameSync(l,s),this.cache.delete("plan"),r.json({available:!0,plan:c})}async handlePlan(e,r){let n=await this.getCachedOrExecute("plan",async()=>{await this.pricingReady;let s=this.readPlanFromConfig(),{daily:i}=await H1({}),a=BZ(s,i.map(o=>({date:o.date,totalCost:o.totalCost})));return{plan:s,progress:a}});r.json({available:!0,...n})}readPlanFromConfig(){let e=Am.join(W1.homedir(),".pilot","config.json");try{let n=JSON.parse(vi.readFileSync(e,"utf-8")).usage?.plan;if(n&&typeof n.kind=="string"&&["none","pro","max","custom"].includes(n.kind))return{kind:n.kind,monthlyUsd:typeof n.monthlyUsd=="number"?n.monthlyUsd:void 0,resetDay:typeof n.resetDay=="number"?n.resetDay:void 0}}catch{}return{kind:"none"}}async handleYield(e,r){let n=e.query.since,s=e.query.until;if(n&&!ra.test(n)){this.badRequest(r,"Invalid since parameter. Expected YYYYMMDD format.");return}if(s&&!ra.test(s)){this.badRequest(r,"Invalid until parameter. Expected YYYYMMDD format.");return}let i=`yield-${n??""}-${s??""}`,a=await this.getCachedOrExecute(i,async()=>{await this.pricingReady;let o={start:n?this.parseDate(n):new Date(Date.now()-720*3600*1e3),end:s?new Date(this.parseDate(s).getTime()+24*3600*1e3-1):new Date};return HZ({dateRange:o})});r.json({available:!0,...a})}parseDate(e){let r=Number(e.slice(0,4)),n=Number(e.slice(4,6))-1,s=Number(e.slice(6,8));return new Date(r,n,s)}async handleDaily(e,r){let n=e.query.since,s=e.query.until;if(n&&!ra.test(n)){this.badRequest(r,"Invalid since parameter. Expected YYYYMMDD format.");return}if(s&&!ra.test(s)){this.badRequest(r,"Invalid until parameter. Expected YYYYMMDD format.");return}let i=n||this.defaultSince(),a=`daily-${i}-${s||""}`,o=await this.getCachedOrExecute(a,async()=>(await this.pricingReady,H1({since:i,until:s,projectsBase:this.projectsBase})));r.json({available:!0,...o})}async handleMonthly(e,r){let n=e.query.since,s=e.query.until;if(n&&!ra.test(n)){this.badRequest(r,"Invalid since parameter. Expected YYYYMMDD format.");return}if(s&&!ra.test(s)){this.badRequest(r,"Invalid until parameter. Expected YYYYMMDD format.");return}let i=n||this.defaultMonthlyOrModelsSince(),a=`monthly-${i}-${s||""}`,o=await this.getCachedOrExecute(a,async()=>(await this.pricingReady,MZ({since:i,until:s,projectsBase:this.projectsBase})));r.json({available:!0,...o})}async handleModels(e,r){let n=e.query.since,s=e.query.until;if(n&&!ra.test(n)){this.badRequest(r,"Invalid since parameter. Expected YYYYMMDD format.");return}if(s&&!ra.test(s)){this.badRequest(r,"Invalid until parameter. Expected YYYYMMDD format.");return}let i=n||this.defaultMonthlyOrModelsSince(),a=`models-${i}-${s||""}`,o=await this.getCachedOrExecute(a,async()=>(await this.pricingReady,zZ({since:i,until:s,projectsBase:this.projectsBase})));r.json({available:!0,...o})}async getCachedOrExecute(e,r){let n=this.cache.get(e);if(n&&Date.now()-n.timestamp(this.cache.set(e,{data:a,timestamp:Date.now()}),a)).finally(()=>{this.pendingExecutions.delete(e)});return this.pendingExecutions.set(e,i),i}defaultSince(){let e=new Date;return e.setDate(e.getDate()-30),this.toYyyymmdd(e)}defaultMonthlyOrModelsSince(){let e=new Date;return e.setMonth(e.getMonth()-this.defaultWindowMonths),this.toYyyymmdd(e)}toYyyymmdd(e){let r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${r}${n}${s}`}};var Qke=300*1e3,Yke=1e4,Cb=class extends Te{cache=null;pending=null;rtkPath;constructor(){super(),this.rtkPath=Bun.which("rtk")}setupRoutes(e){e.get("/api/tool-savings",this.wrapHandler(this.handleToolSavings.bind(this)))}async handleToolSavings(e,r){let n=await this.getCached();r.json(n)}async getCached(){return this.cache&&Date.now()-this.cache.timestamp{let r={rtk:e};return this.cache={data:r,timestamp:Date.now()},r}).finally(()=>{this.pending=null}),this.pending)}async fetchRtkStats(){if(!this.rtkPath)return{available:!1,error:"rtk not installed"};try{let e=Bun.spawn([this.rtkPath,"gain","--format","json"],{stdout:"pipe",stderr:"pipe"}),r=setTimeout(()=>{try{e.kill("SIGTERM")}catch{}},Yke);try{let n=await new Response(e.stdout).text();if(await e.exited!==0)return{available:!1,error:"rtk command failed"};let a=JSON.parse(n).summary;return a?{available:!0,totalCommands:a.total_commands,totalInput:a.total_input,totalOutput:a.total_output,totalSaved:a.total_saved,avgSavingsPct:a.avg_savings_pct,totalTimeMs:a.total_time_ms}:{available:!1,error:"Unexpected rtk output"}}finally{clearTimeout(r)}}catch(e){return{available:!1,error:e instanceof Error?e.message:"rtk error"}}}};var Z1=require("child_process"),G1=require("fs"),V1=require("os");var Ob={valid:!1,tier:null,email:null,daysRemaining:null,isExpired:!1},Xke=300*1e3,Ab=class extends Te{cache=null;setupRoutes(e){e.get("/api/license",this.handleGetLicense.bind(this)),e.post("/api/license/activate",this.handleActivate.bind(this))}handleGetLicense=this.wrapHandler((e,r)=>{let n=e.query.refresh==="1";r.json(this.getLicenseInfo(n))});getLicenseInfo(e=!1){if(!e&&this.cache&&Date.now(){let{key:n}=e.body;if(!n||typeof n!="string"){this.badRequest(r,"License key is required");return}let s=this.activateLicense(n.trim());r.json(s)});activateLicense(e){let r=`${(0,V1.homedir)()}/.pilot/bin/pilot`;if(!(0,G1.existsSync)(r))return{success:!1,tier:null,email:null,error:"Pilot binary not found"};try{let s=(0,Z1.spawnSync)(r,["activate",e,"--json"],{stdio:"pipe",timeout:1e4,env:Bu()}).stdout?.toString().trim();if(!s)return{success:!1,tier:null,email:null,error:"No response from pilot"};let i=JSON.parse(s);return i.success?(this.cache=null,{success:!0,tier:i.tier??null,email:i.email??null,error:null}):{success:!1,tier:null,email:null,error:i.error??"Activation failed"}}catch{return{success:!1,tier:null,email:null,error:"Activation request failed"}}}fetchLicenseFromCLI(){let e=`${(0,V1.homedir)()}/.pilot/bin/pilot`;if(!(0,G1.existsSync)(e))return{...Ob};try{let n=(0,Z1.spawnSync)(e,["status","--json"],{stdio:"pipe",timeout:5e3,env:Bu()}).stdout?.toString().trim();if(!n)return{...Ob};let s=JSON.parse(n);return s.success?{valid:!0,tier:s.tier??null,email:s.email??null,daysRemaining:s.days_remaining??null,isExpired:!1}:s.error==="No license found"?{...Ob}:{valid:!1,tier:s.tier??null,email:s.email??null,daysRemaining:s.days_remaining??null,isExpired:!0}}catch{return{...Ob}}}};var xe=Q(require("path"),1),le=require("node:fs");re();var eTe=3e4,jb=class extends Te{dbManager;listCache=new Map;constructor(e){super(),this.dbManager=e??null}listExtensions(e){let r=`${e.project??""}|${e.all?"all":""}`,n=this.listCache.get(r);if(n&&Date.now()-n.timestamp{let n=e.query.project,s=e.query.all==="true",i=this.listExtensions({project:n,all:s});r.json({extensions:i})});handleContent=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),i=e.query.scope||"global",a=e.query.project,o=e.query.pluginName;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}let c=process.env.HOME||"",l=null;if(o?l=this.resolvePluginExtensionPath(c,o,n,s):l=this.resolveExtensionPath(n,s,i,a,c),!l||!(0,le.existsSync)(l)){r.status(404).json({error:"Extension not found"});return}try{let u=(0,le.readFileSync)(l,"utf-8");r.json({name:s,content:u,format:"markdown"})}catch{r.status(404).json({error:"Extension not found"})}});handleSave=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),{content:i,scope:a,project:o}=e.body;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}if(!i||typeof i!="string"){r.status(400).json({error:"Missing content"});return}let c=process.env.HOME||"",l=this.resolveExtensionPath(n,s,a,o,c);if(!l){r.status(404).json({error:`Extension not found: ${n}/${s}`});return}try{(0,le.writeFileSync)(l,i,"utf-8"),this.invalidateListCache(),r.json({ok:!0})}catch(u){_.error("HTTP",`Failed to save ${l}`,{},u),r.status(500).json({error:"Failed to save extension"})}});handleRename=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),{newName:i,scope:a,project:o}=e.body;if(!this.isValidName(s)||!this.isValidName(i)){r.status(400).json({error:"Invalid name"});return}let c=process.env.HOME||"",l=this.resolveExtensionPath(n,s,a,o,c);if(!l){r.status(404).json({error:`Extension not found: ${n}/${s}`});return}try{if(n==="skill"){let u=xe.default.dirname(l),p=xe.default.join(xe.default.dirname(u),i);if((0,le.existsSync)(p)){r.status(409).json({error:"An extension with that name already exists"});return}(0,le.renameSync)(u,p)}else{let u=xe.default.extname(l),p=xe.default.join(xe.default.dirname(l),`${i}${u}`);if((0,le.existsSync)(p)){r.status(409).json({error:"An extension with that name already exists"});return}(0,le.renameSync)(l,p)}this.invalidateListCache(),r.json({ok:!0,newName:i})}catch{r.status(500).json({error:"Failed to rename extension"})}});handleDelete=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),i=e.query.scope||"global",a=e.query.project;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}let o=process.env.HOME||"",c=this.resolveExtensionPath(n,s,i,a,o);if(!c){r.status(404).json({error:`Extension not found: ${n}/${s}`});return}try{if(n==="skill"){let l=xe.default.dirname(c);(0,le.rmSync)(l,{recursive:!0})}else(0,le.unlinkSync)(c);this.invalidateListCache(),r.json({ok:!0})}catch{r.status(500).json({error:"Failed to delete extension"})}});handleMove=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),{from:i,to:a,project:o}=e.body;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}if(i!=="project"&&i!=="global"||a!=="project"&&a!=="global"){r.status(400).json({error:"from/to must be 'project' or 'global'"});return}let c=process.env.HOME||"",l=this.performScopeMove(n,s,i,a,o,c);if(!l.ok){r.status(400).json({error:l.error});return}this.invalidateListCache(),r.json({ok:!0})});scanPluginExtensions(e){let r=xe.default.join(e,".claude"),n=this.readEnabledPlugins(r);if(n.size===0)return[];let s=xe.default.join(r,"plugins","cache");if(!(0,le.existsSync)(s))return[];let i;try{i=(0,le.readdirSync)(s).filter(c=>{try{return(0,le.statSync)(xe.default.join(s,c)).isDirectory()}catch{return!1}})}catch{return[]}let a=new Map;for(let c of i){let l=xe.default.join(s,c),u;try{u=(0,le.readdirSync)(l).filter(p=>{try{return(0,le.statSync)(xe.default.join(l,p)).isDirectory()}catch{return!1}})}catch{continue}for(let p of u){let d=`${p}@${c}`;if(!n.has(d))continue;let m=xe.default.join(l,p),f=null;try{let x=(0,le.readdirSync)(m).filter(S=>{try{return(0,le.statSync)(xe.default.join(m,S)).isDirectory()}catch{return!1}}),w=this.pickLatestVersion(x);w&&(f=xe.default.join(m,w))}catch{continue}if(!f)continue;let g=this.readPluginDisplayName(f)??p,v=[];for(let[x,w]of Object.entries({commands:"command",rules:"rule",agents:"agent"})){let S=xe.default.join(f,x),E=this.scanMarkdownDir(S);for(let k of E)this.fileExists(xe.default.join(S,`${k}.md.tmpl`))||v.push({name:k,category:w,scope:"global",filePath:`${x}/${k}.md`,editable:!1,format:"markdown",pluginName:g})}let h=xe.default.join(f,"skills"),y=this.scanSkillsDir(h);for(let x of y)v.push({name:x,category:"skill",scope:"global",filePath:`skills/${x}/SKILL.md`,editable:!1,format:"markdown",pluginName:g});let b=a.get(p);(!b||v.length>b.length)&&a.set(p,v)}}let o=[];for(let c of a.values())o.push(...c);return o}pickLatestVersion(e){if(e.length===0)return;if(e.length===1)return e[0];if(e.includes("latest"))return"latest";let r=e.map(n=>{let s=n.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);return{raw:n,major:s?parseInt(s[1],10):-1,minor:s?parseInt(s[2],10):-1,patch:s?parseInt(s[3],10):-1,prerelease:s?.[4]??null,isSemver:s!==null}});return r.sort((n,s)=>n.isSemver&&!s.isSemver?-1:!n.isSemver&&s.isSemver?1:n.isSemver&&s.isSemver?n.major!==s.major?s.major-n.major:n.minor!==s.minor?s.minor-n.minor:n.patch!==s.patch?s.patch-n.patch:!n.prerelease&&s.prerelease?-1:n.prerelease&&!s.prerelease?1:n.prerelease&&s.prerelease?s.prerelease.localeCompare(n.prerelease):0:s.raw.localeCompare(n.raw)),r[0].raw}scanMarkdownDir(e,r,n){try{return(0,le.existsSync)(e)?(0,le.readdirSync)(e).filter(s=>{try{return!s.endsWith(".md")||!(0,le.statSync)(xe.default.join(e,s)).isFile()?!1:r&&n?!r.has(`${n}/${s}`):!0}catch{return!1}}).map(s=>s.replace(/\.md$/,"")).sort():[]}catch{return[]}}scanSkillsDir(e,r){try{return(0,le.existsSync)(e)?(0,le.readdirSync)(e).filter(n=>{try{let s=xe.default.join(e,n);return!(!(0,le.statSync)(s).isDirectory()||!(0,le.readdirSync)(s).includes("SKILL.md")||r&&this.hasManifestEntryUnder(r,`skills/${n}/`))}catch{return!1}}).sort():[]}catch{return[]}}hasManifestEntryUnder(e,r){for(let n of e)if(n.startsWith(r))return!0;return!1}loadPilotManifest(e){try{let r=xe.default.join(e,".claude",".pilot-manifest.json");if(!(0,le.existsSync)(r))return new Set;let n=JSON.parse((0,le.readFileSync)(r,"utf-8"));return new Set(Array.isArray(n.files)?n.files:[])}catch{return new Set}}performScopeMove(e,r,n,s,i,a){let o=this.resolveExtensionPath(e,r,n,i,a);if(!o)return{ok:!1,error:`Extension not found: ${e}/${r} (scope: ${n})`};let c=s==="global"?xe.default.join(a,".claude"):i?xe.default.join(hr(this.dbManager,i),".claude"):null;if(!c)return{ok:!1,error:"Cannot determine destination for scope move"};try{if(e==="skill"){let l=xe.default.dirname(o),u=xe.default.join(c,"skills",r);if(this.dirExists(u))return{ok:!1,error:`Extension '${r}' already exists at destination`};this.copyRecursive(l,u),(0,le.rmSync)(l,{recursive:!0})}else{let l=r.endsWith(".md")?r:`${r}.md`,u=this.categoryToDir(e),p=xe.default.join(c,u,l),d=xe.default.dirname(p);if(this.dirExists(d)||(0,le.mkdirSync)(d,{recursive:!0}),this.fileExists(p))return{ok:!1,error:`Extension '${r}' already exists at destination`};(0,le.copyFileSync)(o,p),(0,le.unlinkSync)(o)}return{ok:!0}}catch(l){return _.error("HTTP","Extension move failed",{},l),{ok:!1,error:"Failed to move extension"}}}scanMarkdownExtensions(e,r,n){let s=[];for(let i of["rule","command","agent"]){let a=this.categoryToDir(i),o=xe.default.join(e,a),c=this.scanMarkdownDir(o,n,a);for(let l of c)s.push({name:l,category:i,scope:r,filePath:`${a}/${l}.md`,editable:!0,format:"markdown"})}return s}scanSkillExtensions(e,r,n){let s=xe.default.join(e,"skills");return this.scanSkillsDir(s,n).map(a=>({name:a,category:"skill",scope:r,filePath:`skills/${a}/SKILL.md`,editable:!0,format:"markdown"}))}resolveExtensionPath(e,r,n,s,i){let a=n==="project"?xe.default.join(hr(this.dbManager,s),".claude"):xe.default.join(i,".claude"),o=null;if(e==="skill"){let c=xe.default.join(a,"skills",r,"SKILL.md");o=this.fileExists(c)?c:null}else if(e==="rule"||e==="command"||e==="agent"){let c=this.categoryToDir(e),l=xe.default.join(a,c,r.endsWith(".md")?r:`${r}.md`);o=this.fileExists(l)?l:null}return o&&!this.isContainedPath(o,a)?null:o}isContainedPath(e,r){try{if((0,le.lstatSync)(e).isSymbolicLink()){let i=(0,le.realpathSync)(e),a=(0,le.realpathSync)(r);return i.startsWith(a+"/")||i===a}let n=xe.default.resolve(e),s=xe.default.resolve(r);return n.startsWith(s+"/")||n===s}catch{return!1}}fileExists(e){try{return(0,le.statSync)(e).isFile()}catch{return!1}}dirExists(e){try{return(0,le.statSync)(e).isDirectory()}catch{return!1}}categoryToDir(e){switch(e){case"rule":return"rules";case"command":return"commands";case"agent":return"agents";case"skill":return"skills";default:return e}}isValidName(e){return/^[a-zA-Z0-9_\-\.]+$/.test(e)&&!e.includes("..")}resolvePluginExtensionPath(e,r,n,s){let i=xe.default.join(e,".claude","plugins","cache");if(!(0,le.existsSync)(i))return null;try{for(let a of(0,le.readdirSync)(i)){let o=xe.default.join(i,a);if((0,le.statSync)(o).isDirectory())for(let c of(0,le.readdirSync)(o)){let l=xe.default.join(o,c);if(!(0,le.statSync)(l).isDirectory())continue;let u=(0,le.readdirSync)(l).filter(g=>{try{return(0,le.statSync)(xe.default.join(l,g)).isDirectory()}catch{return!1}}),p=this.pickLatestVersion(u);if(!p)continue;let d=xe.default.join(l,p);if((this.readPluginDisplayName(d)??c)!==r)continue;let f=this.categoryToDir(n);if(n==="skill"){let g=xe.default.join(d,"skills",s,"SKILL.md");if((0,le.existsSync)(g))return g}else{let g=xe.default.join(d,f,`${s}.md`);if((0,le.existsSync)(g))return g}}}}catch{}return null}readEnabledPlugins(e){try{let r=xe.default.join(e,"settings.json");if(!(0,le.existsSync)(r))return new Set;let s=JSON.parse((0,le.readFileSync)(r,"utf-8"))?.enabledPlugins;return!s||typeof s!="object"||Array.isArray(s)?new Set:new Set(Object.keys(s).filter(i=>s[i]===!0))}catch{return new Set}}readPluginDisplayName(e){for(let r of[".plugin",".claude-plugin"])try{let n=xe.default.join(e,r,"plugin.json");if(!(0,le.existsSync)(n))continue;let s=JSON.parse((0,le.readFileSync)(n,"utf-8"));return typeof s?.name=="string"?s.name:null}catch{continue}return null}copyRecursive(e,r){(0,le.mkdirSync)(r,{recursive:!0});for(let n of(0,le.readdirSync)(e)){let s=xe.default.join(e,n),i=xe.default.join(r,n);(0,le.statSync)(s).isDirectory()?this.copyRecursive(s,i):(0,le.copyFileSync)(s,i)}}};var vr=Q(require("path"),1),ft=Q(require("node:fs"),1);re();var Nb=vr.default.join(process.env.HOME||"",".pilot","config.json"),tTe={rules:"rule",commands:"command",agents:"agent",skills:"skill"},rTe={instructions:"rule",prompts:"command",agents:"agent",skills:"skill"},K1=`# Track only extension directories \u2014 managed by Pilot Shell * !.gitignore !skills/ @@ -1903,7 +1903,7 @@ Tips: !commands/** !agents/ !agents/** -`,eP=`# Track APM-compatible extension directories \u2014 managed by Pilot Shell +`,J1=`# Track APM-compatible extension directories \u2014 managed by Pilot Shell * !.gitignore !apm.yml @@ -1915,9 +1915,9 @@ Tips: !prompts/** !agents/ !agents/** -`;function lTe(t){switch(t){case"rule":return"instructions";case"command":return"prompts";case"agent":return"agents";case"skill":return"skills";default:return t}}function uTe(t,e){switch(e){case"rule":return`${t}.instructions.md`;case"command":return`${t}.prompt.md`;case"agent":return`${t}.agent.md`;default:return`${t}.md`}}function pTe(t){return t.replace(/\.instructions\.md$/,"").replace(/\.prompt\.md$/,"").replace(/\.agent\.md$/,"").replace(/\.md$/,"")}var $b=class extends Te{setupRoutes(e){e.get("/api/team-remote/status",this.wrapHandler(this.handleStatus.bind(this))),e.get("/api/team-remote/extensions",this.wrapHandler(this.handleList.bind(this))),e.post("/api/team-remote/connect",this.wrapHandler(this.handleConnect.bind(this))),e.post("/api/team-remote/disconnect",this.wrapHandler(this.handleDisconnect.bind(this))),e.post("/api/team-remote/pull",this.wrapHandler(this.handlePull.bind(this))),e.post("/api/team-remote/push",this.wrapHandler(this.handlePush.bind(this))),e.post("/api/team-remote/migrate",this.wrapHandler(this.handleMigrate.bind(this))),e.get("/api/team-remote/content/:category/:name",this.wrapHandler(this.handleContent.bind(this)))}async handleStatus(e,r){let n=this.readPilotConfig(),s=typeof n.teamRemote=="string"?n.teamRemote:null,i=typeof n.teamRemoteSubfolder=="string"?n.teamRemoteSubfolder:null,a=n.teamRemoteApmFormat===!0,o=this.claudeDir(),l={connected:s!==null&&ft.existsSync(vr.default.join(o,".git")),remoteUrl:s,subfolder:i,apmFormat:a};r.json(l)}async handleList(e,r){let n=this.readPilotConfig();if(!(typeof n.teamRemote=="string"?n.teamRemote:null)){r.status(400).json({error:"No remote configured"});return}let i=typeof n.teamRemoteSubfolder=="string"?n.teamRemoteSubfolder.replace(/^\/|\/$/g,""):"",a=await this.git("fetch","origin");if(a.code!==0){r.status(502).json({error:`Failed to fetch remote: ${a.stderr}`});return}if(await this.isEmptyRepo()){r.json({extensions:[]});return}let o=await this.git("ls-tree","-r","--name-only","origin/HEAD");if(o.code!==0){r.status(502).json({error:`Failed to list remote: ${o.stderr}`});return}let c=n.teamRemoteApmFormat===!0,u={extensions:this.parseRemoteTree(o.stdout,i,c)};r.json(u)}async handleConnect(e,r){let{url:n,subfolder:s,apmFormat:i}=e.body;if(!n||typeof n!="string"||!n.trim()){r.status(400).json({error:"Missing url"});return}let a=this.claudeDir(),o=n.trim(),c=s?s.trim().replace(/^\/|\/$/g,""):"",l=i===!0;if(!ft.existsSync(vr.default.join(a,".git"))){let f=await this.git("init");if(f.code!==0){r.status(500).json({error:`Failed to init git repo: ${f.stderr}`});return}}let u=vr.default.join(a,".gitignore");if(ft.writeFileSync(u,l?eP:X1,"utf-8"),(await this.git("remote")).stdout.trim().split(` -`).includes("origin"))await this.git("remote","set-url","origin",o);else{let f=await this.git("remote","add","origin",o);if(f.code!==0){r.status(500).json({error:`Failed to add remote: ${f.stderr}`});return}}let d=await this.git("fetch","origin");if(d.code!==0){await this.git("remote","remove","origin"),r.status(502).json({error:`Cannot reach remote: ${d.stderr}`});return}await this.isEmptyRepo()&&(await this.git("add",".gitignore"),await this.git("commit","-m","Initial commit \u2014 Pilot Shell team extensions")),this.writePilotConfig({teamRemote:o,teamRemoteSubfolder:c||void 0,teamRemoteApmFormat:l||void 0});let m={ok:!0};r.json(m)}async handleDisconnect(e,r){this.writePilotConfig({teamRemote:null,teamRemoteSubfolder:null});let n={ok:!0};r.json(n)}async handlePull(e,r){let{category:n,name:s,targetScope:i,force:a}=e.body;if(!n||!s||!i){r.status(400).json({error:"Missing category, name, or targetScope"});return}let o=this.readPilotConfig(),c=typeof o.teamRemoteSubfolder=="string"?o.teamRemoteSubfolder.replace(/^\/|\/$/g,""):"",l=o.teamRemoteApmFormat===!0,u=this.resolveRemotePath(n,s,c,l);if(!u){r.status(400).json({error:`Cannot resolve remote path for ${n}/${s}`});return}let p=await this.git("fetch","origin");if(p.code!==0){r.status(502).json({error:`Failed to fetch: ${p.stderr}`});return}let d=`origin/HEAD:${u}`,m=await this.git("show",d);if(m.code!==0){r.status(404).json({error:`Extension not found in remote: ${u}`});return}let f=m.stdout,g=i==="global"?this.claudeDir():vr.default.join(process.env.CLAUDE_PROJECT_ROOT||process.cwd(),".claude"),v=this.resolveLocalPath(n,s,g);if(!a&&ft.existsSync(v)){let b=ft.readFileSync(v,"utf-8");if(b!==f){let x={ok:!1,error:"conflict",conflict:{localContent:b,remoteContent:f}};r.status(409).json(x);return}}let h=vr.default.dirname(v);ft.existsSync(h)||ft.mkdirSync(h,{recursive:!0}),ft.writeFileSync(v,f,"utf-8");let y={ok:!0};r.json(y)}async handlePush(e,r){let{category:n,name:s,scope:i}=e.body;if(!n||!s||!i){r.status(400).json({error:"Missing category, name, or scope"});return}let a=this.readPilotConfig(),o=typeof a.teamRemoteSubfolder=="string"?a.teamRemoteSubfolder.replace(/^\/|\/$/g,""):"",c=a.teamRemoteApmFormat===!0,l=this.claudeDir(),u=i==="global"?l:vr.default.join(process.env.CLAUDE_PROJECT_ROOT||process.cwd(),".claude"),p=this.resolveLocalPath(n,s,u);if(!ft.existsSync(p)){r.status(404).json({error:`Extension not found locally: ${n}/${s}`});return}let d=ft.readFileSync(p,"utf-8"),m=this.resolveRemotePath(n,s,o,c);if(!m){r.status(400).json({error:`Cannot resolve remote path for ${n}/${s}`});return}try{await this.git("fetch","origin");let f=c?this.ensureApmFrontmatter(d,n,s):d,g=vr.default.join(l,`.pilot-push-tmp-${Date.now()}.md`);ft.writeFileSync(g,f,"utf-8");try{let x=await this.git("hash-object","-w",g);if(x.code!==0){r.status(500).json({error:`Failed to hash content: ${x.stderr}`});return}let w=x.stdout.trim(),S=await this.git("update-index","--add","--cacheinfo",`100644,${w},${m}`);if(S.code!==0){r.status(500).json({error:`Failed to stage: ${S.stderr}`});return}}finally{try{ft.unlinkSync(g)}catch{}}c&&await this.stageApmManifest(l,o);let v=await this.git("commit","-m",`Update ${n}/${s}`);if(v.code!==0){r.status(500).json({error:`Failed to commit: ${v.stderr}`});return}let h=await this.getDefaultBranch(),y=await this.git("push","origin",`HEAD:${h}`);if(y.code!==0){await this.git("reset","HEAD~1"),r.status(502).json({error:`Push failed (try pulling first): ${y.stderr}`});return}let b={ok:!0};r.json(b)}catch(f){r.headersSent||r.status(500).json({error:`Push failed: ${f.message}`})}}async handleMigrate(e,r){let{toApm:n}=e.body,s=this.readPilotConfig(),i=typeof s.teamRemoteSubfolder=="string"?s.teamRemoteSubfolder.replace(/^\/|\/$/g,""):"",a=this.claudeDir(),o=await this.git("fetch","origin");if(o.code!==0){r.status(502).json({error:`Failed to fetch: ${o.stderr}`});return}if(await this.isEmptyRepo()){this.writePilotConfig({teamRemoteApmFormat:n||void 0});let m=vr.default.join(a,".gitignore");ft.writeFileSync(m,n?eP:X1,"utf-8"),r.json({ok:!0,migrated:0});return}await this.git("read-tree","origin/HEAD");let c=await this.git("ls-tree","-r","--name-only","origin/HEAD");if(c.code!==0){r.status(502).json({error:`Failed to list remote: ${c.stderr}`});return}let l=!n,u=this.parseRemoteTree(c.stdout,i,l);if(u.length===0){this.writePilotConfig({teamRemoteApmFormat:n||void 0}),r.json({ok:!0,migrated:0});return}let p=i?`${i}/`:"",d=0;try{for(let R of u){let O=`${p}${R.filePath}`,C=n?this.resolveRemotePath(R.category,R.name,i,!0):this.resolveRemotePath(R.category,R.name,i,!1);if(!C||O===C)continue;let U=await this.git("show",`origin/HEAD:${O}`);if(U.code!==0)continue;let q=U.stdout;n&&(q=this.ensureApmFrontmatter(q,R.category,R.name));let Z=vr.default.join(a,`.pilot-migrate-tmp-${Date.now()}.md`);ft.writeFileSync(Z,q,"utf-8");try{let se=await this.git("hash-object","-w",Z);if(se.code!==0)continue;let K=se.stdout.trim();await this.git("update-index","--add","--cacheinfo",`100644,${K},${C}`),await this.git("update-index","--remove",O),d++}finally{try{ft.unlinkSync(Z)}catch{}}}if(d===0){this.writePilotConfig({teamRemoteApmFormat:n||void 0}),r.json({ok:!0,migrated:0});return}if(n)await this.stageApmManifest(a,i);else{let R=p?`${p}apm.yml`:"apm.yml";await this.git("update-index","--remove",R)}let m=vr.default.join(a,".gitignore"),f=n?eP:X1;ft.writeFileSync(m,f,"utf-8");{let R=vr.default.join(a,`.pilot-gi-tmp-${Date.now()}`);ft.writeFileSync(R,f,"utf-8");try{let O=await this.git("hash-object","-w",R);O.code===0&&await this.git("update-index","--add","--cacheinfo",`100644,${O.stdout.trim()},.gitignore`)}finally{try{ft.unlinkSync(R)}catch{}}}let g=await this.git("write-tree");if(g.code!==0){r.status(500).json({error:`Failed to write tree: ${g.stderr}`});return}let v=g.stdout.trim(),h=await this.git("rev-parse","origin/HEAD"),y=h.code===0?h.stdout.trim():null,b=n?"native \u2192 APM":"APM \u2192 native",x=y?["commit-tree",v,"-p",y,"-m",`Migrate extensions: ${b}`]:["commit-tree",v,"-m",`Migrate extensions: ${b}`],w=await this.git(...x);if(w.code!==0){r.status(500).json({error:`Failed to commit migration: ${w.stderr}`});return}let S=w.stdout.trim();await this.git("update-ref","HEAD",S);let k=await this.getDefaultBranch(),E=await this.git("push","origin",`${S}:${k}`);if(E.code!==0){r.status(502).json({error:`Migration push failed: ${E.stderr}`});return}this.writePilotConfig({teamRemoteApmFormat:n||void 0}),r.json({ok:!0,migrated:d})}catch(m){r.headersSent||r.status(500).json({error:`Migration failed: ${m.message}`})}}async handleContent(e,r){let n=e.params.category,s=decodeURIComponent(e.params.name),i=this.readPilotConfig(),a=typeof i.teamRemoteSubfolder=="string"?i.teamRemoteSubfolder.replace(/^\/|\/$/g,""):"",o=i.teamRemoteApmFormat===!0,c=this.resolveRemotePath(n,s,a,o);if(!c){r.status(400).json({error:`Cannot resolve remote path for ${n}/${s}`});return}await this.git("fetch","origin");let l=await this.git("show",`origin/HEAD:${c}`);if(l.code!==0){r.status(404).json({error:`Extension not found in remote: ${c}`});return}let u={content:l.stdout,name:s};r.json(u)}parseRemoteTree(e,r,n=!1){let s=r?`${r}/`:"",i=[],a=new Set;for(let o of e.split(` -`)){let c=o.trim();if(!c)continue;let l=s?c.startsWith(s)?c.slice(s.length):null:c;if(!l)continue;let u=l.split("/");if(u.length<2)continue;let p=u[0],d=this.parseTreeEntry(u,p,l,n);if(d){let m=`${d.category}/${d.name}`;a.has(m)||(a.add(m),i.push(d))}}return i}parseTreeEntry(e,r,n,s){let i=this.tryParseEntry(e,r,n,s);return i||this.tryParseEntry(e,r,n,!s)}tryParseEntry(e,r,n,s){let a=(s?cTe:oTe)[r];return a?a==="skill"?e.length===3&&e[2]==="SKILL.md"?{name:e[1],category:a,filePath:n}:null:e.length!==2||!e[1].endsWith(".md")?null:{name:s?pTe(e[1]):e[1].replace(/\.md$/,""),category:a,filePath:n}:null}readPilotConfig(){try{return JSON.parse(ft.readFileSync(zb,"utf-8"))}catch{return{}}}claudeDir(){return vr.default.join(process.env.HOME||"",".claude")}writePilotConfig(e){let r=this.readPilotConfig();for(let[i,a]of Object.entries(e))a==null?delete r[i]:r[i]=a;let n=vr.default.dirname(zb);ft.mkdirSync(n,{recursive:!0});let s=zb+".tmp";ft.writeFileSync(s,JSON.stringify(r,null,2),"utf-8"),ft.renameSync(s,zb)}resolveRemotePath(e,r,n,s=!1){let i=n?`${n}/`:"";if(s){let o=lTe(e);return e==="skill"?`${i}${o}/${r}/SKILL.md`:`${i}${o}/${uTe(r,e)}`}let a=this.categoryToDirName(e);return e==="skill"?`${i}${a}/${r}/SKILL.md`:`${i}${a}/${r}.md`}resolveLocalPath(e,r,n){let s=this.categoryToDirName(e);return e==="skill"?vr.default.join(n,s,r,"SKILL.md"):vr.default.join(n,s,`${r}.md`)}categoryToDirName(e){switch(e){case"rule":return"rules";case"command":return"commands";case"agent":return"agents";case"skill":return"skills";default:return e}}ensureApmFrontmatter(e,r,n){if(r==="skill")return e;let s=r==="rule"?"applyTo":"description",i=r==="rule"?'applyTo: "**"':`description: "${n.replace(/-/g," ")}"`,a=e.trimStart(),o=a.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(o){if(o[1].includes(`${s}:`))return e;let l=e.length-a.length;return`${e.slice(0,l)}--- +`;function nTe(t){switch(t){case"rule":return"instructions";case"command":return"prompts";case"agent":return"agents";case"skill":return"skills";default:return t}}function sTe(t,e){switch(e){case"rule":return`${t}.instructions.md`;case"command":return`${t}.prompt.md`;case"agent":return`${t}.agent.md`;default:return`${t}.md`}}function iTe(t){return t.replace(/\.instructions\.md$/,"").replace(/\.prompt\.md$/,"").replace(/\.agent\.md$/,"").replace(/\.md$/,"")}var Db=class extends Te{setupRoutes(e){e.get("/api/team-remote/status",this.wrapHandler(this.handleStatus.bind(this))),e.get("/api/team-remote/extensions",this.wrapHandler(this.handleList.bind(this))),e.post("/api/team-remote/connect",this.wrapHandler(this.handleConnect.bind(this))),e.post("/api/team-remote/disconnect",this.wrapHandler(this.handleDisconnect.bind(this))),e.post("/api/team-remote/pull",this.wrapHandler(this.handlePull.bind(this))),e.post("/api/team-remote/push",this.wrapHandler(this.handlePush.bind(this))),e.post("/api/team-remote/migrate",this.wrapHandler(this.handleMigrate.bind(this))),e.get("/api/team-remote/content/:category/:name",this.wrapHandler(this.handleContent.bind(this)))}async handleStatus(e,r){let n=this.readPilotConfig(),s=typeof n.teamRemote=="string"?n.teamRemote:null,i=typeof n.teamRemoteSubfolder=="string"?n.teamRemoteSubfolder:null,a=n.teamRemoteApmFormat===!0,o=this.claudeDir(),l={connected:s!==null&&ft.existsSync(vr.default.join(o,".git")),remoteUrl:s,subfolder:i,apmFormat:a};r.json(l)}async handleList(e,r){let n=this.readPilotConfig();if(!(typeof n.teamRemote=="string"?n.teamRemote:null)){r.status(400).json({error:"No remote configured"});return}let i=typeof n.teamRemoteSubfolder=="string"?n.teamRemoteSubfolder.replace(/^\/|\/$/g,""):"",a=await this.git("fetch","origin");if(a.code!==0){r.status(502).json({error:`Failed to fetch remote: ${a.stderr}`});return}if(await this.isEmptyRepo()){r.json({extensions:[]});return}let o=await this.git("ls-tree","-r","--name-only","origin/HEAD");if(o.code!==0){r.status(502).json({error:`Failed to list remote: ${o.stderr}`});return}let c=n.teamRemoteApmFormat===!0,u={extensions:this.parseRemoteTree(o.stdout,i,c)};r.json(u)}async handleConnect(e,r){let{url:n,subfolder:s,apmFormat:i}=e.body;if(!n||typeof n!="string"||!n.trim()){r.status(400).json({error:"Missing url"});return}let a=this.claudeDir(),o=n.trim(),c=s?s.trim().replace(/^\/|\/$/g,""):"",l=i===!0;if(!ft.existsSync(vr.default.join(a,".git"))){let f=await this.git("init");if(f.code!==0){r.status(500).json({error:`Failed to init git repo: ${f.stderr}`});return}}let u=vr.default.join(a,".gitignore");if(ft.writeFileSync(u,l?J1:K1,"utf-8"),(await this.git("remote")).stdout.trim().split(` +`).includes("origin"))await this.git("remote","set-url","origin",o);else{let f=await this.git("remote","add","origin",o);if(f.code!==0){r.status(500).json({error:`Failed to add remote: ${f.stderr}`});return}}let d=await this.git("fetch","origin");if(d.code!==0){await this.git("remote","remove","origin"),r.status(502).json({error:`Cannot reach remote: ${d.stderr}`});return}await this.isEmptyRepo()&&(await this.git("add",".gitignore"),await this.git("commit","-m","Initial commit \u2014 Pilot Shell team extensions")),this.writePilotConfig({teamRemote:o,teamRemoteSubfolder:c||void 0,teamRemoteApmFormat:l||void 0});let m={ok:!0};r.json(m)}async handleDisconnect(e,r){this.writePilotConfig({teamRemote:null,teamRemoteSubfolder:null});let n={ok:!0};r.json(n)}async handlePull(e,r){let{category:n,name:s,targetScope:i,force:a}=e.body;if(!n||!s||!i){r.status(400).json({error:"Missing category, name, or targetScope"});return}let o=this.readPilotConfig(),c=typeof o.teamRemoteSubfolder=="string"?o.teamRemoteSubfolder.replace(/^\/|\/$/g,""):"",l=o.teamRemoteApmFormat===!0,u=this.resolveRemotePath(n,s,c,l);if(!u){r.status(400).json({error:`Cannot resolve remote path for ${n}/${s}`});return}let p=await this.git("fetch","origin");if(p.code!==0){r.status(502).json({error:`Failed to fetch: ${p.stderr}`});return}let d=`origin/HEAD:${u}`,m=await this.git("show",d);if(m.code!==0){r.status(404).json({error:`Extension not found in remote: ${u}`});return}let f=m.stdout,g=i==="global"?this.claudeDir():vr.default.join(process.env.CLAUDE_PROJECT_ROOT||process.cwd(),".claude"),v=this.resolveLocalPath(n,s,g);if(!a&&ft.existsSync(v)){let b=ft.readFileSync(v,"utf-8");if(b!==f){let x={ok:!1,error:"conflict",conflict:{localContent:b,remoteContent:f}};r.status(409).json(x);return}}let h=vr.default.dirname(v);ft.existsSync(h)||ft.mkdirSync(h,{recursive:!0}),ft.writeFileSync(v,f,"utf-8");let y={ok:!0};r.json(y)}async handlePush(e,r){let{category:n,name:s,scope:i}=e.body;if(!n||!s||!i){r.status(400).json({error:"Missing category, name, or scope"});return}let a=this.readPilotConfig(),o=typeof a.teamRemoteSubfolder=="string"?a.teamRemoteSubfolder.replace(/^\/|\/$/g,""):"",c=a.teamRemoteApmFormat===!0,l=this.claudeDir(),u=i==="global"?l:vr.default.join(process.env.CLAUDE_PROJECT_ROOT||process.cwd(),".claude"),p=this.resolveLocalPath(n,s,u);if(!ft.existsSync(p)){r.status(404).json({error:`Extension not found locally: ${n}/${s}`});return}let d=ft.readFileSync(p,"utf-8"),m=this.resolveRemotePath(n,s,o,c);if(!m){r.status(400).json({error:`Cannot resolve remote path for ${n}/${s}`});return}try{await this.git("fetch","origin");let f=c?this.ensureApmFrontmatter(d,n,s):d,g=vr.default.join(l,`.pilot-push-tmp-${Date.now()}.md`);ft.writeFileSync(g,f,"utf-8");try{let x=await this.git("hash-object","-w",g);if(x.code!==0){r.status(500).json({error:`Failed to hash content: ${x.stderr}`});return}let w=x.stdout.trim(),S=await this.git("update-index","--add","--cacheinfo",`100644,${w},${m}`);if(S.code!==0){r.status(500).json({error:`Failed to stage: ${S.stderr}`});return}}finally{try{ft.unlinkSync(g)}catch{}}c&&await this.stageApmManifest(l,o);let v=await this.git("commit","-m",`Update ${n}/${s}`);if(v.code!==0){r.status(500).json({error:`Failed to commit: ${v.stderr}`});return}let h=await this.getDefaultBranch(),y=await this.git("push","origin",`HEAD:${h}`);if(y.code!==0){await this.git("reset","HEAD~1"),r.status(502).json({error:`Push failed (try pulling first): ${y.stderr}`});return}let b={ok:!0};r.json(b)}catch(f){r.headersSent||r.status(500).json({error:`Push failed: ${f.message}`})}}async handleMigrate(e,r){let{toApm:n}=e.body,s=this.readPilotConfig(),i=typeof s.teamRemoteSubfolder=="string"?s.teamRemoteSubfolder.replace(/^\/|\/$/g,""):"",a=this.claudeDir(),o=await this.git("fetch","origin");if(o.code!==0){r.status(502).json({error:`Failed to fetch: ${o.stderr}`});return}if(await this.isEmptyRepo()){this.writePilotConfig({teamRemoteApmFormat:n||void 0});let m=vr.default.join(a,".gitignore");ft.writeFileSync(m,n?J1:K1,"utf-8"),r.json({ok:!0,migrated:0});return}await this.git("read-tree","origin/HEAD");let c=await this.git("ls-tree","-r","--name-only","origin/HEAD");if(c.code!==0){r.status(502).json({error:`Failed to list remote: ${c.stderr}`});return}let l=!n,u=this.parseRemoteTree(c.stdout,i,l);if(u.length===0){this.writePilotConfig({teamRemoteApmFormat:n||void 0}),r.json({ok:!0,migrated:0});return}let p=i?`${i}/`:"",d=0;try{for(let R of u){let O=`${p}${R.filePath}`,C=n?this.resolveRemotePath(R.category,R.name,i,!0):this.resolveRemotePath(R.category,R.name,i,!1);if(!C||O===C)continue;let U=await this.git("show",`origin/HEAD:${O}`);if(U.code!==0)continue;let q=U.stdout;n&&(q=this.ensureApmFrontmatter(q,R.category,R.name));let Z=vr.default.join(a,`.pilot-migrate-tmp-${Date.now()}.md`);ft.writeFileSync(Z,q,"utf-8");try{let se=await this.git("hash-object","-w",Z);if(se.code!==0)continue;let K=se.stdout.trim();await this.git("update-index","--add","--cacheinfo",`100644,${K},${C}`),await this.git("update-index","--remove",O),d++}finally{try{ft.unlinkSync(Z)}catch{}}}if(d===0){this.writePilotConfig({teamRemoteApmFormat:n||void 0}),r.json({ok:!0,migrated:0});return}if(n)await this.stageApmManifest(a,i);else{let R=p?`${p}apm.yml`:"apm.yml";await this.git("update-index","--remove",R)}let m=vr.default.join(a,".gitignore"),f=n?J1:K1;ft.writeFileSync(m,f,"utf-8");{let R=vr.default.join(a,`.pilot-gi-tmp-${Date.now()}`);ft.writeFileSync(R,f,"utf-8");try{let O=await this.git("hash-object","-w",R);O.code===0&&await this.git("update-index","--add","--cacheinfo",`100644,${O.stdout.trim()},.gitignore`)}finally{try{ft.unlinkSync(R)}catch{}}}let g=await this.git("write-tree");if(g.code!==0){r.status(500).json({error:`Failed to write tree: ${g.stderr}`});return}let v=g.stdout.trim(),h=await this.git("rev-parse","origin/HEAD"),y=h.code===0?h.stdout.trim():null,b=n?"native \u2192 APM":"APM \u2192 native",x=y?["commit-tree",v,"-p",y,"-m",`Migrate extensions: ${b}`]:["commit-tree",v,"-m",`Migrate extensions: ${b}`],w=await this.git(...x);if(w.code!==0){r.status(500).json({error:`Failed to commit migration: ${w.stderr}`});return}let S=w.stdout.trim();await this.git("update-ref","HEAD",S);let E=await this.getDefaultBranch(),k=await this.git("push","origin",`${S}:${E}`);if(k.code!==0){r.status(502).json({error:`Migration push failed: ${k.stderr}`});return}this.writePilotConfig({teamRemoteApmFormat:n||void 0}),r.json({ok:!0,migrated:d})}catch(m){r.headersSent||r.status(500).json({error:`Migration failed: ${m.message}`})}}async handleContent(e,r){let n=e.params.category,s=decodeURIComponent(e.params.name),i=this.readPilotConfig(),a=typeof i.teamRemoteSubfolder=="string"?i.teamRemoteSubfolder.replace(/^\/|\/$/g,""):"",o=i.teamRemoteApmFormat===!0,c=this.resolveRemotePath(n,s,a,o);if(!c){r.status(400).json({error:`Cannot resolve remote path for ${n}/${s}`});return}await this.git("fetch","origin");let l=await this.git("show",`origin/HEAD:${c}`);if(l.code!==0){r.status(404).json({error:`Extension not found in remote: ${c}`});return}let u={content:l.stdout,name:s};r.json(u)}parseRemoteTree(e,r,n=!1){let s=r?`${r}/`:"",i=[],a=new Set;for(let o of e.split(` +`)){let c=o.trim();if(!c)continue;let l=s?c.startsWith(s)?c.slice(s.length):null:c;if(!l)continue;let u=l.split("/");if(u.length<2)continue;let p=u[0],d=this.parseTreeEntry(u,p,l,n);if(d){let m=`${d.category}/${d.name}`;a.has(m)||(a.add(m),i.push(d))}}return i}parseTreeEntry(e,r,n,s){let i=this.tryParseEntry(e,r,n,s);return i||this.tryParseEntry(e,r,n,!s)}tryParseEntry(e,r,n,s){let a=(s?rTe:tTe)[r];return a?a==="skill"?e.length===3&&e[2]==="SKILL.md"?{name:e[1],category:a,filePath:n}:null:e.length!==2||!e[1].endsWith(".md")?null:{name:s?iTe(e[1]):e[1].replace(/\.md$/,""),category:a,filePath:n}:null}readPilotConfig(){try{return JSON.parse(ft.readFileSync(Nb,"utf-8"))}catch{return{}}}claudeDir(){return vr.default.join(process.env.HOME||"",".claude")}writePilotConfig(e){let r=this.readPilotConfig();for(let[i,a]of Object.entries(e))a==null?delete r[i]:r[i]=a;let n=vr.default.dirname(Nb);ft.mkdirSync(n,{recursive:!0});let s=Nb+".tmp";ft.writeFileSync(s,JSON.stringify(r,null,2),"utf-8"),ft.renameSync(s,Nb)}resolveRemotePath(e,r,n,s=!1){let i=n?`${n}/`:"";if(s){let o=nTe(e);return e==="skill"?`${i}${o}/${r}/SKILL.md`:`${i}${o}/${sTe(r,e)}`}let a=this.categoryToDirName(e);return e==="skill"?`${i}${a}/${r}/SKILL.md`:`${i}${a}/${r}.md`}resolveLocalPath(e,r,n){let s=this.categoryToDirName(e);return e==="skill"?vr.default.join(n,s,r,"SKILL.md"):vr.default.join(n,s,`${r}.md`)}categoryToDirName(e){switch(e){case"rule":return"rules";case"command":return"commands";case"agent":return"agents";case"skill":return"skills";default:return e}}ensureApmFrontmatter(e,r,n){if(r==="skill")return e;let s=r==="rule"?"applyTo":"description",i=r==="rule"?'applyTo: "**"':`description: "${n.replace(/-/g," ")}"`,a=e.trimStart(),o=a.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(o){if(o[1].includes(`${s}:`))return e;let l=e.length-a.length;return`${e.slice(0,l)}--- ${i} ${o[1]} ---${a.slice(o[0].length)}`}return`--- @@ -1925,7 +1925,7 @@ ${i} --- ${e}`}async stageApmManifest(e,r){let n=r?`${r}/`:"",s=this.readPilotConfig(),o=[`name: ${(typeof s.teamRemote=="string"?s.teamRemote:"").replace(/\.git$/,"").split("/").pop()||"team-extensions"}`,'version: "1.0.0"','description: "Shared team extensions \u2014 managed by Pilot Shell"',""].join(` -`),c=vr.default.join(e,`.pilot-apm-yml-tmp-${Date.now()}`);ft.writeFileSync(c,o,"utf-8");try{let l=await this.git("hash-object","-w",c);if(l.code!==0)return;let u=l.stdout.trim(),p=n?`${n}apm.yml`:"apm.yml";await this.git("update-index","--add","--cacheinfo",`100644,${u},${p}`)}finally{try{ft.unlinkSync(c)}catch{}}}async isEmptyRepo(){return(await this.git("rev-parse","--verify","origin/HEAD")).code!==0}async getDefaultBranch(){let e=await this.git("symbolic-ref","refs/remotes/origin/HEAD");if(e.code===0){let n=e.stdout.trim().replace("refs/remotes/origin/","");if(n)return n}return"main"}async git(...e){let r=this.claudeDir();try{let n=Bun.spawn(["git",...e],{cwd:r,stdout:"pipe",stderr:"pipe"}),[s,i,a]=await Promise.all([n.exited,new Response(n.stdout).text(),new Response(n.stderr).text()]);return{code:s,stdout:i,stderr:a}}catch(n){return _.error("HTTP",`git ${e[0]} failed`,{},n),{code:1,stdout:"",stderr:n.message}}}};var Ws=Q(require("fs"),1),tP=Q(require("os"),1),Dm=Q(require("path"),1);re();var rP=["sonnet","opus"],dTe=/^claude-[a-z0-9][a-z0-9.\-]*$/;function Nm(t,e=!0){if(typeof t!="string"||t.length===0)return!1;let r=t.endsWith("[1m]");if(r&&!e)return!1;let n=r?t.slice(0,-4):t;return n?rP.includes(n)?!0:dTe.test(n):!1}var na={model:"opus",extendedContext:!0,extendedContextOverrides:{},skills:{spec:"opus","spec-plan":"opus","spec-implement":"sonnet","spec-verify":"sonnet","setup-rules":"opus","create-skill":"opus",prd:"opus"},agents:{"spec-review":"sonnet","changes-review":"sonnet"},reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{branchIsolation:!0,askQuestionsDuringPlanning:!0,planApproval:!0},securityScanner:{credentialScanner:!0}},Lb=class t extends Te{configPath;constructor(e){super(),this.configPath=e??Dm.join(tP.homedir(),".pilot","config.json")}setupRoutes(e){e.get("/api/settings",this.wrapHandler(this.handleGet.bind(this))),e.put("/api/settings",this.wrapHandler(this.handlePut.bind(this)))}readConfig(){try{let e=Ws.readFileSync(this.configPath,"utf-8");return JSON.parse(e)}catch{return{}}}static stripLegacy1m(e){return e.replace("[1m]","")}static stripAliasSuffix(e){if(typeof e!="string"||!e.endsWith("[1m]"))return e;let r=e.slice(0,-4);return rP.includes(r)?r:e}static normalizeModel(e,r=!0){if(typeof e!="string")return null;if(Nm(e,r))return e.startsWith("claude-")?e:e.endsWith("[1m]")?e.slice(0,-4):e;let n=e;if(!r&&n.endsWith("[1m]"))return null;let s=n.includes("[1m]")?t.stripLegacy1m(n):n;return Nm(s,r)?s:null}mergeWithDefaults(e){let r=t.normalizeModel(e.model)??na.model,n=typeof e.extendedContext=="boolean"?e.extendedContext:na.extendedContext,s=e.skills??e.commands,i={...na.skills};if(s&&typeof s=="object"&&!Array.isArray(s))for(let[k,E]of Object.entries(s)){let R=t.normalizeModel(E);R!==null&&(i[k]=R)}let a=e.agents,o={...na.agents};if(a&&typeof a=="object"&&!Array.isArray(a))for(let[k,E]of Object.entries(a)){let R=t.normalizeModel(E,!1);R!==null&&(o[k]=R)}let c=e.extendedContextOverrides,l={};if(c&&typeof c=="object"&&!Array.isArray(c))for(let[k,E]of Object.entries(c))typeof E=="boolean"&&(l[k]=E);let u=e.reviewerAgents,p={...na.reviewerAgents};if(u&&typeof u=="object"&&!Array.isArray(u)){let k=u;typeof k.specReview=="boolean"&&(p.specReview=k.specReview),typeof k.changesReview=="boolean"&&(p.changesReview=k.changesReview)}let d=e.codexReviewers,m={...na.codexReviewers};if(d&&typeof d=="object"&&!Array.isArray(d)){let k=d;typeof k.specReview=="boolean"&&(m.specReview=k.specReview),typeof k.changesReview=="boolean"&&(m.changesReview=k.changesReview)}let f=Dm.join(tP.homedir(),".claude","plugins","cache","openai-codex"),g=!1;try{g=Ws.existsSync(f)}catch{}let v=e.specWorkflow,h={...na.specWorkflow};if(v&&typeof v=="object"&&!Array.isArray(v)){let k=v;typeof k.branchIsolation=="boolean"?h.branchIsolation=k.branchIsolation:typeof k.worktreeSupport=="boolean"&&(console.warn("[settings] legacy worktreeSupport key read; mapped to branchIsolation"),h.branchIsolation=k.worktreeSupport),typeof k.askQuestionsDuringPlanning=="boolean"&&(h.askQuestionsDuringPlanning=k.askQuestionsDuringPlanning),typeof k.planApproval=="boolean"&&(h.planApproval=k.planApproval)}let y=e.securityScanner,b={...na.securityScanner};if(y&&typeof y=="object"&&!Array.isArray(y)){let k=y;typeof k.credentialScanner=="boolean"&&(b.credentialScanner=k.credentialScanner)}let x={model:r,extendedContext:n,extendedContextOverrides:l,skills:i,agents:o,reviewerAgents:p,codexReviewers:m,codexAvailable:g,specWorkflow:h,securityScanner:b};typeof e.teamRemote=="string"&&(x.teamRemote=e.teamRemote),typeof e.teamRemoteSubfolder=="string"&&(x.teamRemoteSubfolder=e.teamRemoteSubfolder);let S=e.usage?.plan;if(S&&typeof S.kind=="string"&&["none","pro","max","custom"].includes(S.kind)){let k={kind:S.kind};typeof S.monthlyUsd=="number"&&(k.monthlyUsd=S.monthlyUsd),typeof S.resetDay=="number"&&(k.resetDay=S.resetDay),x.usage={plan:k}}return x}validateSettings(e){let r=(n,s)=>`Invalid model '${String(s)}' for ${n}; must be an alias (${rP.join(", ")}) or an explicit 'claude-\u2026' model ID`;if(e.model!==void 0&&!Nm(e.model))return r("main session",e.model);if(e.extendedContext!==void 0&&typeof e.extendedContext!="boolean")return"extendedContext must be a boolean";if(e.skills!==void 0){if(typeof e.skills!="object"||Array.isArray(e.skills))return"skills must be an object";for(let[n,s]of Object.entries(e.skills))if(!Nm(s))return r(`skill '${n}'`,s)}if(e.agents!==void 0){if(typeof e.agents!="object"||Array.isArray(e.agents))return"agents must be an object";for(let[n,s]of Object.entries(e.agents))if(!Nm(s,!1))return r(`agent '${n}'`,s)}if(e.extendedContextOverrides!==void 0){if(typeof e.extendedContextOverrides!="object"||e.extendedContextOverrides===null||Array.isArray(e.extendedContextOverrides))return"extendedContextOverrides must be an object";for(let[n,s]of Object.entries(e.extendedContextOverrides))if(typeof s!="boolean")return`extendedContextOverrides.${n} must be a boolean`}if(e.reviewerAgents!==void 0){if(typeof e.reviewerAgents!="object"||Array.isArray(e.reviewerAgents))return"reviewerAgents must be an object";for(let[n,s]of Object.entries(e.reviewerAgents))if(typeof s!="boolean")return`reviewerAgents.${n} must be a boolean`}if(e.codexReviewers!==void 0){if(typeof e.codexReviewers!="object"||Array.isArray(e.codexReviewers))return"codexReviewers must be an object";for(let[n,s]of Object.entries(e.codexReviewers))if(typeof s!="boolean")return`codexReviewers.${n} must be a boolean`}if(e.specWorkflow!==void 0){if(typeof e.specWorkflow!="object"||Array.isArray(e.specWorkflow))return"specWorkflow must be an object";for(let[n,s]of Object.entries(e.specWorkflow))if(typeof s!="boolean")return`specWorkflow.${n} must be a boolean`}if(e.securityScanner!==void 0){if(typeof e.securityScanner!="object"||Array.isArray(e.securityScanner))return"securityScanner must be an object";for(let[n,s]of Object.entries(e.securityScanner))if(typeof s!="boolean")return`securityScanner.${n} must be a boolean`}if(e.usage!==void 0){if(typeof e.usage!="object"||Array.isArray(e.usage)||e.usage===null)return"usage must be an object";let n=e.usage;if(n.plan!==void 0){if(typeof n.plan!="object"||Array.isArray(n.plan)||n.plan===null)return"usage.plan must be an object";let s=n.plan;if(s.kind!==void 0&&(typeof s.kind!="string"||!["none","pro","max","custom"].includes(s.kind)))return"usage.plan.kind must be one of: none, pro, max, custom";if(s.monthlyUsd!==void 0&&(typeof s.monthlyUsd!="number"||s.monthlyUsd<0||s.monthlyUsd>1e4))return"usage.plan.monthlyUsd must be a number between 0 and 10000";if(s.resetDay!==void 0&&(typeof s.resetDay!="number"||s.resetDay<1||s.resetDay>28))return"usage.plan.resetDay must be an integer between 1 and 28"}}return null}writeConfigAtomic(e){let r=Dm.dirname(this.configPath);Ws.mkdirSync(r,{recursive:!0});let n=this.configPath+".tmp";Ws.writeFileSync(n,JSON.stringify(e,null,2),"utf-8"),Ws.renameSync(n,this.configPath)}async handleGet(e,r){let n=this.readConfig(),s=this.mergeWithDefaults(n);r.json(s)}async handlePut(e,r){let n=e.body;if(n.specWorkflow!==void 0&&typeof n.specWorkflow=="object"&&!Array.isArray(n.specWorkflow)){let o=n.specWorkflow;"worktreeSupport"in o&&("branchIsolation"in o||(console.warn("[settings] legacy worktreeSupport key received in PUT; treating as branchIsolation"),o.branchIsolation=o.worktreeSupport),delete o.worktreeSupport)}let s=this.validateSettings(n);if(s){this.badRequest(r,s);return}let i=this.readConfig();if(n.model!==void 0&&(i.model=t.stripAliasSuffix(n.model)),n.extendedContext!==void 0&&(i.extendedContext=n.extendedContext),n.skills!==void 0){let o=i.skills??{},c={};for(let[l,u]of Object.entries(n.skills))c[l]=t.stripAliasSuffix(u);i.skills={...o,...c},delete i.commands}if(n.extendedContextOverrides!==void 0){let o=i.extendedContextOverrides??{};i.extendedContextOverrides={...o,...n.extendedContextOverrides}}if(n.agents!==void 0){let o=i.agents??{};i.agents={...o,...n.agents}}if(n.reviewerAgents!==void 0){let o=i.reviewerAgents??{};i.reviewerAgents={...o,...n.reviewerAgents}}if(n.codexReviewers!==void 0){let o=i.codexReviewers??{};i.codexReviewers={...o,...n.codexReviewers}}if(n.specWorkflow!==void 0){let c={...i.specWorkflow??{},...n.specWorkflow};delete c.worktreeSupport,i.specWorkflow=c}if(n.securityScanner!==void 0){let o=i.securityScanner??{};i.securityScanner={...o,...n.securityScanner}}if(n.teamRemote!==void 0&&(n.teamRemote===null?delete i.teamRemote:i.teamRemote=n.teamRemote),n.teamRemoteSubfolder!==void 0&&(n.teamRemoteSubfolder===null?delete i.teamRemoteSubfolder:i.teamRemoteSubfolder=n.teamRemoteSubfolder),n.usage!==void 0){let o=i.usage??{},c=n.usage,l={...o};if(c.plan!==void 0){let u=l.plan??{};l.plan={...u,...c.plan}}i.usage=l}try{this.writeConfigAtomic(i)}catch(o){_.error("HTTP","Failed to write settings config",{},o),r.status(500).json({error:"Failed to save settings"});return}let a=this.mergeWithDefaults(i);r.json(a)}};var sa=Q(require("fs"),1),qb=Q(require("path"),1);re();Or();var nP=41777,sP=1024,iP=65535,Ub=class extends Te{settingsPath;constructor(e){super(),this.settingsPath=e??qb.join(Ae.get("CLAUDE_PILOT_DATA_DIR"),"settings.json")}setupRoutes(e){e.get("/api/console-settings",this.wrapHandler(this.handleGet.bind(this))),e.put("/api/console-settings",this.wrapHandler(this.handlePut.bind(this)))}readSettings(){try{let e=sa.readFileSync(this.settingsPath,"utf-8"),r=JSON.parse(e);if(r&&typeof r=="object"&&!Array.isArray(r))return r}catch{}return{}}writeSettingsAtomic(e){let r=qb.dirname(this.settingsPath);sa.mkdirSync(r,{recursive:!0});let n=this.settingsPath+".tmp";sa.writeFileSync(n,JSON.stringify(e,null,2),"utf-8"),sa.renameSync(n,this.settingsPath)}resolveWorkerPort(e){let r=e.CLAUDE_PILOT_WORKER_PORT;if(typeof r=="string"&&r.trim()){let n=parseInt(r,10);if(Number.isInteger(n)&&n>=sP&&n<=iP)return n}return nP}async handleGet(e,r){let n=this.readSettings(),s={workerPort:this.resolveWorkerPort(n),defaultPort:nP};r.json(s)}async handlePut(e,r){let s=(e.body??{}).workerPort;if(typeof s!="number"||!Number.isInteger(s)){this.badRequest(r,"workerPort must be an integer");return}if(siP){this.badRequest(r,`workerPort must be between ${sP} and ${iP}`);return}let i=this.readSettings();i.CLAUDE_PILOT_WORKER_PORT=String(s);try{this.writeSettingsAtomic(i)}catch(o){_.error("HTTP","Failed to write console settings",{},o),r.status(500).json({error:"Failed to save console settings"});return}let a={workerPort:this.resolveWorkerPort(i),defaultPort:nP};r.json(a)}};var qe=require("child_process"),aa=require("fs"),ia=Q(require("path"),1);var Qe={...process.env,GIT_OPTIONAL_LOCKS:"0"},Fb=class extends Te{dbManager;constructor(e){super(),this.dbManager=e??null}getProjectRoot(e){let r=e.query.project;return hr(this.dbManager,r)}setupRoutes(e){e.get("/api/changes/files",this.handleGetFiles.bind(this)),e.get("/api/changes/diff/:file(*)",this.handleGetDiff.bind(this)),e.post("/api/changes/stage",this.handleStage.bind(this)),e.post("/api/changes/unstage",this.handleUnstage.bind(this)),e.get("/api/changes/branches",this.handleGetBranches.bind(this)),e.post("/api/changes/checkout",this.handleCheckout.bind(this)),e.post("/api/changes/branch/create",this.handleCreateBranch.bind(this)),e.delete("/api/changes/branch/:name(*)",this.handleDeleteBranch.bind(this)),e.post("/api/changes/commit",this.handleCommit.bind(this)),e.post("/api/changes/push",this.handlePush.bind(this)),e.post("/api/changes/pull",this.handlePull.bind(this)),e.post("/api/changes/fetch",this.handleFetch.bind(this)),e.get("/api/changes/stash",this.handleListStash.bind(this)),e.post("/api/changes/stash/save",this.handleStashSave.bind(this)),e.post("/api/changes/stash/pop",this.handleStashPop.bind(this)),e.post("/api/changes/stash/apply",this.handleStashApply.bind(this)),e.delete("/api/changes/stash/:index",this.handleStashDrop.bind(this)),e.get("/api/changes/ai-available",this.handleAiAvailable.bind(this)),e.post("/api/changes/generate-message",this.handleGenerateMessage.bind(this))}handleGetFiles=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),s=this.detectWorktreeContext(n),i=[];if(s.active&&s.branch&&s.baseBranch){let l=this.getChangedFilesInRange(n,`${s.baseBranch}...${s.branch}`);i.push(...l)}let a=this.getChangedFilesFromGit(n,["--cached"]);i.push(...a);let o=this.getChangedFilesFromGit(n,[]);i.push(...o);let c=this.getUntrackedFiles(n);i.push(...c),r.json({files:i,worktree:s})});handleGetDiff=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),s=e.params.file,i=e.query.staged==="true";if(!s||!this.isValidFilePath(s)){this.badRequest(r,"Invalid or missing file path");return}let a=this.detectWorktreeContext(n);try{let o="",c="";if(a.active&&a.branch&&a.baseBranch)o=this.getDecryptedContent(n,a.baseBranch,s,["diff","-U99999",`${a.baseBranch}...${a.branch}`,"--",s]),c=this.gitShowFile(n,a.branch,s),this.hasBinaryContent(c)&&(c=this.reconstructNewFromDiff(n,["diff","-U99999",`${a.baseBranch}...${a.branch}`,"--",s]));else if(i){let u=this.runGitDiff(n,["diff","--cached","-U99999","--",s]);if(o=this.reconstructOldFromDiff(u),c=this.reconstructNewFromDiff(n,["diff","--cached","-U99999","--",s]),!u.trim()){o="";let p=ia.default.join(n,s);c=(0,aa.existsSync)(p)?(0,aa.readFileSync)(p,"utf-8"):""}}else{let u=this.runGitDiff(n,["diff","-U99999","HEAD","--",s]);u.trim()?o=this.reconstructOldFromDiff(u):o="";let p=ia.default.join(n,s);c=(0,aa.existsSync)(p)?(0,aa.readFileSync)(p,"utf-8"):""}if(this.hasBinaryContent(c)||this.hasBinaryContent(o)){r.json({binary:!0,path:s});return}o=this.normalizeLineEndings(o),c=this.normalizeLineEndings(c),r.json({path:s,oldContent:o,newContent:c,staged:i})}catch(o){r.status(500).json({error:o.message})}});handleStage=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{files:s}=e.body;if(!s||!Array.isArray(s)||s.length===0){this.badRequest(r,"Missing or empty files array");return}let i=s.filter(a=>!this.isValidFilePath(a));if(i.length>0){this.badRequest(r,`Invalid file paths: ${i.join(", ")}`);return}try{(0,qe.execFileSync)("git",["add","--",...s],{cwd:n,encoding:"utf-8",timeout:1e4,env:Qe}),r.json({success:!0,staged:s})}catch(a){r.status(500).json({error:a.message})}});handleUnstage=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{files:s}=e.body;if(!s||!Array.isArray(s)||s.length===0){this.badRequest(r,"Missing or empty files array");return}let i=s.filter(a=>!this.isValidFilePath(a));if(i.length>0){this.badRequest(r,`Invalid file paths: ${i.join(", ")}`);return}try{(0,qe.execFileSync)("git",["restore","--staged","--",...s],{cwd:n,encoding:"utf-8",timeout:1e4,env:Qe}),r.json({success:!0,unstaged:s})}catch(a){r.status(500).json({error:a.message})}});handleGetBranches=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e);try{let s=(0,qe.execFileSync)("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).trim(),a=(0,qe.execFileSync)("git",["branch","--format=%(refname:short)"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).split(` +`),c=vr.default.join(e,`.pilot-apm-yml-tmp-${Date.now()}`);ft.writeFileSync(c,o,"utf-8");try{let l=await this.git("hash-object","-w",c);if(l.code!==0)return;let u=l.stdout.trim(),p=n?`${n}apm.yml`:"apm.yml";await this.git("update-index","--add","--cacheinfo",`100644,${u},${p}`)}finally{try{ft.unlinkSync(c)}catch{}}}async isEmptyRepo(){return(await this.git("rev-parse","--verify","origin/HEAD")).code!==0}async getDefaultBranch(){let e=await this.git("symbolic-ref","refs/remotes/origin/HEAD");if(e.code===0){let n=e.stdout.trim().replace("refs/remotes/origin/","");if(n)return n}return"main"}async git(...e){let r=this.claudeDir();try{let n=Bun.spawn(["git",...e],{cwd:r,stdout:"pipe",stderr:"pipe"}),[s,i,a]=await Promise.all([n.exited,new Response(n.stdout).text(),new Response(n.stderr).text()]);return{code:s,stdout:i,stderr:a}}catch(n){return _.error("HTTP",`git ${e[0]} failed`,{},n),{code:1,stdout:"",stderr:n.message}}}};var Ws=Q(require("fs"),1),Y1=Q(require("os"),1),jm=Q(require("path"),1);re();var Q1={reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{branchIsolation:!0,askQuestionsDuringPlanning:!0,planApproval:!0,modelSwitch:!0}},Mb=class extends Te{configPath;constructor(e){super(),this.configPath=e??jm.join(Y1.homedir(),".pilot","config.json")}setupRoutes(e){e.get("/api/settings",this.wrapHandler(this.handleGet.bind(this))),e.put("/api/settings",this.wrapHandler(this.handlePut.bind(this)))}readConfig(){try{let e=Ws.readFileSync(this.configPath,"utf-8");return JSON.parse(e)}catch{return{}}}mergeWithDefaults(e){let r=e.reviewerAgents,n={...Q1.reviewerAgents};if(r&&typeof r=="object"&&!Array.isArray(r)){let m=r;typeof m.specReview=="boolean"&&(n.specReview=m.specReview),typeof m.changesReview=="boolean"&&(n.changesReview=m.changesReview)}let s=e.codexReviewers,i={...Q1.codexReviewers};if(s&&typeof s=="object"&&!Array.isArray(s)){let m=s;typeof m.specReview=="boolean"&&(i.specReview=m.specReview),typeof m.changesReview=="boolean"&&(i.changesReview=m.changesReview)}let a=jm.join(Y1.homedir(),".claude","plugins","cache","openai-codex"),o=!1;try{o=Ws.existsSync(a)}catch{}let c=e.specWorkflow,l={...Q1.specWorkflow};if(c&&typeof c=="object"&&!Array.isArray(c)){let m=c;typeof m.branchIsolation=="boolean"?l.branchIsolation=m.branchIsolation:typeof m.worktreeSupport=="boolean"&&(l.branchIsolation=m.worktreeSupport),typeof m.askQuestionsDuringPlanning=="boolean"&&(l.askQuestionsDuringPlanning=m.askQuestionsDuringPlanning),typeof m.planApproval=="boolean"&&(l.planApproval=m.planApproval),typeof m.modelSwitch=="boolean"&&(l.modelSwitch=m.modelSwitch)}let u={reviewerAgents:n,codexReviewers:i,codexAvailable:o,specWorkflow:l};typeof e.teamRemote=="string"&&(u.teamRemote=e.teamRemote),typeof e.teamRemoteSubfolder=="string"&&(u.teamRemoteSubfolder=e.teamRemoteSubfolder);let d=e.usage?.plan;if(d&&typeof d.kind=="string"&&["none","pro","max","custom"].includes(d.kind)){let m={kind:d.kind};typeof d.monthlyUsd=="number"&&(m.monthlyUsd=d.monthlyUsd),typeof d.resetDay=="number"&&(m.resetDay=d.resetDay),u.usage={plan:m}}return u}validateSettings(e){let r=new Set(["reviewerAgents","codexReviewers","specWorkflow","teamRemote","teamRemoteSubfolder","usage"]);for(let n of Object.keys(e))if(!r.has(n))return`Unknown field '${n}' \u2014 Pilot Console v12+ no longer accepts this field. Refresh the page and try again.`;if(e.reviewerAgents!==void 0){if(typeof e.reviewerAgents!="object"||Array.isArray(e.reviewerAgents))return"reviewerAgents must be an object";for(let[n,s]of Object.entries(e.reviewerAgents))if(typeof s!="boolean")return`reviewerAgents.${n} must be a boolean`}if(e.codexReviewers!==void 0){if(typeof e.codexReviewers!="object"||Array.isArray(e.codexReviewers))return"codexReviewers must be an object";for(let[n,s]of Object.entries(e.codexReviewers))if(typeof s!="boolean")return`codexReviewers.${n} must be a boolean`}if(e.specWorkflow!==void 0){if(typeof e.specWorkflow!="object"||Array.isArray(e.specWorkflow))return"specWorkflow must be an object";for(let[n,s]of Object.entries(e.specWorkflow))if(typeof s!="boolean")return`specWorkflow.${n} must be a boolean`}if(e.usage!==void 0){if(typeof e.usage!="object"||Array.isArray(e.usage)||e.usage===null)return"usage must be an object";let n=e.usage;if(n.plan!==void 0){if(typeof n.plan!="object"||Array.isArray(n.plan)||n.plan===null)return"usage.plan must be an object";let s=n.plan;if(s.kind!==void 0&&(typeof s.kind!="string"||!["none","pro","max","custom"].includes(s.kind)))return"usage.plan.kind must be one of: none, pro, max, custom";if(s.monthlyUsd!==void 0&&(typeof s.monthlyUsd!="number"||s.monthlyUsd<0||s.monthlyUsd>1e4))return"usage.plan.monthlyUsd must be a number between 0 and 10000";if(s.resetDay!==void 0&&(typeof s.resetDay!="number"||s.resetDay<1||s.resetDay>28))return"usage.plan.resetDay must be an integer between 1 and 28"}}return null}writeConfigAtomic(e){let r=jm.dirname(this.configPath);Ws.mkdirSync(r,{recursive:!0});let n=this.configPath+".tmp";Ws.writeFileSync(n,JSON.stringify(e,null,2),"utf-8"),Ws.renameSync(n,this.configPath)}async handleGet(e,r){let n=this.readConfig(),s=this.mergeWithDefaults(n);r.json(s)}async handlePut(e,r){let n=e.body;if(n.specWorkflow!==void 0&&typeof n.specWorkflow=="object"&&!Array.isArray(n.specWorkflow)){let o=n.specWorkflow;"worktreeSupport"in o&&("branchIsolation"in o||(o.branchIsolation=o.worktreeSupport),delete o.worktreeSupport)}let s=this.validateSettings(n);if(s){this.badRequest(r,s);return}let i=this.readConfig();if(n.reviewerAgents!==void 0){let o=i.reviewerAgents??{};i.reviewerAgents={...o,...n.reviewerAgents}}if(n.codexReviewers!==void 0){let o=i.codexReviewers??{};i.codexReviewers={...o,...n.codexReviewers}}if(n.specWorkflow!==void 0){let c={...i.specWorkflow??{},...n.specWorkflow};delete c.worktreeSupport,i.specWorkflow=c}if(n.teamRemote!==void 0&&(n.teamRemote===null?delete i.teamRemote:i.teamRemote=n.teamRemote),n.teamRemoteSubfolder!==void 0&&(n.teamRemoteSubfolder===null?delete i.teamRemoteSubfolder:i.teamRemoteSubfolder=n.teamRemoteSubfolder),n.usage!==void 0){let o=i.usage??{},c=n.usage,l={...o};if(c.plan!==void 0){let u=l.plan??{};l.plan={...u,...c.plan}}i.usage=l}try{this.writeConfigAtomic(i)}catch(o){_.error("HTTP","Failed to write settings config",{},o),r.status(500).json({error:"Failed to save settings"});return}let a=this.mergeWithDefaults(i);r.json(a)}};var na=Q(require("fs"),1),$b=Q(require("path"),1);re();Or();var X1=41777,eP=1024,tP=65535,zb=class extends Te{settingsPath;constructor(e){super(),this.settingsPath=e??$b.join(Ae.get("CLAUDE_PILOT_DATA_DIR"),"settings.json")}setupRoutes(e){e.get("/api/console-settings",this.wrapHandler(this.handleGet.bind(this))),e.put("/api/console-settings",this.wrapHandler(this.handlePut.bind(this)))}readSettings(){try{let e=na.readFileSync(this.settingsPath,"utf-8"),r=JSON.parse(e);if(r&&typeof r=="object"&&!Array.isArray(r))return r}catch{}return{}}writeSettingsAtomic(e){let r=$b.dirname(this.settingsPath);na.mkdirSync(r,{recursive:!0});let n=this.settingsPath+".tmp";na.writeFileSync(n,JSON.stringify(e,null,2),"utf-8"),na.renameSync(n,this.settingsPath)}resolveWorkerPort(e){let r=e.CLAUDE_PILOT_WORKER_PORT;if(typeof r=="string"&&r.trim()){let n=parseInt(r,10);if(Number.isInteger(n)&&n>=eP&&n<=tP)return n}return X1}async handleGet(e,r){let n=this.readSettings(),s={workerPort:this.resolveWorkerPort(n),defaultPort:X1};r.json(s)}async handlePut(e,r){let s=(e.body??{}).workerPort;if(typeof s!="number"||!Number.isInteger(s)){this.badRequest(r,"workerPort must be an integer");return}if(stP){this.badRequest(r,`workerPort must be between ${eP} and ${tP}`);return}let i=this.readSettings();i.CLAUDE_PILOT_WORKER_PORT=String(s);try{this.writeSettingsAtomic(i)}catch(o){_.error("HTTP","Failed to write console settings",{},o),r.status(500).json({error:"Failed to save console settings"});return}let a={workerPort:this.resolveWorkerPort(i),defaultPort:X1};r.json(a)}};var qe=require("child_process"),ia=require("fs"),sa=Q(require("path"),1);var Qe={...process.env,GIT_OPTIONAL_LOCKS:"0"},Lb=class extends Te{dbManager;constructor(e){super(),this.dbManager=e??null}getProjectRoot(e){let r=e.query.project;return hr(this.dbManager,r)}setupRoutes(e){e.get("/api/changes/files",this.handleGetFiles.bind(this)),e.get("/api/changes/diff/:file(*)",this.handleGetDiff.bind(this)),e.post("/api/changes/stage",this.handleStage.bind(this)),e.post("/api/changes/unstage",this.handleUnstage.bind(this)),e.get("/api/changes/branches",this.handleGetBranches.bind(this)),e.post("/api/changes/checkout",this.handleCheckout.bind(this)),e.post("/api/changes/branch/create",this.handleCreateBranch.bind(this)),e.delete("/api/changes/branch/:name(*)",this.handleDeleteBranch.bind(this)),e.post("/api/changes/commit",this.handleCommit.bind(this)),e.post("/api/changes/push",this.handlePush.bind(this)),e.post("/api/changes/pull",this.handlePull.bind(this)),e.post("/api/changes/fetch",this.handleFetch.bind(this)),e.get("/api/changes/stash",this.handleListStash.bind(this)),e.post("/api/changes/stash/save",this.handleStashSave.bind(this)),e.post("/api/changes/stash/pop",this.handleStashPop.bind(this)),e.post("/api/changes/stash/apply",this.handleStashApply.bind(this)),e.delete("/api/changes/stash/:index",this.handleStashDrop.bind(this)),e.get("/api/changes/ai-available",this.handleAiAvailable.bind(this)),e.post("/api/changes/generate-message",this.handleGenerateMessage.bind(this))}handleGetFiles=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),s=this.detectWorktreeContext(n),i=[];if(s.active&&s.branch&&s.baseBranch){let l=this.getChangedFilesInRange(n,`${s.baseBranch}...${s.branch}`);i.push(...l)}let a=this.getChangedFilesFromGit(n,["--cached"]);i.push(...a);let o=this.getChangedFilesFromGit(n,[]);i.push(...o);let c=this.getUntrackedFiles(n);i.push(...c),r.json({files:i,worktree:s})});handleGetDiff=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),s=e.params.file,i=e.query.staged==="true";if(!s||!this.isValidFilePath(s)){this.badRequest(r,"Invalid or missing file path");return}let a=this.detectWorktreeContext(n);try{let o="",c="";if(a.active&&a.branch&&a.baseBranch)o=this.getDecryptedContent(n,a.baseBranch,s,["diff","-U99999",`${a.baseBranch}...${a.branch}`,"--",s]),c=this.gitShowFile(n,a.branch,s),this.hasBinaryContent(c)&&(c=this.reconstructNewFromDiff(n,["diff","-U99999",`${a.baseBranch}...${a.branch}`,"--",s]));else if(i){let u=this.runGitDiff(n,["diff","--cached","-U99999","--",s]);if(o=this.reconstructOldFromDiff(u),c=this.reconstructNewFromDiff(n,["diff","--cached","-U99999","--",s]),!u.trim()){o="";let p=sa.default.join(n,s);c=(0,ia.existsSync)(p)?(0,ia.readFileSync)(p,"utf-8"):""}}else{let u=this.runGitDiff(n,["diff","-U99999","HEAD","--",s]);u.trim()?o=this.reconstructOldFromDiff(u):o="";let p=sa.default.join(n,s);c=(0,ia.existsSync)(p)?(0,ia.readFileSync)(p,"utf-8"):""}if(this.hasBinaryContent(c)||this.hasBinaryContent(o)){r.json({binary:!0,path:s});return}o=this.normalizeLineEndings(o),c=this.normalizeLineEndings(c),r.json({path:s,oldContent:o,newContent:c,staged:i})}catch(o){r.status(500).json({error:o.message})}});handleStage=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{files:s}=e.body;if(!s||!Array.isArray(s)||s.length===0){this.badRequest(r,"Missing or empty files array");return}let i=s.filter(a=>!this.isValidFilePath(a));if(i.length>0){this.badRequest(r,`Invalid file paths: ${i.join(", ")}`);return}try{(0,qe.execFileSync)("git",["add","--",...s],{cwd:n,encoding:"utf-8",timeout:1e4,env:Qe}),r.json({success:!0,staged:s})}catch(a){r.status(500).json({error:a.message})}});handleUnstage=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{files:s}=e.body;if(!s||!Array.isArray(s)||s.length===0){this.badRequest(r,"Missing or empty files array");return}let i=s.filter(a=>!this.isValidFilePath(a));if(i.length>0){this.badRequest(r,`Invalid file paths: ${i.join(", ")}`);return}try{(0,qe.execFileSync)("git",["restore","--staged","--",...s],{cwd:n,encoding:"utf-8",timeout:1e4,env:Qe}),r.json({success:!0,unstaged:s})}catch(a){r.status(500).json({error:a.message})}});handleGetBranches=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e);try{let s=(0,qe.execFileSync)("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).trim(),a=(0,qe.execFileSync)("git",["branch","--format=%(refname:short)"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).split(` `).map(p=>p.trim()).filter(Boolean).sort((p,d)=>p===s?-1:d===s?1:p.localeCompare(d)),o=[];try{o=(0,qe.execFileSync)("git",["branch","-r","--format=%(refname:short)"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).split(` `).map(d=>d.trim()).filter(d=>d&&!d.endsWith("/HEAD")).sort()}catch{}let c=null,l=0,u=0;try{c=(0,qe.execFileSync)("git",["rev-parse","--abbrev-ref",`${s}@{upstream}`],{cwd:n,encoding:"utf-8",timeout:2e3,env:Qe}).trim();let p=(0,qe.execFileSync)("git",["rev-list","--left-right","--count",`${s}...${c}`],{cwd:n,encoding:"utf-8",timeout:2e3,env:Qe}).trim(),[d,m]=p.split(" ").map(Number);l=d||0,u=m||0}catch{}r.json({current:s,local:a,remote:o,upstream:c,ahead:l,behind:u})}catch(s){r.status(500).json({error:s.message})}});handleCheckout=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{branch:s}=e.body;if(!s||typeof s!="string"||!s.trim()){this.badRequest(r,"Missing or empty branch name");return}if(!this.isValidBranchName(s)){this.badRequest(r,"Invalid branch name");return}try{(0,qe.execFileSync)("git",["checkout",s],{cwd:n,encoding:"utf-8",timeout:15e3,env:Qe}),r.json({success:!0,branch:s})}catch(i){r.status(500).json({error:i.message})}});handleCommit=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{title:s,body:i}=e.body;if(!s||typeof s!="string"||!s.trim()){this.badRequest(r,"Missing or empty commit title");return}try{if(!(0,qe.execFileSync)("git",["diff","--cached","--name-only"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).trim()){this.badRequest(r,"No staged changes to commit");return}}catch(a){r.status(500).json({error:a.message});return}try{let a=i?.trim()?`${s.trim()} @@ -1943,9 +1943,9 @@ ${s}`;try{let a=(0,qe.execSync)(`echo ${JSON.stringify(i)} | claude -p --model c `)[0].match(/\[([^\]]+)\]/);o&&(n=o[1])}}catch{}return{active:!0,branch:r,baseBranch:n}}catch{return{active:!1,branch:null,baseBranch:null}}}getChangedFilesFromGit(e,r){try{let n=["diff",...r,"--name-status"],s=["diff",...r,"--numstat"],i=(0,qe.execFileSync)("git",n,{cwd:e,encoding:"utf-8",timeout:1e4,env:Qe}),a=(0,qe.execFileSync)("git",s,{cwd:e,encoding:"utf-8",timeout:1e4,env:Qe}),o=r.includes("--cached");return this.parseChangedFiles(i,a,o)}catch{return[]}}getUntrackedFiles(e){try{return(0,qe.execFileSync)("git",["ls-files","--others","--exclude-standard"],{cwd:e,encoding:"utf-8",timeout:1e4,env:Qe}).split(` `).map(n=>n.trim()).filter(Boolean).map(n=>({path:n,status:"?",staged:!1,additions:0,deletions:0}))}catch{return[]}}getChangedFilesInRange(e,r){try{let n=(0,qe.execFileSync)("git",["diff","--name-status",r],{cwd:e,encoding:"utf-8",timeout:1e4,env:Qe}),s=(0,qe.execFileSync)("git",["diff","--numstat",r],{cwd:e,encoding:"utf-8",timeout:1e4,env:Qe});return this.parseChangedFiles(n,s,!0)}catch{return[]}}parseChangedFiles(e,r,n){let s=new Map;for(let a of r.split(` `)){if(!a.trim())continue;let o=a.split(" ");if(o.length>=3){let c=o[0],l=o[1],u=o[o.length-1];s.set(u,{additions:c==="-"?0:parseInt(c,10)||0,deletions:l==="-"?0:parseInt(l,10)||0})}}let i=[];for(let a of e.split(` -`)){if(!a.trim())continue;let o=a.split(" ");if(o.length>=2){let c=o[0].charAt(0),l=o[o.length-1],u=s.get(l)||{additions:0,deletions:0};i.push({path:l,status:c,staged:n,...u})}}return i}isValidFilePath(e){return!(!e||e.trim()===""||ia.default.isAbsolute(e)||ia.default.normalize(e).startsWith(".."))}isValidBranchName(e){return!(!e||e.trim()===""||/\.\.|[\x00-\x1f\x7f~^:?*[\\]|@\{/.test(e)||e.startsWith("-")||e.startsWith(".")||e.endsWith(".lock"))}gitShowFile(e,r,n){try{return(0,qe.execFileSync)("git",["show",`${r}:${n}`],{cwd:e,encoding:"utf-8",timeout:5e3,env:Qe,maxBuffer:10*1024*1024})}catch{return""}}hasBinaryContent(e){return e.includes("\0")}normalizeLineEndings(e){return e.replace(/\r\n?/g,` -`)}getMainRepoRoot(e){try{let r=ia.default.join(e,".git");if((0,aa.existsSync)(r))try{let n=(0,aa.readFileSync)(r,"utf-8").trim();if(n.startsWith("gitdir:")){let s=n.replace("gitdir:","").trim(),i=ia.default.resolve(e,s,"..","..");return ia.default.dirname(i)}}catch{return e}return e}catch{return null}}};var pG=Q(require("path"),1);var Zs=require("node:fs"),oP=require("node:crypto"),yi=Q(require("node:path"),1),QZ=500;function YZ(t){return yi.default.join(yi.default.dirname(t),".annotations")}function cP(t,e){let r=yi.default.basename(e).replace(/\.md$/,".json");if(yi.default.isAbsolute(e))return yi.default.join(YZ(e),r);let n=yi.default.resolve(t,e);return yi.default.join(YZ(n),r)}function mTe(t){(0,Zs.mkdirSync)(yi.default.dirname(t),{recursive:!0})}function aP(t){return{planPath:t,planAnnotations:[],codeReviewAnnotations:[],updatedAt:Date.now(),dismissedFeedbackIds:[],decisions:[]}}function fTe(t){return t.map(e=>{if(e.feedbackStatus===void 0)return e;let{feedbackStatus:r,...n}=e;return n})}function Cn(t,e){let r=cP(t,e);if(!(0,Zs.existsSync)(r))return aP(e);try{let n=(0,Zs.readFileSync)(r,"utf-8"),s=JSON.parse(n);if(Array.isArray(s.planAnnotations))return{planPath:s.planPath??e,planAnnotations:fTe(s.planAnnotations),codeReviewAnnotations:Array.isArray(s.codeReviewAnnotations)?s.codeReviewAnnotations:[],updatedAt:s.updatedAt??Date.now(),shareId:typeof s.shareId=="string"?s.shareId:void 0,shareCreatedAt:typeof s.shareCreatedAt=="number"?s.shareCreatedAt:void 0,feedbackCursor:typeof s.feedbackCursor=="number"?s.feedbackCursor:void 0,dismissedFeedbackIds:Array.isArray(s.dismissedFeedbackIds)?s.dismissedFeedbackIds:[],decisions:Array.isArray(s.decisions)?s.decisions:[]};if(Array.isArray(s.annotations)){let i=s.annotations.map(a=>({id:a.id,blockId:a.blockId,originalText:a.originalText??"",text:a.text??"",createdAt:a.createdAt??Date.now()}));return{planPath:s.planPath??e,planAnnotations:i,codeReviewAnnotations:[],updatedAt:s.updatedAt??Date.now(),dismissedFeedbackIds:[],decisions:[]}}return aP(e)}catch{return aP(e)}}function oa(t,e){let r=cP(t,e.planPath);mTe(r),(0,Zs.writeFileSync)(r,JSON.stringify({...e,updatedAt:Date.now()},null,2),"utf-8")}function XZ(t,e,r){let n=Cn(t,e);oa(t,{...n,planPath:e,planAnnotations:r})}function eG(t,e){let r=Cn(t,e);oa(t,{...r,planAnnotations:[]})}function tG(t,e,r){let n=Cn(t,e);oa(t,{...n,planPath:e,codeReviewAnnotations:r})}function rG(t,e){let r=Cn(t,e);oa(t,{...r,codeReviewAnnotations:[]})}function nG(t,e,r,n){let s=Cn(t,e);oa(t,{...s,planPath:e,shareId:r,shareCreatedAt:n,feedbackCursor:s.feedbackCursor??0})}function Hb(t,e){let n={...Cn(t,e),planPath:e};delete n.shareId,delete n.shareCreatedAt,delete n.feedbackCursor,oa(t,n)}function lP(t,e,r,n,s){let i=Cn(t,e),a=new Set(i.planAnnotations.map(p=>p.id)),o=new Set(i.dismissedFeedbackIds??[]),c=[];for(let p of r){let d=p.id;if(d){if(a.has(d)||o.has(d))continue}else if(d=(0,oP.randomUUID)(),(a.has(d)||o.has(d))&&(d=(0,oP.randomUUID)(),a.has(d)||o.has(d)))continue;let m={...p,id:d};c.push(m),a.add(m.id)}let l=!1,u=i.decisions;return s&&!i.decisions.some(p=>p.id===s.id)&&(u=[...i.decisions,s],l=!0),oa(t,{...i,planPath:e,planAnnotations:[...i.planAnnotations,...c],decisions:u,feedbackCursor:n}),{added:c,decisionAdded:l}}function sG(t,e,r){let n=Cn(t,e),s=n.dismissedFeedbackIds??[],i=s.includes(r)?s:[...s,r],a=i.length>QZ?i.slice(i.length-QZ):i;oa(t,{...n,planPath:e,planAnnotations:n.planAnnotations.filter(o=>o.id!==r),dismissedFeedbackIds:a})}function iG(t,e){let r=cP(t,e);try{(0,Zs.unlinkSync)(r)}catch(n){if(n.code!=="ENOENT")throw n}}re();var wo=require("node:fs"),Ml=require("node:path");var hTe=256*1024;function gTe(t){try{let e=(0,wo.lstatSync)(t);return!(e.isSymbolicLink()||!e.isFile()||e.size>hTe)}catch{return!1}}function vTe(t,e){let r=(0,Ml.basename)(e,".json");return(0,Ml.join)(t,"..",`${r}.md`)}function aG(t){let e=[];for(let r of t){let n=(0,Ml.join)(r,"docs","plans",".annotations");if(!(0,wo.existsSync)(n))continue;let s;try{s=(0,wo.readdirSync)(n,{withFileTypes:!0})}catch{continue}for(let i of s){if(!i.isFile()||!i.name.endsWith(".json"))continue;let a=(0,Ml.join)(n,i.name);if(!gTe(a))continue;let o=vTe(n,i.name);if(!(0,wo.existsSync)(o))continue;let c;try{c=Cn(r,o)}catch{continue}c.shareId&&e.push({projectRoot:r,planPath:o,shareId:c.shareId,feedbackCursor:c.feedbackCursor??0})}}return e}var yTe=/^[A-Za-z0-9]{8}$/;var bTe=new Set(["approve","request_changes"]);function zl(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function So(t,e){return typeof t=="string"&&t.length<=e}function Mm(t){return typeof t=="number"&&Number.isFinite(t)}function xTe(t){return!zl(t)||!So(t.text,4e3)||t.text.length<1||!Mm(t.createdAt)||t.id!==void 0&&!So(t.id,64)||t.blockId!==void 0&&!So(t.blockId,256)||t.originalText!==void 0&&!So(t.originalText,4e3)?null:{id:typeof t.id=="string"?t.id:"",blockId:typeof t.blockId=="string"?t.blockId:"",originalText:typeof t.originalText=="string"?t.originalText:"",text:t.text,createdAt:t.createdAt}}function _Te(t){return!zl(t)||typeof t.verdict!="string"||!bTe.has(t.verdict)||t.comment!==void 0&&!So(t.comment,4e3)?null:{verdict:t.verdict,...typeof t.comment=="string"?{comment:t.comment}:{}}}function wTe(t){if(!zl(t)||!Mm(t.position)||t.position<0||!Mm(t.receivedAt)||!zl(t.payload))return null;let e=t.payload;if(!So(e.author,80)||e.author.length<1||!Mm(e.createdAt)||!Array.isArray(e.annotations)||e.annotations.length>50)return null;let r=[];for(let s of e.annotations){let i=xTe(s);if(!i)return null;r.push(i)}if(e.planPath!==void 0&&!So(e.planPath,1024))return null;let n=null;return e.decision!==void 0&&(n=_Te(e.decision),!n)||r.length===0&&!n?null:{position:t.position,receivedAt:t.receivedAt,payload:{author:e.author,annotations:r,createdAt:e.createdAt,...typeof e.planPath=="string"?{planPath:e.planPath}:{},...n?{decision:n}:{}}}}function oG(t){if(!zl(t))return{};let e={};for(let[r,n]of Object.entries(t)){if(!yTe.test(r)||!zl(n)||!Mm(n.cursor)||n.cursor<0||n.error!==void 0&&n.error!=="not_found"||!Array.isArray(n.entries)||n.entries.length>100)continue;let s=[];for(let a of n.entries){let o=wTe(a);o&&s.push(o)}let i={entries:s,cursor:n.cursor};n.error==="not_found"&&(i.error="not_found"),n.hasMore===!0&&(i.hasMore=!0),e[r]=i}return e}var cG=6e4,lG=15e3,STe=50,kTe=100,ETe=15e3,TTe="https://pilot-shell.com",RTe=50,Bb=null,Wb=null,PTe=null,Zb=null;function ITe(){return PTe??process.env.PILOT_SHELL_API_BASE??TTe}function CTe(t){let r=(t.split("/").pop()??t).replace(/\.md$/,"");return/^\d{4}-\d{2}-\d{2}-/.test(r)&&(r=r.slice(11)),r}function OTe(t,e){let r=[];for(let n=0;nn.abort(),ETe);try{let i=await t(`${e}/api/share/feedback/batch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:r}),signal:n.signal});if(!i.ok)return _.warn("FEEDBACK_POLL","batch request failed",{status:i.status}),null;let a=await i.json();return oG(a)}catch(i){return _.warn("FEEDBACK_POLL","batch request errored",{error:i.message}),null}finally{clearTimeout(s)}}function jTe(t,e,r,n){let s=n.payload.decision,i=s?.verdict==="approve"?"approved":"requested changes on",a=r>0?` with ${r} annotation${r===1?"":"s"}`:"";if(s){let o=`${t} ${i} ${e}${a}`,c=s.comment?.trim();if(s.verdict==="request_changes"&&c){let l=c.length>60?`${c.slice(0,60)}\u2026`:c;return`${o}: ${l}`}return o}return`${t} left ${r} annotation${r===1?"":"s"} on ${e}`}function NTe(t,e,r,n,s){let i=CTe(r.planPath),a=n.payload.author||"Anonymous",o=jTe(a,i,s,n),c=t.getSessionStore().db,l;try{l=kb(c,{type:"feedback_received",title:i,message:o,plan_path:r.planPath})}catch(u){_.warn("FEEDBACK_POLL","failed to insert notification",{error:u.message});return}e&&l&&e.broadcast({type:"new_notification",notification:l})}function DTe(t){let e=t.payload.author||"Anonymous";return t.payload.annotations.map(r=>({id:r.id,blockId:r.blockId,originalText:r.originalText,text:r.text,createdAt:r.createdAt,author:e,importedAt:t.receivedAt}))}function MTe(t,e){let r=e.payload.decision;if(r)return{verdict:r.verdict,comment:r.comment,author:e.payload.author||"Anonymous",receivedAt:e.receivedAt,id:`${t}-${e.position}`}}async function uP(t){let e=aG(t.projectRoots),r={polledShares:e.length,entriesReceived:0,notificationsEmitted:0,decisionsReceived:0,expired:0,hasMore:!1};if(e.length===0)return r;let n=ITe(),s=OTe(e,STe);for(let i of s){let a=i.map(c=>({id:c.shareId,cursor:c.feedbackCursor})),o=await ATe(t.fetch,n,a);if(o)for(let c of i){let l=o[c.shareId];if(!l)continue;if(l.cursor>c.feedbackCursor+kTe){_.warn("FEEDBACK_POLL","batch response cursor advanced beyond one page; ignoring",{shareId:c.shareId,previousCursor:c.feedbackCursor,responseCursor:l.cursor});continue}if(l.error==="not_found"){Hb(c.projectRoot,c.planPath),t.sseBroadcaster?.broadcast({type:"share_expired",plan_path:c.planPath,share_id:c.shareId}),r.expired+=1;continue}if(l.hasMore&&(r.hasMore=!0),l.entries.length===0){l.cursor>c.feedbackCursor&&(lP(c.projectRoot,c.planPath,[],l.cursor),c.feedbackCursor=l.cursor);continue}r.entriesReceived+=l.entries.length;let u=l.entries.length-1;for(let p=0;p0||h)&&(NTe(t.dbManager,t.sseBroadcaster,c,d,v.length),r.notificationsEmitted+=1,t.sseBroadcaster?.broadcast({type:"feedback_appended",plan_path:c.planPath,added:v.length,hasDecision:h}))}c.feedbackCursor=l.cursor}}return r}function uG(t){pP();let e=0,r=null,n=async()=>{try{let s=await uP({projectRoots:t.projectRoots(),fetch:t.fetch??fetch,dbManager:t.dbManager,sseBroadcaster:t.sseBroadcaster});s.polledShares>0&&_.info("FEEDBACK_POLL","tick complete",s),s.hasMore&&e{r=null,n()},0)):(s.hasMore&&_.warn("FEEDBACK_POLL","immediate-tick cap reached; deferring to next interval",{consecutiveImmediate:e}),e=0)}catch(s){_.error("FEEDBACK_POLL","tick failed",{},s),e=0}};Wb=setTimeout(()=>{n(),Bb=setInterval(()=>{n()},cG)},lG),Zb=()=>{r!==null&&(clearTimeout(r),r=null)},_.info("FEEDBACK_POLL","scheduler initialized",{startupDelayMs:lG,intervalMs:cG})}function pP(){Wb&&(clearTimeout(Wb),Wb=null),Bb&&(clearInterval(Bb),Bb=null),Zb&&(Zb(),Zb=null)}var Gb=class extends Te{dbManager;sseBroadcaster;constructor(e,r){super(),this.dbManager=e??null,this.sseBroadcaster=r??null}setupRoutes(e){e.get("/api/annotations",this.handleGet.bind(this)),e.post("/api/annotations/plan",this.handleSavePlan.bind(this)),e.post("/api/annotations/code-review",this.handleSaveCodeReview.bind(this)),e.post("/api/annotations/set-share-id",this.handleSetShareId.bind(this)),e.post("/api/annotations/clear-share-id",this.handleClearShareId.bind(this)),e.post("/api/annotations/dismiss-feedback",this.handleDismissFeedback.bind(this)),e.post("/api/annotations/poll-feedback",this.handlePollFeedback.bind(this)),e.delete("/api/annotations",this.handleDeleteAll.bind(this)),e.delete("/api/annotations/plan",this.handleClearPlan.bind(this)),e.delete("/api/annotations/code-review",this.handleClearCodeReview.bind(this))}resolvePlanPath(e,r,n){let s=pG.default.resolve(r,n);return Cm(r,s)?s:(this.badRequest(e,"Invalid plan path"),null)}requirePath(e,r){let n=e.query.project,s=e.query.path;if(!s)return this.badRequest(r,"Missing path query parameter"),null;let i=lZ(this.dbManager,n,s),a=this.resolvePlanPath(r,i,s);return a?{projectRoot:i,resolvedPlanPath:a}:null}handleGet=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=Cn(n.projectRoot,n.resolvedPlanPath);r.json({planAnnotations:s.planAnnotations,codeReviewAnnotations:s.codeReviewAnnotations,shareId:s.shareId,shareCreatedAt:s.shareCreatedAt,feedbackCursor:s.feedbackCursor,decisions:s.decisions})});handleSetShareId=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.shareId,i=e.body.shareCreatedAt;if(typeof s!="string"||!/^[A-Za-z0-9]{8}$/.test(s)){this.badRequest(r,"shareId must be an 8-character alphanumeric string");return}if(typeof i!="number"){this.badRequest(r,"shareCreatedAt must be a number");return}nG(n.projectRoot,n.resolvedPlanPath,s,i),r.json({ok:!0})});handleClearShareId=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(Hb(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))});handleDismissFeedback=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.id;if(typeof s!="string"||s.length===0){this.badRequest(r,"id must be a non-empty string");return}sG(n.projectRoot,n.resolvedPlanPath,s),r.json({ok:!0})});handlePollFeedback=this.wrapHandler(async(e,r)=>{let n=this.requirePath(e,r);if(!n)return;if(!Cn(n.projectRoot,n.resolvedPlanPath).shareId){r.status(409).json({error:"No share link for this spec \u2014 generate one first"});return}let i=await uP({projectRoots:[n.projectRoot],fetch,dbManager:this.dbManager??{getSessionStore:()=>({db:null})},sseBroadcaster:this.sseBroadcaster});r.json({ok:!0,polledShares:i.polledShares,entriesReceived:i.entriesReceived,notificationsEmitted:i.notificationsEmitted,expired:i.expired})});handleSavePlan=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.annotations;if(!Array.isArray(s)){this.badRequest(r,"annotations must be an array");return}XZ(n.projectRoot,n.resolvedPlanPath,s),r.json({ok:!0})});handleSaveCodeReview=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.annotations;if(!Array.isArray(s)){this.badRequest(r,"annotations must be an array");return}tG(n.projectRoot,n.resolvedPlanPath,s),r.json({ok:!0})});handleDeleteAll=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(iG(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))});handleClearPlan=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(eG(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))});handleClearCodeReview=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(rG(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))})};var Vb=class{dbManager;sessionManager;startTime;requestMetrics=[];providerRequests=0;providerTokens=0;providerErrors=0;providerName="unknown";METRICS_WINDOW_MS=300*1e3;constructor(e,r,n){this.dbManager=e,this.sessionManager=r,this.startTime=n,setInterval(()=>this.cleanupOldMetrics(),6e4)}recordRequest(e,r,n=!1){this.requestMetrics.push({endpoint:e,responseTimeMs:r,timestamp:Date.now(),error:n})}recordProviderUsage(e,r,n=!1){this.providerName=e,this.providerRequests++,this.providerTokens+=r,n&&this.providerErrors++}cleanupOldMetrics(){let e=Date.now()-this.METRICS_WINDOW_MS;this.requestMetrics=this.requestMetrics.filter(r=>r.timestamp>e)}async getMetrics(){let r=this.dbManager.getSessionStore().db,n=R=>{try{return r.prepare(`SELECT COUNT(*) as count FROM ${R}`).get().count}catch{return 0}},s=n("observations"),i=n("sdk_sessions"),a=n("session_summaries"),o=n("prompts"),{DATA_DIR:c}=await Promise.resolve().then(()=>(er(),FP)),l=await import("fs"),p=(await import("path")).join(c,"pilot-memory.db"),d=0;try{d=l.statSync(p).size}catch{}let m=process.memoryUsage(),f=this.requestMetrics.filter(R=>R.timestamp>Date.now()-this.METRICS_WINDOW_MS),g=f.length,v=f.filter(R=>R.error).length,h=g>0?f.reduce((R,O)=>R+O.responseTimeMs,0)/g:0,y={};for(let R of f)y[R.endpoint]=(y[R.endpoint]||0)+1;let b=Date.now()-6e4,x=0;try{x=r.prepare("SELECT COUNT(*) as count FROM observations WHERE created_at_epoch > ?").get(b).count}catch{}let w=f.filter(R=>R.timestamp>b).length,S=this.sessionManager.isAnySessionProcessing(),k=this.sessionManager.getTotalActiveWork(),E=this.sessionManager.getActiveSessionCount();return{uptime:Math.floor((Date.now()-this.startTime)/1e3),memoryUsage:{heapUsed:m.heapUsed,heapTotal:m.heapTotal,rss:m.rss,external:m.external},database:{observations:s,sessions:i,summaries:a,prompts:o,sizeBytes:d},processing:{activeSessions:E,queueDepth:k,isProcessing:S},requests:{total:g,byEndpoint:y,errors:v,avgResponseTimeMs:Math.round(h)},provider:{name:this.providerName,requestsTotal:this.providerRequests,tokensTotal:this.providerTokens,errorsTotal:this.providerErrors},rates:{observationsPerMinute:x,requestsPerMinute:w}}}async toPrometheus(){let e=await this.getMetrics(),r=[],n=(s,i,a,o="gauge",c={})=>{r.push(`# HELP claude_pilot_${s} ${a}`),r.push(`# TYPE claude_pilot_${s} ${o}`);let l=Object.entries(c).map(([p,d])=>`${p}="${d}"`).join(","),u=l?`{${l}}`:"";r.push(`claude_pilot_${s}${u} ${i}`)};return n("uptime_seconds",e.uptime,"Worker uptime in seconds"),n("memory_heap_used_bytes",e.memoryUsage.heapUsed,"Heap memory used"),n("memory_heap_total_bytes",e.memoryUsage.heapTotal,"Total heap memory"),n("memory_rss_bytes",e.memoryUsage.rss,"Resident set size"),n("database_observations_total",e.database.observations,"Total observations"),n("database_sessions_total",e.database.sessions,"Total sessions"),n("database_summaries_total",e.database.summaries,"Total summaries"),n("database_prompts_total",e.database.prompts,"Total prompts"),n("database_size_bytes",e.database.sizeBytes,"Database file size"),n("processing_active_sessions",e.processing.activeSessions,"Active processing sessions"),n("processing_queue_depth",e.processing.queueDepth,"Queue depth"),n("processing_is_active",e.processing.isProcessing?1:0,"Is processing active"),n("requests_total",e.requests.total,"Total requests in window","counter"),n("requests_errors_total",e.requests.errors,"Total request errors","counter"),n("requests_response_time_avg_ms",e.requests.avgResponseTimeMs,"Average response time"),n("provider_requests_total",e.provider.requestsTotal,"Provider requests","counter",{provider:e.provider.name}),n("provider_tokens_total",e.provider.tokensTotal,"Provider tokens used","counter",{provider:e.provider.name}),n("provider_errors_total",e.provider.errorsTotal,"Provider errors","counter",{provider:e.provider.name}),n("observations_per_minute",e.rates.observationsPerMinute,"Observations created per minute"),n("requests_per_minute",e.rates.requestsPerMinute,"Requests per minute"),r.join(` -`)}};re();er();Or();var zTe=1440*60*1e3,$Te=3e4,Kb=null,Jb=null;async function dG(t){let e=t.getVectorSyncOrNull(),r=new Ol(t,e),n=r.getPolicy();if(!n.enabled){_.debug("RETENTION","Auto-cleanup skipped: retention policy is disabled");return}_.info("RETENTION","Running scheduled auto-cleanup",{maxAgeDays:n.maxAgeDays,maxCount:n.maxCount});let s=await r.run();_.info("RETENTION","Auto-cleanup complete",{deleted:s.deleted,archived:s.archived,errors:s.errors.length,duration:s.duration}),await LTe(e)}async function LTe(t){try{let e=Ae.loadFromFile(Ht),r=parseInt(e.CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB,10)||cd,n=parseInt(e.CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB,10)||ld,s=Wg(Zl,{maxPhysicalBytes:r*1024*1024,maxLogicalBytes:n*1024*1024,settingsPathForAutoDisable:Ht});if(!s.evicted)return;_.warn("VECTOR_DB_GUARD","Retention detected oversized vector DB \u2014 evicted, will rebuild on next sync",{reason:s.reason,logicalBytes:s.before.logical,physicalBytes:s.before.physical,largestFile:s.before.largestFile?.path,backupPath:s.backupPath,recentEvictionCount:s.recentEvictionCount,chromaAutoDisabled:s.chromaAutoDisabled}),t&&await t.close()}catch(e){_.error("VECTOR_DB_GUARD","Post-retention vector DB guard failed (non-fatal)",{},e)}}function mG(t){dP(),Jb=setTimeout(async()=>{try{await dG(t)}catch(e){_.error("RETENTION","Scheduled retention failed",{},e)}Kb=setInterval(async()=>{try{await dG(t)}catch(e){_.error("RETENTION","Scheduled retention failed",{},e)}},zTe),_.info("RETENTION","Scheduled daily auto-cleanup")},$Te),_.info("RETENTION","Retention scheduler initialized (first run in 30s)")}function dP(){Jb&&(clearTimeout(Jb),Jb=null),Kb&&(clearInterval(Kb),Kb=null),_.debug("RETENTION","Retention scheduler stopped")}var rRe={},YTe="8.10.4";function KG(t,e){return{continue:!0,suppressOutput:!0,status:t,...e&&{message:e}}}function JG(){let t=`${(0,VG.homedir)()}/.pilot/bin/pilot`;if(!(0,TP.existsSync)(t))return _.warn("SYSTEM","Pilot binary not found, skipping license check"),!0;try{return(0,GG.execSync)(`"${t}" verify`,{stdio:"pipe",timeout:5e3,env:Wu()}),!0}catch{return!1}}var nx=class{server;startTime=Date.now();mcpClient;coreReady=!1;mcpReady=!1;initializationCompleteFlag=!1;isShuttingDown=!1;dbManager;sessionManager;sseBroadcaster;sdkAgent;paginationHelper;sessionEventBroadcaster;searchRoutes=null;metricsService=null;initializationComplete;resolveInitialization;cleanupInterval=null;constructor(){this.initializationComplete=new Promise(e=>{this.resolveInitialization=e}),this.dbManager=new Gg,this.sessionManager=new Vg(this.dbManager),this.sseBroadcaster=new Kg,this.sdkAgent=new qy(this.dbManager,this.sessionManager),this.paginationHelper=new Fy(this.dbManager),this.sessionEventBroadcaster=new Zy(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new Yo({name:"worker-search-proxy",version:YTe},{capabilities:{}}),this.server=new $g({getInitializationComplete:()=>this.initializationCompleteFlag,getCoreReady:()=>this.coreReady,getMcpReady:()=>this.mcpReady,onShutdown:()=>this.shutdown(),onRestart:()=>this.shutdown()}),this.registerRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){let e={value:this.isShuttingDown},r=Uw(()=>this.shutdown(),e);process.on("SIGTERM",()=>{this.isShuttingDown=e.value,r("SIGTERM")}),process.on("SIGINT",()=>{this.isShuttingDown=e.value,r("SIGINT")}),process.platform!=="win32"&&process.on("SIGHUP",()=>{process.argv.includes("--daemon")?_.info("SYSTEM","Received SIGHUP in daemon mode, ignoring",{}):(this.isShuttingDown=e.value,r("SIGHUP"))})}registerRoutes(){this.server.app.get("/api/context/inject",async(e,r,n)=>{let i;try{let a=new Promise((o,c)=>{i=setTimeout(()=>c(new Error("Initialization timeout")),3e4)});if(await Promise.race([this.initializationComplete,a]),!this.searchRoutes){r.status(503).json({error:"Search routes not initialized"});return}n()}catch{r.status(503).json({error:"Service initialization timed out"})}finally{i&&clearTimeout(i)}}),this.server.registerRoutes(new hb),this.server.registerRoutes(new Vy(this.sseBroadcaster,this.dbManager,this.sessionManager)),this.server.registerRoutes(new Jy(this.sessionManager,this.dbManager,this.sdkAgent,this.sessionEventBroadcaster,this)),this.server.registerRoutes(new Qy(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime,new tb)),this.server.registerRoutes(new lb),this.server.registerRoutes(new ub(this.dbManager,"pilot-memory")),this.server.registerRoutes(new db(this.dbManager)),this.server.registerRoutes(new mb(this.dbManager)),this.server.registerRoutes(new Sb(this.dbManager,this.sseBroadcaster)),this.server.registerRoutes(new Gb(this.dbManager,this.sseBroadcaster)),this.server.registerRoutes(new Eb(this.dbManager,this.sseBroadcaster)),this.server.registerRoutes(new Rb),this.metricsService=new Vb(this.dbManager,this.sessionManager,this.startTime),this.server.registerRoutes(new fb(this.metricsService)),this.server.registerRoutes(new Ob),this.server.registerRoutes(new Ab),this.server.registerRoutes(new Db),this.server.registerRoutes(new Mb(this.dbManager)),this.server.registerRoutes(new $b),this.server.registerRoutes(new Lb),this.server.registerRoutes(new Ub),this.server.registerRoutes(new Fb(this.dbManager)),mG(this.dbManager),uG({projectRoots:()=>{let e=new Set,r=zr(process.env.CLAUDE_PROJECT_ROOT||process.cwd());e.add(r);let n=this.dbManager?.getSessionStore().getAllProjectRoots()??[];for(let s of n)e.add(s.rootPath);return Array.from(e)},dbManager:this.dbManager,sseBroadcaster:this.sseBroadcaster})}async start(){let e=un(),r=ph(),n=us();await this.server.listen(e,r),_.info("SYSTEM","Worker started",{bind:r,host:n,port:e,pid:process.pid}),Ra()&&_.info("SYSTEM","WSL2 detected \u2014 Console bound to 0.0.0.0 for Windows host access",{url:`http://localhost:${e}`}),this.initializeBackground().catch(s=>{_.error("SYSTEM","Background initialization failed",{},s)})}async initializeBackground(){try{await Promise.all([yh(),Vu(),Gu()]);let{ModeManager:e}=await Promise.resolve().then(()=>(Hn(),W6));e.getInstance().loadMode(),_.info("SYSTEM","Mode loaded: Code Development"),await this.dbManager.initialize();let r=zr(process.env.CLAUDE_PROJECT_ROOT||process.cwd()),n=Lm.default.basename(r);this.dbManager.getSessionStore().upsertProjectRoot(n,r);let{PendingMessageStore:s}=await Promise.resolve().then(()=>(Fi(),Va)),i=new s(this.dbManager.getSessionStore().db,3),a=300*1e3,o=i.resetStuckMessages(a);o>0&&_.info("SYSTEM",`Recovered ${o} stuck messages from previous session`,{thresholdMinutes:5});let c=new By,l=new Wy,u=new Hy(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getVectorSync(),c,l);this.searchRoutes=new ob(u),this.server.registerRoutes(this.searchRoutes),_.info("WORKER","SearchManager initialized and search routes registered"),this.coreReady=!0,_.info("SYSTEM","Core services ready (hooks can proceed)");let p=[Lm.default.join(__dirname,"mcp-server.cjs"),Lm.default.join(__dirname,"..","servers","mcp-server.ts"),Lm.default.join(__dirname,"..","..","servers","mcp-server.ts")],d=p.find(x=>(0,TP.existsSync)(x))||p[0],m=d.endsWith(".ts"),f=new tc({command:m?"bun":"node",args:[d],env:process.env}),g=3e5,v=this.mcpClient.connect(f),h=new Promise((x,w)=>setTimeout(()=>w(new Error("MCP connection timeout after 5 minutes")),g));await Promise.race([v,h]),this.mcpReady=!0,_.success("WORKER","Connected to MCP server"),this.initializationCompleteFlag=!0,this.resolveInitialization(),_.info("SYSTEM","Background initialization complete"),this.processPendingQueues(50).then(x=>{x.sessionsStarted>0&&_.info("SYSTEM",`Auto-recovered ${x.sessionsStarted} sessions with pending work`,{totalPending:x.totalPendingSessions,started:x.sessionsStarted,sessionIds:x.startedSessionIds})}).catch(x=>{_.error("SYSTEM","Auto-recovery of pending queues failed",{},x)});let y=300*1e3,b=3600*1e3;this.cleanupInterval=setInterval(async()=>{try{let x=await this.sessionManager.cleanupStaleSessions(b);x>0&&_.info("SYSTEM",`Periodic cleanup: removed ${x} stale sessions`),await Vu(),await Gu(),_.debug("SYSTEM","Periodic cleanup completed")}catch(x){_.error("SYSTEM","Periodic cleanup failed",{},x)}},y),_.info("SYSTEM","Started periodic cleanup (every 5 minutes)")}catch(e){throw _.error("SYSTEM","Background initialization failed",{},e),e}}getActiveAgent(){return this.sdkAgent}startSessionProcessor(e,r){if(!e)return;e.abortController.signal.aborted&&(e.abortController=new AbortController,_.debug("SYSTEM","Reset AbortController for session restart",{sessionId:e.sessionDbId}));let n=e.sessionDbId,s=this.getActiveAgent(),i=s.constructor.name;_.info("SYSTEM",`Starting generator (${r}) using ${i}`,{sessionId:n}),e.generatorPromise=s.startSession(e,this).catch(a=>{_.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project,provider:i},a)}).finally(()=>{e.generatorPromise=null,this.broadcastProcessingStatus()})}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(Fi(),Va)),n=new r(this.dbManager.getSessionStore().db,3),s=this.dbManager.getSessionStore(),i=1800*1e3,a=Date.now()-i;try{let l=s.db.prepare(` +`)){if(!a.trim())continue;let o=a.split(" ");if(o.length>=2){let c=o[0].charAt(0),l=o[o.length-1],u=s.get(l)||{additions:0,deletions:0};i.push({path:l,status:c,staged:n,...u})}}return i}isValidFilePath(e){return!(!e||e.trim()===""||sa.default.isAbsolute(e)||sa.default.normalize(e).startsWith(".."))}isValidBranchName(e){return!(!e||e.trim()===""||/\.\.|[\x00-\x1f\x7f~^:?*[\\]|@\{/.test(e)||e.startsWith("-")||e.startsWith(".")||e.endsWith(".lock"))}gitShowFile(e,r,n){try{return(0,qe.execFileSync)("git",["show",`${r}:${n}`],{cwd:e,encoding:"utf-8",timeout:5e3,env:Qe,maxBuffer:10*1024*1024})}catch{return""}}hasBinaryContent(e){return e.includes("\0")}normalizeLineEndings(e){return e.replace(/\r\n?/g,` +`)}getMainRepoRoot(e){try{let r=sa.default.join(e,".git");if((0,ia.existsSync)(r))try{let n=(0,ia.readFileSync)(r,"utf-8").trim();if(n.startsWith("gitdir:")){let s=n.replace("gitdir:","").trim(),i=sa.default.resolve(e,s,"..","..");return sa.default.dirname(i)}}catch{return e}return e}catch{return null}}};var iG=Q(require("path"),1);var Zs=require("node:fs"),nP=require("node:crypto"),yi=Q(require("node:path"),1),WZ=500;function ZZ(t){return yi.default.join(yi.default.dirname(t),".annotations")}function sP(t,e){let r=yi.default.basename(e).replace(/\.md$/,".json");if(yi.default.isAbsolute(e))return yi.default.join(ZZ(e),r);let n=yi.default.resolve(t,e);return yi.default.join(ZZ(n),r)}function aTe(t){(0,Zs.mkdirSync)(yi.default.dirname(t),{recursive:!0})}function rP(t){return{planPath:t,planAnnotations:[],codeReviewAnnotations:[],updatedAt:Date.now(),dismissedFeedbackIds:[],decisions:[]}}function oTe(t){return t.map(e=>{if(e.feedbackStatus===void 0)return e;let{feedbackStatus:r,...n}=e;return n})}function Cn(t,e){let r=sP(t,e);if(!(0,Zs.existsSync)(r))return rP(e);try{let n=(0,Zs.readFileSync)(r,"utf-8"),s=JSON.parse(n);if(Array.isArray(s.planAnnotations))return{planPath:s.planPath??e,planAnnotations:oTe(s.planAnnotations),codeReviewAnnotations:Array.isArray(s.codeReviewAnnotations)?s.codeReviewAnnotations:[],updatedAt:s.updatedAt??Date.now(),shareId:typeof s.shareId=="string"?s.shareId:void 0,shareCreatedAt:typeof s.shareCreatedAt=="number"?s.shareCreatedAt:void 0,feedbackCursor:typeof s.feedbackCursor=="number"?s.feedbackCursor:void 0,dismissedFeedbackIds:Array.isArray(s.dismissedFeedbackIds)?s.dismissedFeedbackIds:[],decisions:Array.isArray(s.decisions)?s.decisions:[]};if(Array.isArray(s.annotations)){let i=s.annotations.map(a=>({id:a.id,blockId:a.blockId,originalText:a.originalText??"",text:a.text??"",createdAt:a.createdAt??Date.now()}));return{planPath:s.planPath??e,planAnnotations:i,codeReviewAnnotations:[],updatedAt:s.updatedAt??Date.now(),dismissedFeedbackIds:[],decisions:[]}}return rP(e)}catch{return rP(e)}}function aa(t,e){let r=sP(t,e.planPath);aTe(r),(0,Zs.writeFileSync)(r,JSON.stringify({...e,updatedAt:Date.now()},null,2),"utf-8")}function GZ(t,e,r){let n=Cn(t,e);aa(t,{...n,planPath:e,planAnnotations:r})}function VZ(t,e){let r=Cn(t,e);aa(t,{...r,planAnnotations:[]})}function KZ(t,e,r){let n=Cn(t,e);aa(t,{...n,planPath:e,codeReviewAnnotations:r})}function JZ(t,e){let r=Cn(t,e);aa(t,{...r,codeReviewAnnotations:[]})}function QZ(t,e,r,n){let s=Cn(t,e);aa(t,{...s,planPath:e,shareId:r,shareCreatedAt:n,feedbackCursor:s.feedbackCursor??0})}function Ub(t,e){let n={...Cn(t,e),planPath:e};delete n.shareId,delete n.shareCreatedAt,delete n.feedbackCursor,aa(t,n)}function iP(t,e,r,n,s){let i=Cn(t,e),a=new Set(i.planAnnotations.map(p=>p.id)),o=new Set(i.dismissedFeedbackIds??[]),c=[];for(let p of r){let d=p.id;if(d){if(a.has(d)||o.has(d))continue}else if(d=(0,nP.randomUUID)(),(a.has(d)||o.has(d))&&(d=(0,nP.randomUUID)(),a.has(d)||o.has(d)))continue;let m={...p,id:d};c.push(m),a.add(m.id)}let l=!1,u=i.decisions;return s&&!i.decisions.some(p=>p.id===s.id)&&(u=[...i.decisions,s],l=!0),aa(t,{...i,planPath:e,planAnnotations:[...i.planAnnotations,...c],decisions:u,feedbackCursor:n}),{added:c,decisionAdded:l}}function YZ(t,e,r){let n=Cn(t,e),s=n.dismissedFeedbackIds??[],i=s.includes(r)?s:[...s,r],a=i.length>WZ?i.slice(i.length-WZ):i;aa(t,{...n,planPath:e,planAnnotations:n.planAnnotations.filter(o=>o.id!==r),dismissedFeedbackIds:a})}function XZ(t,e){let r=sP(t,e);try{(0,Zs.unlinkSync)(r)}catch(n){if(n.code!=="ENOENT")throw n}}re();var _o=require("node:fs"),Dl=require("node:path");var cTe=256*1024;function lTe(t){try{let e=(0,_o.lstatSync)(t);return!(e.isSymbolicLink()||!e.isFile()||e.size>cTe)}catch{return!1}}function uTe(t,e){let r=(0,Dl.basename)(e,".json");return(0,Dl.join)(t,"..",`${r}.md`)}function eG(t){let e=[];for(let r of t){let n=(0,Dl.join)(r,"docs","plans",".annotations");if(!(0,_o.existsSync)(n))continue;let s;try{s=(0,_o.readdirSync)(n,{withFileTypes:!0})}catch{continue}for(let i of s){if(!i.isFile()||!i.name.endsWith(".json"))continue;let a=(0,Dl.join)(n,i.name);if(!lTe(a))continue;let o=uTe(n,i.name);if(!(0,_o.existsSync)(o))continue;let c;try{c=Cn(r,o)}catch{continue}c.shareId&&e.push({projectRoot:r,planPath:o,shareId:c.shareId,feedbackCursor:c.feedbackCursor??0})}}return e}var pTe=/^[A-Za-z0-9]{8}$/;var dTe=new Set(["approve","request_changes"]);function Ml(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function wo(t,e){return typeof t=="string"&&t.length<=e}function Nm(t){return typeof t=="number"&&Number.isFinite(t)}function mTe(t){return!Ml(t)||!wo(t.text,4e3)||t.text.length<1||!Nm(t.createdAt)||t.id!==void 0&&!wo(t.id,64)||t.blockId!==void 0&&!wo(t.blockId,256)||t.originalText!==void 0&&!wo(t.originalText,4e3)?null:{id:typeof t.id=="string"?t.id:"",blockId:typeof t.blockId=="string"?t.blockId:"",originalText:typeof t.originalText=="string"?t.originalText:"",text:t.text,createdAt:t.createdAt}}function fTe(t){return!Ml(t)||typeof t.verdict!="string"||!dTe.has(t.verdict)||t.comment!==void 0&&!wo(t.comment,4e3)?null:{verdict:t.verdict,...typeof t.comment=="string"?{comment:t.comment}:{}}}function hTe(t){if(!Ml(t)||!Nm(t.position)||t.position<0||!Nm(t.receivedAt)||!Ml(t.payload))return null;let e=t.payload;if(!wo(e.author,80)||e.author.length<1||!Nm(e.createdAt)||!Array.isArray(e.annotations)||e.annotations.length>50)return null;let r=[];for(let s of e.annotations){let i=mTe(s);if(!i)return null;r.push(i)}if(e.planPath!==void 0&&!wo(e.planPath,1024))return null;let n=null;return e.decision!==void 0&&(n=fTe(e.decision),!n)||r.length===0&&!n?null:{position:t.position,receivedAt:t.receivedAt,payload:{author:e.author,annotations:r,createdAt:e.createdAt,...typeof e.planPath=="string"?{planPath:e.planPath}:{},...n?{decision:n}:{}}}}function tG(t){if(!Ml(t))return{};let e={};for(let[r,n]of Object.entries(t)){if(!pTe.test(r)||!Ml(n)||!Nm(n.cursor)||n.cursor<0||n.error!==void 0&&n.error!=="not_found"||!Array.isArray(n.entries)||n.entries.length>100)continue;let s=[];for(let a of n.entries){let o=hTe(a);o&&s.push(o)}let i={entries:s,cursor:n.cursor};n.error==="not_found"&&(i.error="not_found"),n.hasMore===!0&&(i.hasMore=!0),e[r]=i}return e}var rG=6e4,nG=15e3,gTe=50,vTe=100,yTe=15e3,bTe="https://pilot-shell.com",xTe=50,qb=null,Fb=null,_Te=null,Hb=null;function wTe(){return _Te??process.env.PILOT_SHELL_API_BASE??bTe}function STe(t){let r=(t.split("/").pop()??t).replace(/\.md$/,"");return/^\d{4}-\d{2}-\d{2}-/.test(r)&&(r=r.slice(11)),r}function ETe(t,e){let r=[];for(let n=0;nn.abort(),yTe);try{let i=await t(`${e}/api/share/feedback/batch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:r}),signal:n.signal});if(!i.ok)return _.warn("FEEDBACK_POLL","batch request failed",{status:i.status}),null;let a=await i.json();return tG(a)}catch(i){return _.warn("FEEDBACK_POLL","batch request errored",{error:i.message}),null}finally{clearTimeout(s)}}function TTe(t,e,r,n){let s=n.payload.decision,i=s?.verdict==="approve"?"approved":"requested changes on",a=r>0?` with ${r} annotation${r===1?"":"s"}`:"";if(s){let o=`${t} ${i} ${e}${a}`,c=s.comment?.trim();if(s.verdict==="request_changes"&&c){let l=c.length>60?`${c.slice(0,60)}\u2026`:c;return`${o}: ${l}`}return o}return`${t} left ${r} annotation${r===1?"":"s"} on ${e}`}function RTe(t,e,r,n,s){let i=STe(r.planPath),a=n.payload.author||"Anonymous",o=TTe(a,i,s,n),c=t.getSessionStore().db,l;try{l=wb(c,{type:"feedback_received",title:i,message:o,plan_path:r.planPath})}catch(u){_.warn("FEEDBACK_POLL","failed to insert notification",{error:u.message});return}e&&l&&e.broadcast({type:"new_notification",notification:l})}function PTe(t){let e=t.payload.author||"Anonymous";return t.payload.annotations.map(r=>({id:r.id,blockId:r.blockId,originalText:r.originalText,text:r.text,createdAt:r.createdAt,author:e,importedAt:t.receivedAt}))}function ITe(t,e){let r=e.payload.decision;if(r)return{verdict:r.verdict,comment:r.comment,author:e.payload.author||"Anonymous",receivedAt:e.receivedAt,id:`${t}-${e.position}`}}async function aP(t){let e=eG(t.projectRoots),r={polledShares:e.length,entriesReceived:0,notificationsEmitted:0,decisionsReceived:0,expired:0,hasMore:!1};if(e.length===0)return r;let n=wTe(),s=ETe(e,gTe);for(let i of s){let a=i.map(c=>({id:c.shareId,cursor:c.feedbackCursor})),o=await kTe(t.fetch,n,a);if(o)for(let c of i){let l=o[c.shareId];if(!l)continue;if(l.cursor>c.feedbackCursor+vTe){_.warn("FEEDBACK_POLL","batch response cursor advanced beyond one page; ignoring",{shareId:c.shareId,previousCursor:c.feedbackCursor,responseCursor:l.cursor});continue}if(l.error==="not_found"){Ub(c.projectRoot,c.planPath),t.sseBroadcaster?.broadcast({type:"share_expired",plan_path:c.planPath,share_id:c.shareId}),r.expired+=1;continue}if(l.hasMore&&(r.hasMore=!0),l.entries.length===0){l.cursor>c.feedbackCursor&&(iP(c.projectRoot,c.planPath,[],l.cursor),c.feedbackCursor=l.cursor);continue}r.entriesReceived+=l.entries.length;let u=l.entries.length-1;for(let p=0;p0||h)&&(RTe(t.dbManager,t.sseBroadcaster,c,d,v.length),r.notificationsEmitted+=1,t.sseBroadcaster?.broadcast({type:"feedback_appended",plan_path:c.planPath,added:v.length,hasDecision:h}))}c.feedbackCursor=l.cursor}}return r}function sG(t){oP();let e=0,r=null,n=async()=>{try{let s=await aP({projectRoots:t.projectRoots(),fetch:t.fetch??fetch,dbManager:t.dbManager,sseBroadcaster:t.sseBroadcaster});s.polledShares>0&&_.info("FEEDBACK_POLL","tick complete",s),s.hasMore&&e{r=null,n()},0)):(s.hasMore&&_.warn("FEEDBACK_POLL","immediate-tick cap reached; deferring to next interval",{consecutiveImmediate:e}),e=0)}catch(s){_.error("FEEDBACK_POLL","tick failed",{},s),e=0}};Fb=setTimeout(()=>{n(),qb=setInterval(()=>{n()},rG)},nG),Hb=()=>{r!==null&&(clearTimeout(r),r=null)},_.info("FEEDBACK_POLL","scheduler initialized",{startupDelayMs:nG,intervalMs:rG})}function oP(){Fb&&(clearTimeout(Fb),Fb=null),qb&&(clearInterval(qb),qb=null),Hb&&(Hb(),Hb=null)}var Bb=class extends Te{dbManager;sseBroadcaster;constructor(e,r){super(),this.dbManager=e??null,this.sseBroadcaster=r??null}setupRoutes(e){e.get("/api/annotations",this.handleGet.bind(this)),e.post("/api/annotations/plan",this.handleSavePlan.bind(this)),e.post("/api/annotations/code-review",this.handleSaveCodeReview.bind(this)),e.post("/api/annotations/set-share-id",this.handleSetShareId.bind(this)),e.post("/api/annotations/clear-share-id",this.handleClearShareId.bind(this)),e.post("/api/annotations/dismiss-feedback",this.handleDismissFeedback.bind(this)),e.post("/api/annotations/poll-feedback",this.handlePollFeedback.bind(this)),e.delete("/api/annotations",this.handleDeleteAll.bind(this)),e.delete("/api/annotations/plan",this.handleClearPlan.bind(this)),e.delete("/api/annotations/code-review",this.handleClearCodeReview.bind(this))}resolvePlanPath(e,r,n){let s=iG.default.resolve(r,n);return Im(r,s)?s:(this.badRequest(e,"Invalid plan path"),null)}requirePath(e,r){let n=e.query.project,s=e.query.path;if(!s)return this.badRequest(r,"Missing path query parameter"),null;let i=iZ(this.dbManager,n,s),a=this.resolvePlanPath(r,i,s);return a?{projectRoot:i,resolvedPlanPath:a}:null}handleGet=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=Cn(n.projectRoot,n.resolvedPlanPath);r.json({planAnnotations:s.planAnnotations,codeReviewAnnotations:s.codeReviewAnnotations,shareId:s.shareId,shareCreatedAt:s.shareCreatedAt,feedbackCursor:s.feedbackCursor,decisions:s.decisions})});handleSetShareId=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.shareId,i=e.body.shareCreatedAt;if(typeof s!="string"||!/^[A-Za-z0-9]{8}$/.test(s)){this.badRequest(r,"shareId must be an 8-character alphanumeric string");return}if(typeof i!="number"){this.badRequest(r,"shareCreatedAt must be a number");return}QZ(n.projectRoot,n.resolvedPlanPath,s,i),r.json({ok:!0})});handleClearShareId=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(Ub(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))});handleDismissFeedback=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.id;if(typeof s!="string"||s.length===0){this.badRequest(r,"id must be a non-empty string");return}YZ(n.projectRoot,n.resolvedPlanPath,s),r.json({ok:!0})});handlePollFeedback=this.wrapHandler(async(e,r)=>{let n=this.requirePath(e,r);if(!n)return;if(!Cn(n.projectRoot,n.resolvedPlanPath).shareId){r.status(409).json({error:"No share link for this spec \u2014 generate one first"});return}let i=await aP({projectRoots:[n.projectRoot],fetch,dbManager:this.dbManager??{getSessionStore:()=>({db:null})},sseBroadcaster:this.sseBroadcaster});r.json({ok:!0,polledShares:i.polledShares,entriesReceived:i.entriesReceived,notificationsEmitted:i.notificationsEmitted,expired:i.expired})});handleSavePlan=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.annotations;if(!Array.isArray(s)){this.badRequest(r,"annotations must be an array");return}GZ(n.projectRoot,n.resolvedPlanPath,s),r.json({ok:!0})});handleSaveCodeReview=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.annotations;if(!Array.isArray(s)){this.badRequest(r,"annotations must be an array");return}KZ(n.projectRoot,n.resolvedPlanPath,s),r.json({ok:!0})});handleDeleteAll=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(XZ(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))});handleClearPlan=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(VZ(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))});handleClearCodeReview=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(JZ(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))})};var Wb=class{dbManager;sessionManager;startTime;requestMetrics=[];providerRequests=0;providerTokens=0;providerErrors=0;providerName="unknown";METRICS_WINDOW_MS=300*1e3;constructor(e,r,n){this.dbManager=e,this.sessionManager=r,this.startTime=n,setInterval(()=>this.cleanupOldMetrics(),6e4)}recordRequest(e,r,n=!1){this.requestMetrics.push({endpoint:e,responseTimeMs:r,timestamp:Date.now(),error:n})}recordProviderUsage(e,r,n=!1){this.providerName=e,this.providerRequests++,this.providerTokens+=r,n&&this.providerErrors++}cleanupOldMetrics(){let e=Date.now()-this.METRICS_WINDOW_MS;this.requestMetrics=this.requestMetrics.filter(r=>r.timestamp>e)}async getMetrics(){let r=this.dbManager.getSessionStore().db,n=R=>{try{return r.prepare(`SELECT COUNT(*) as count FROM ${R}`).get().count}catch{return 0}},s=n("observations"),i=n("sdk_sessions"),a=n("session_summaries"),o=n("prompts"),{DATA_DIR:c}=await Promise.resolve().then(()=>(er(),$P)),l=await import("fs"),p=(await import("path")).join(c,"pilot-memory.db"),d=0;try{d=l.statSync(p).size}catch{}let m=process.memoryUsage(),f=this.requestMetrics.filter(R=>R.timestamp>Date.now()-this.METRICS_WINDOW_MS),g=f.length,v=f.filter(R=>R.error).length,h=g>0?f.reduce((R,O)=>R+O.responseTimeMs,0)/g:0,y={};for(let R of f)y[R.endpoint]=(y[R.endpoint]||0)+1;let b=Date.now()-6e4,x=0;try{x=r.prepare("SELECT COUNT(*) as count FROM observations WHERE created_at_epoch > ?").get(b).count}catch{}let w=f.filter(R=>R.timestamp>b).length,S=this.sessionManager.isAnySessionProcessing(),E=this.sessionManager.getTotalActiveWork(),k=this.sessionManager.getActiveSessionCount();return{uptime:Math.floor((Date.now()-this.startTime)/1e3),memoryUsage:{heapUsed:m.heapUsed,heapTotal:m.heapTotal,rss:m.rss,external:m.external},database:{observations:s,sessions:i,summaries:a,prompts:o,sizeBytes:d},processing:{activeSessions:k,queueDepth:E,isProcessing:S},requests:{total:g,byEndpoint:y,errors:v,avgResponseTimeMs:Math.round(h)},provider:{name:this.providerName,requestsTotal:this.providerRequests,tokensTotal:this.providerTokens,errorsTotal:this.providerErrors},rates:{observationsPerMinute:x,requestsPerMinute:w}}}async toPrometheus(){let e=await this.getMetrics(),r=[],n=(s,i,a,o="gauge",c={})=>{r.push(`# HELP claude_pilot_${s} ${a}`),r.push(`# TYPE claude_pilot_${s} ${o}`);let l=Object.entries(c).map(([p,d])=>`${p}="${d}"`).join(","),u=l?`{${l}}`:"";r.push(`claude_pilot_${s}${u} ${i}`)};return n("uptime_seconds",e.uptime,"Worker uptime in seconds"),n("memory_heap_used_bytes",e.memoryUsage.heapUsed,"Heap memory used"),n("memory_heap_total_bytes",e.memoryUsage.heapTotal,"Total heap memory"),n("memory_rss_bytes",e.memoryUsage.rss,"Resident set size"),n("database_observations_total",e.database.observations,"Total observations"),n("database_sessions_total",e.database.sessions,"Total sessions"),n("database_summaries_total",e.database.summaries,"Total summaries"),n("database_prompts_total",e.database.prompts,"Total prompts"),n("database_size_bytes",e.database.sizeBytes,"Database file size"),n("processing_active_sessions",e.processing.activeSessions,"Active processing sessions"),n("processing_queue_depth",e.processing.queueDepth,"Queue depth"),n("processing_is_active",e.processing.isProcessing?1:0,"Is processing active"),n("requests_total",e.requests.total,"Total requests in window","counter"),n("requests_errors_total",e.requests.errors,"Total request errors","counter"),n("requests_response_time_avg_ms",e.requests.avgResponseTimeMs,"Average response time"),n("provider_requests_total",e.provider.requestsTotal,"Provider requests","counter",{provider:e.provider.name}),n("provider_tokens_total",e.provider.tokensTotal,"Provider tokens used","counter",{provider:e.provider.name}),n("provider_errors_total",e.provider.errorsTotal,"Provider errors","counter",{provider:e.provider.name}),n("observations_per_minute",e.rates.observationsPerMinute,"Observations created per minute"),n("requests_per_minute",e.rates.requestsPerMinute,"Requests per minute"),r.join(` +`)}};re();er();Or();var CTe=1440*60*1e3,OTe=3e4,Zb=null,Gb=null;async function aG(t){let e=t.getVectorSyncOrNull(),r=new Cl(t,e),n=r.getPolicy();if(!n.enabled){_.debug("RETENTION","Auto-cleanup skipped: retention policy is disabled");return}_.info("RETENTION","Running scheduled auto-cleanup",{maxAgeDays:n.maxAgeDays,maxCount:n.maxCount});let s=await r.run();_.info("RETENTION","Auto-cleanup complete",{deleted:s.deleted,archived:s.archived,errors:s.errors.length,duration:s.duration}),await ATe(e)}async function ATe(t){try{let e=Ae.loadFromFile(Ht),r=parseInt(e.CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB,10)||od,n=parseInt(e.CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB,10)||cd,s=Hg(Wl,{maxPhysicalBytes:r*1024*1024,maxLogicalBytes:n*1024*1024,settingsPathForAutoDisable:Ht});if(!s.evicted)return;_.warn("VECTOR_DB_GUARD","Retention detected oversized vector DB \u2014 evicted, will rebuild on next sync",{reason:s.reason,logicalBytes:s.before.logical,physicalBytes:s.before.physical,largestFile:s.before.largestFile?.path,backupPath:s.backupPath,recentEvictionCount:s.recentEvictionCount,chromaAutoDisabled:s.chromaAutoDisabled}),t&&await t.close()}catch(e){_.error("VECTOR_DB_GUARD","Post-retention vector DB guard failed (non-fatal)",{},e)}}function oG(t){cP(),Gb=setTimeout(async()=>{try{await aG(t)}catch(e){_.error("RETENTION","Scheduled retention failed",{},e)}Zb=setInterval(async()=>{try{await aG(t)}catch(e){_.error("RETENTION","Scheduled retention failed",{},e)}},CTe),_.info("RETENTION","Scheduled daily auto-cleanup")},OTe),_.info("RETENTION","Retention scheduler initialized (first run in 30s)")}function cP(){Gb&&(clearTimeout(Gb),Gb=null),Zb&&(clearInterval(Zb),Zb=null),_.debug("RETENTION","Retention scheduler stopped")}var KTe={},WTe="8.10.5";function HG(t,e){return{continue:!0,suppressOutput:!0,status:t,...e&&{message:e}}}function BG(){let t=`${(0,FG.homedir)()}/.pilot/bin/pilot`;if(!(0,wP.existsSync)(t))return _.warn("SYSTEM","Pilot binary not found, skipping license check"),!0;try{return(0,qG.execSync)(`"${t}" verify`,{stdio:"pipe",timeout:5e3,env:Bu()}),!0}catch{return!1}}var ex=class{server;startTime=Date.now();mcpClient;coreReady=!1;mcpReady=!1;initializationCompleteFlag=!1;isShuttingDown=!1;dbManager;sessionManager;sseBroadcaster;sdkAgent;paginationHelper;sessionEventBroadcaster;searchRoutes=null;metricsService=null;initializationComplete;resolveInitialization;cleanupInterval=null;constructor(){this.initializationComplete=new Promise(e=>{this.resolveInitialization=e}),this.dbManager=new Wg,this.sessionManager=new Zg(this.dbManager),this.sseBroadcaster=new Gg,this.sdkAgent=new Ly(this.dbManager,this.sessionManager),this.paginationHelper=new Uy(this.dbManager),this.sessionEventBroadcaster=new By(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new Qo({name:"worker-search-proxy",version:WTe},{capabilities:{}}),this.server=new Mg({getInitializationComplete:()=>this.initializationCompleteFlag,getCoreReady:()=>this.coreReady,getMcpReady:()=>this.mcpReady,onShutdown:()=>this.shutdown(),onRestart:()=>this.shutdown()}),this.registerRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){let e={value:this.isShuttingDown},r=zw(()=>this.shutdown(),e);process.on("SIGTERM",()=>{this.isShuttingDown=e.value,r("SIGTERM")}),process.on("SIGINT",()=>{this.isShuttingDown=e.value,r("SIGINT")}),process.platform!=="win32"&&process.on("SIGHUP",()=>{process.argv.includes("--daemon")?_.info("SYSTEM","Received SIGHUP in daemon mode, ignoring",{}):(this.isShuttingDown=e.value,r("SIGHUP"))})}registerRoutes(){this.server.app.get("/api/context/inject",async(e,r,n)=>{let i;try{let a=new Promise((o,c)=>{i=setTimeout(()=>c(new Error("Initialization timeout")),3e4)});if(await Promise.race([this.initializationComplete,a]),!this.searchRoutes){r.status(503).json({error:"Search routes not initialized"});return}n()}catch{r.status(503).json({error:"Service initialization timed out"})}finally{i&&clearTimeout(i)}}),this.server.registerRoutes(new mb),this.server.registerRoutes(new Zy(this.sseBroadcaster,this.dbManager,this.sessionManager)),this.server.registerRoutes(new Vy(this.sessionManager,this.dbManager,this.sdkAgent,this.sessionEventBroadcaster,this)),this.server.registerRoutes(new Ky(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime,new Xy)),this.server.registerRoutes(new ob),this.server.registerRoutes(new cb(this.dbManager,"pilot-memory")),this.server.registerRoutes(new ub(this.dbManager)),this.server.registerRoutes(new pb(this.dbManager)),this.server.registerRoutes(new _b(this.dbManager,this.sseBroadcaster)),this.server.registerRoutes(new Bb(this.dbManager,this.sseBroadcaster)),this.server.registerRoutes(new Sb(this.dbManager,this.sseBroadcaster)),this.server.registerRoutes(new kb),this.metricsService=new Wb(this.dbManager,this.sessionManager,this.startTime),this.server.registerRoutes(new db(this.metricsService)),this.server.registerRoutes(new Ib),this.server.registerRoutes(new Cb),this.server.registerRoutes(new Ab),this.server.registerRoutes(new jb(this.dbManager)),this.server.registerRoutes(new Db),this.server.registerRoutes(new Mb),this.server.registerRoutes(new zb),this.server.registerRoutes(new Lb(this.dbManager)),oG(this.dbManager),sG({projectRoots:()=>{let e=new Set,r=zr(process.env.CLAUDE_PROJECT_ROOT||process.cwd());e.add(r);let n=this.dbManager?.getSessionStore().getAllProjectRoots()??[];for(let s of n)e.add(s.rootPath);return Array.from(e)},dbManager:this.dbManager,sseBroadcaster:this.sseBroadcaster})}async start(){let e=un(),r=lh(),n=us();await this.server.listen(e,r),_.info("SYSTEM","Worker started",{bind:r,host:n,port:e,pid:process.pid}),Ta()&&_.info("SYSTEM","WSL2 detected \u2014 Console bound to 0.0.0.0 for Windows host access",{url:`http://localhost:${e}`}),this.initializeBackground().catch(s=>{_.error("SYSTEM","Background initialization failed",{},s)})}async initializeBackground(){try{await Promise.all([gh(),Gu(),Zu()]);let{ModeManager:e}=await Promise.resolve().then(()=>(Hn(),q6));e.getInstance().loadMode(),_.info("SYSTEM","Mode loaded: Code Development"),await this.dbManager.initialize();let r=zr(process.env.CLAUDE_PROJECT_ROOT||process.cwd()),n=zm.default.basename(r);this.dbManager.getSessionStore().upsertProjectRoot(n,r);let{PendingMessageStore:s}=await Promise.resolve().then(()=>(Fi(),Ga)),i=new s(this.dbManager.getSessionStore().db,3),a=300*1e3,o=i.resetStuckMessages(a);o>0&&_.info("SYSTEM",`Recovered ${o} stuck messages from previous session`,{thresholdMinutes:5});let c=new Fy,l=new Hy,u=new qy(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getVectorSync(),c,l);this.searchRoutes=new ib(u),this.server.registerRoutes(this.searchRoutes),_.info("WORKER","SearchManager initialized and search routes registered"),this.coreReady=!0,_.info("SYSTEM","Core services ready (hooks can proceed)");let p=[zm.default.join(__dirname,"mcp-server.cjs"),zm.default.join(__dirname,"..","servers","mcp-server.ts"),zm.default.join(__dirname,"..","..","servers","mcp-server.ts")],d=p.find(x=>(0,wP.existsSync)(x))||p[0],m=d.endsWith(".ts"),f=new ec({command:m?"bun":"node",args:[d],env:process.env}),g=3e5,v=this.mcpClient.connect(f),h=new Promise((x,w)=>setTimeout(()=>w(new Error("MCP connection timeout after 5 minutes")),g));await Promise.race([v,h]),this.mcpReady=!0,_.success("WORKER","Connected to MCP server"),this.initializationCompleteFlag=!0,this.resolveInitialization(),_.info("SYSTEM","Background initialization complete"),this.processPendingQueues(50).then(x=>{x.sessionsStarted>0&&_.info("SYSTEM",`Auto-recovered ${x.sessionsStarted} sessions with pending work`,{totalPending:x.totalPendingSessions,started:x.sessionsStarted,sessionIds:x.startedSessionIds})}).catch(x=>{_.error("SYSTEM","Auto-recovery of pending queues failed",{},x)});let y=300*1e3,b=3600*1e3;this.cleanupInterval=setInterval(async()=>{try{let x=await this.sessionManager.cleanupStaleSessions(b);x>0&&_.info("SYSTEM",`Periodic cleanup: removed ${x} stale sessions`),await Gu(),await Zu(),_.debug("SYSTEM","Periodic cleanup completed")}catch(x){_.error("SYSTEM","Periodic cleanup failed",{},x)}},y),_.info("SYSTEM","Started periodic cleanup (every 5 minutes)")}catch(e){throw _.error("SYSTEM","Background initialization failed",{},e),e}}getActiveAgent(){return this.sdkAgent}startSessionProcessor(e,r){if(!e)return;e.abortController.signal.aborted&&(e.abortController=new AbortController,_.debug("SYSTEM","Reset AbortController for session restart",{sessionId:e.sessionDbId}));let n=e.sessionDbId,s=this.getActiveAgent(),i=s.constructor.name;_.info("SYSTEM",`Starting generator (${r}) using ${i}`,{sessionId:n}),e.generatorPromise=s.startSession(e,this).catch(a=>{_.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project,provider:i},a)}).finally(()=>{e.generatorPromise=null,this.broadcastProcessingStatus()})}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(Fi(),Ga)),n=new r(this.dbManager.getSessionStore().db,3),s=this.dbManager.getSessionStore(),i=1800*1e3,a=Date.now()-i;try{let l=s.db.prepare(` SELECT s.id FROM sdk_sessions s WHERE s.status = 'active' AND s.started_at_epoch < ? @@ -1970,7 +1970,7 @@ ${s}`;try{let a=(0,qe.execSync)(`echo ${JSON.stringify(i)} | claude -p --model c SET status = 'failed', failed_at_epoch = ? WHERE status = 'pending' AND session_db_id IN (${p}) - `).run(Date.now(),...u);h.changes>0&&_.info("SYSTEM",`Marked ${h.changes} pending messages from stale sessions as failed`)}}catch(l){_.error("SYSTEM","Failed to clean up stale sessions",{},l)}let o=n.getSessionsWithPendingMessages(),c={totalPendingSessions:o.length,sessionsStarted:0,sessionsSkipped:0,startedSessionIds:[]};if(o.length===0)return c;_.info("SYSTEM",`Processing up to ${e} of ${o.length} pending session queues`);for(let l of o){if(c.sessionsStarted>=e)break;try{if(this.sessionManager.getSession(l)?.generatorPromise){c.sessionsSkipped++;continue}let p=this.sessionManager.initializeSession(l);_.info("SYSTEM",`Starting processor for session ${l}`,{project:p.project,pendingCount:n.getPendingCount(l)}),this.startSessionProcessor(p,"startup-recovery"),c.sessionsStarted++,c.startedSessionIds.push(l),await new Promise(d=>setTimeout(d,100))}catch(u){_.error("SYSTEM",`Failed to process session ${l}`,{},u),c.sessionsSkipped++}}return c}async shutdown(){this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null,_.info("SYSTEM","Stopped periodic orphan cleanup")),dP(),pP();let{stopSessionCleanupTimer:e}=await Promise.resolve().then(()=>(mE(),C6));e(),await TM({server:this.server.getHttpServer(),sessionManager:this.sessionManager,mcpClient:this.mcpClient,dbManager:this.dbManager})}broadcastProcessingStatus(){let e=this.sessionManager.isAnySessionProcessing(),r=this.sessionManager.getTotalActiveWork(),n=this.sessionManager.getActiveSessionCount();_.info("WORKER","Broadcasting processing status",{isProcessing:e,queueDepth:r,activeSessions:n}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:e,queueDepth:r})}};async function XTe(){let t=process.argv[2],e=un();function r(n,s){let i=KG(n,s);console.log(JSON.stringify(i)),process.exit(0)}switch(t){case"start":{JG()||(_.error("SYSTEM","License verification failed"),r("error","UNLICENSED: Using Pilot Shell without a valid license is not permitted. Subscribe at https://pilot-shell.com then run: pilot activate "));let n=await Fw(e,__filename);n.ready?(_.info("SYSTEM","Worker started successfully"),r("ready")):(_.error("SYSTEM",n.error??"Worker failed to start"),r("error",n.error))}case"stop":await ep(e),await Xu(e,Ia(15e3))||_.warn("SYSTEM","Port did not free up after shutdown",{port:e}),ds(),_.info("SYSTEM","Worker stopped successfully"),process.exit(0);case"restart":{_.info("SYSTEM","Restarting worker"),await ep(e),await Xu(e,Ia(15e3))||(_.error("SYSTEM","Port did not free up after shutdown, aborting restart",{port:e}),process.exit(0)),ds();let s=Ju(__filename,e);s===void 0&&(_.error("SYSTEM","Failed to spawn worker daemon during restart"),process.exit(0)),Ku({pid:s,port:e,startedAt:new Date().toISOString()}),await Yu(e,Ia(3e4))||(ds(),_.error("SYSTEM","Worker failed to restart"),process.exit(0)),_.info("SYSTEM","Worker restarted successfully"),process.exit(0)}case"status":{let{runCLI:n}=await Promise.resolve().then(()=>(fP(),mP));await n(process.argv.slice(2)),process.exit(0)}case"hook":{let n=process.argv[3],s=process.argv[4];(!n||!s)&&(console.error("Usage: pilot-memory hook "),console.error("Platforms: claude-code, raw"),console.error("Events: context, session-init, observation, summarize, user-message"),process.exit(1));try{await Fw(e,__filename);let{hookCommand:i}=await Promise.resolve().then(()=>(ZG(),WG));await i(n,s)}catch(i){_.debug("HOOK",`Hook wrapper error (fail-open) [${s}]: ${i instanceof Error?i.message:String(i)}`),console.log(JSON.stringify({continue:!0,suppressOutput:!0})),process.exit(0)}break}case"search":case"export":case"import":case"cleanup":case"backup":case"doctor":case"retention":case"vacuum":{let{runCLI:n}=await Promise.resolve().then(()=>(fP(),mP));await n(process.argv.slice(2)),process.exit(0)}default:await Yu(e,500)&&(_.info("SYSTEM","Another worker already healthy on port, exiting duplicate",{port:e}),process.exit(0)),process.on("unhandledRejection",(s,i)=>{_.failure("SYSTEM","Unhandled rejection in daemon mode",{promise:String(i)},s instanceof Error?s:new Error(String(s)))}),process.on("uncaughtException",s=>{_.failure("SYSTEM","Uncaught exception in daemon mode",{},s)}),new nx().start().catch(s=>{_.failure("SYSTEM","Worker failed to start",{},s),ds(),process.exit(0)})}}var eRe=typeof require<"u"&&typeof module<"u"?require.main===module||!module.parent:rRe.url===`file://${process.argv[1]}`||process.argv[1]?.endsWith("worker-service");eRe&&XTe().catch(t=>{_.debug("SYSTEM",`main() unhandled error: ${t instanceof Error?t.message:String(t)}`),process.exit(0)});0&&(module.exports={WorkerService,buildStatusOutput,verifyLicense}); + `).run(Date.now(),...u);h.changes>0&&_.info("SYSTEM",`Marked ${h.changes} pending messages from stale sessions as failed`)}}catch(l){_.error("SYSTEM","Failed to clean up stale sessions",{},l)}let o=n.getSessionsWithPendingMessages(),c={totalPendingSessions:o.length,sessionsStarted:0,sessionsSkipped:0,startedSessionIds:[]};if(o.length===0)return c;_.info("SYSTEM",`Processing up to ${e} of ${o.length} pending session queues`);for(let l of o){if(c.sessionsStarted>=e)break;try{if(this.sessionManager.getSession(l)?.generatorPromise){c.sessionsSkipped++;continue}let p=this.sessionManager.initializeSession(l);_.info("SYSTEM",`Starting processor for session ${l}`,{project:p.project,pendingCount:n.getPendingCount(l)}),this.startSessionProcessor(p,"startup-recovery"),c.sessionsStarted++,c.startedSessionIds.push(l),await new Promise(d=>setTimeout(d,100))}catch(u){_.error("SYSTEM",`Failed to process session ${l}`,{},u),c.sessionsSkipped++}}return c}async shutdown(){this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null,_.info("SYSTEM","Stopped periodic orphan cleanup")),cP(),oP();let{stopSessionCleanupTimer:e}=await Promise.resolve().then(()=>(uk(),T6));e(),await wM({server:this.server.getHttpServer(),sessionManager:this.sessionManager,mcpClient:this.mcpClient,dbManager:this.dbManager})}broadcastProcessingStatus(){let e=this.sessionManager.isAnySessionProcessing(),r=this.sessionManager.getTotalActiveWork(),n=this.sessionManager.getActiveSessionCount();_.info("WORKER","Broadcasting processing status",{isProcessing:e,queueDepth:r,activeSessions:n}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:e,queueDepth:r})}};async function ZTe(){let t=process.argv[2],e=un();function r(n,s){let i=HG(n,s);console.log(JSON.stringify(i)),process.exit(0)}switch(t){case"start":{BG()||(_.error("SYSTEM","License verification failed"),r("error","UNLICENSED: Using Pilot Shell without a valid license is not permitted. Subscribe at https://pilot-shell.com then run: pilot activate "));let n=await Lw(e,__filename);n.ready?(_.info("SYSTEM","Worker started successfully"),r("ready")):(_.error("SYSTEM",n.error??"Worker failed to start"),r("error",n.error))}case"stop":await Xu(e),await Yu(e,Pa(15e3))||_.warn("SYSTEM","Port did not free up after shutdown",{port:e}),ds(),_.info("SYSTEM","Worker stopped successfully"),process.exit(0);case"restart":{_.info("SYSTEM","Restarting worker"),await Xu(e),await Yu(e,Pa(15e3))||(_.error("SYSTEM","Port did not free up after shutdown, aborting restart",{port:e}),process.exit(0)),ds();let s=Ku(__filename,e);s===void 0&&(_.error("SYSTEM","Failed to spawn worker daemon during restart"),process.exit(0)),Vu({pid:s,port:e,startedAt:new Date().toISOString()}),await Qu(e,Pa(3e4))||(ds(),_.error("SYSTEM","Worker failed to restart"),process.exit(0)),_.info("SYSTEM","Worker restarted successfully"),process.exit(0)}case"status":{let{runCLI:n}=await Promise.resolve().then(()=>(uP(),lP));await n(process.argv.slice(2)),process.exit(0)}case"hook":{let n=process.argv[3],s=process.argv[4];(!n||!s)&&(console.error("Usage: pilot-memory hook "),console.error("Platforms: claude-code, raw"),console.error("Events: context, session-init, observation, summarize, user-message"),process.exit(1));try{await Lw(e,__filename);let{hookCommand:i}=await Promise.resolve().then(()=>(UG(),LG));await i(n,s)}catch(i){_.debug("HOOK",`Hook wrapper error (fail-open) [${s}]: ${i instanceof Error?i.message:String(i)}`),console.log(JSON.stringify({continue:!0,suppressOutput:!0})),process.exit(0)}break}case"search":case"export":case"import":case"cleanup":case"backup":case"doctor":case"retention":case"vacuum":{let{runCLI:n}=await Promise.resolve().then(()=>(uP(),lP));await n(process.argv.slice(2)),process.exit(0)}default:await Qu(e,500)&&(_.info("SYSTEM","Another worker already healthy on port, exiting duplicate",{port:e}),process.exit(0)),process.on("unhandledRejection",(s,i)=>{_.failure("SYSTEM","Unhandled rejection in daemon mode",{promise:String(i)},s instanceof Error?s:new Error(String(s)))}),process.on("uncaughtException",s=>{_.failure("SYSTEM","Uncaught exception in daemon mode",{},s)}),new ex().start().catch(s=>{_.failure("SYSTEM","Worker failed to start",{},s),ds(),process.exit(0)})}}var GTe=typeof require<"u"&&typeof module<"u"?require.main===module||!module.parent:KTe.url===`file://${process.argv[1]}`||process.argv[1]?.endsWith("worker-service");GTe&&ZTe().catch(t=>{_.debug("SYSTEM",`main() unhandled error: ${t instanceof Error?t.message:String(t)}`),process.exit(0)});0&&(module.exports={WorkerService,buildStatusOutput,verifyLicense}); /*! Bundled license information: depd/index.js: diff --git a/pilot/settings.json b/pilot/settings.json index 956fea82..7132e8dd 100644 --- a/pilot/settings.json +++ b/pilot/settings.json @@ -95,6 +95,7 @@ "excludeDefault": true }, "prefersReducedMotion": true, + "preferredNotifChannel": "auto", "showTurnDuration": true, "alwaysThinkingEnabled": true, "showThinkingSummaries": true, @@ -107,6 +108,7 @@ "pr": "" }, "effortLevel": "xhigh", + "viewMode": "verbose", "statusLine": { "type": "command", "command": "~/.pilot/bin/pilot statusline", diff --git a/pilot/skills/benchmark/orchestrator.md b/pilot/skills/benchmark/orchestrator.md index 8938336a..da8716ee 100644 --- a/pilot/skills/benchmark/orchestrator.md +++ b/pilot/skills/benchmark/orchestrator.md @@ -2,7 +2,6 @@ name: benchmark description: Benchmark and evaluate Claude Code rules, skills, and workflows with quantitative before/after comparisons. Use whenever the user wants to measure the impact of rules/skills/workflows, compare versions, or validate that a rule pack improves outputs. user-invocable: true -model: opus --- # /benchmark — Benchmark & Evaluation Framework @@ -27,6 +26,8 @@ Two target types — both run in isolated `/tmp/pilot-bench-*` directories, one Workflow-style skills like `/spec` are benchmarked as `type=skill` — present vs absent. +**Model selection:** Pilot-shipped skills (`spec-plan`, `fix`, `prd`, `create-skill`, `setup-rules`, …) don't carry a `model:` in their frontmatter — active model is controlled by Claude Code's `/model`. The runner defaults those benchmarks to `claude-sonnet-4-6`; pass `--model opus` explicitly to run them on Opus instead. Bot-* skills still carry hard-coded `model: sonnet`. + ## Isolation guarantees - **Per-run filesystem sandbox.** Each (eval, config, run) triple gets its own `/tmp/pilot-bench-*/` cwd. Use relative paths in prompts, or the `{sandbox}` placeholder when you need an absolute path. Hardcoded `/tmp//` in prompts is flagged at load time. diff --git a/pilot/skills/benchmark/scripts/isolation.py b/pilot/skills/benchmark/scripts/isolation.py index 53f9f0c6..e03f7d58 100644 --- a/pilot/skills/benchmark/scripts/isolation.py +++ b/pilot/skills/benchmark/scripts/isolation.py @@ -213,8 +213,7 @@ def isolate_global_contamination(paths: list[Path]) -> Iterator[list[Path]]: _write_manifest(planned) except OSError as err: print( - f" ⚠ could not write recovery manifest ({err}); aborting " - "isolation to stay fail-safe", + f" ⚠ could not write recovery manifest ({err}); aborting isolation to stay fail-safe", file=sys.stderr, ) yield [] diff --git a/pilot/skills/benchmark/scripts/runner.py b/pilot/skills/benchmark/scripts/runner.py index 4e94e11e..ce30ea40 100644 --- a/pilot/skills/benchmark/scripts/runner.py +++ b/pilot/skills/benchmark/scripts/runner.py @@ -745,8 +745,10 @@ def main() -> None: "--model", default=None, help=( - "Executor model. Default: skill's frontmatter `model:` (alias → ID), " - f"falling back to {DEFAULT_FALLBACK_MODEL} for rules or skills without one." + "Executor model. Default: target skill's frontmatter `model:` if present, " + f"otherwise {DEFAULT_FALLBACK_MODEL} for rules and for Pilot-shipped skills " + "(spec-plan, fix, prd, …) which no longer carry frontmatter model. " + "Pass --model opus explicitly to benchmark them on Opus instead." ), ) parser.add_argument( diff --git a/pilot/skills/benchmark/scripts/utils.py b/pilot/skills/benchmark/scripts/utils.py index 504126ef..1cf70e11 100644 --- a/pilot/skills/benchmark/scripts/utils.py +++ b/pilot/skills/benchmark/scripts/utils.py @@ -63,6 +63,7 @@ def strip_conditional_loading_frontmatter(content: str) -> tuple[str, list[str]] new_lines = [lines[0], *new_front, *lines[end_idx:]] return "\n".join(new_lines), removed + VALID_TARGET_TYPES: set[str] = {"skill", "rules"} TargetType = Literal["skill", "rules"] diff --git a/pilot/skills/benchmark/steps/04-execute.md b/pilot/skills/benchmark/steps/04-execute.md index 586bf8e9..fdfdcc8c 100644 --- a/pilot/skills/benchmark/steps/04-execute.md +++ b/pilot/skills/benchmark/steps/04-execute.md @@ -70,7 +70,7 @@ Read the final BashOutput and: | Flag | Default | When to override | |------|---------|------------------| | `--runs N` | `1` | `2-3` only when measuring variance — N runs are now parallelized across workers, so wall time grows sub-linearly. | -| `--model ` | skill frontmatter → `claude-sonnet-4-6` | Cross-model comparison. Accepts `opus`/`sonnet`/`haiku` aliases or explicit `claude-...` IDs. | +| `--model ` | skill frontmatter → `claude-sonnet-4-6` | Cross-model comparison. Accepts `opus`/`sonnet`/`haiku` aliases or explicit `claude-...` IDs. **Pilot-shipped skills (`spec-plan`, `fix`, `prd`, …) don't carry frontmatter `model:` — those benchmarks default to Sonnet; pass `--model opus` to run them on Opus instead.** | | `--grader-model ` | same as `--model` | Run the grader at a different tier (rare — pairing them avoids "smart writer judged by dumb grader" artifacts). | | `--configs with,without` | both | Smoke test one side. | | `--workers N` | `4` | Drop to `2` when running opus to be kinder to rate limits. For small eval sets bump to `min(total_runs, 8)` so every run lands in the first wave (3 evals × 2 configs × 1 run = 6 → `--workers 6` cuts wall time roughly in half). The runner submits one pool task per (eval, config, run_idx) so workers stay saturated. | diff --git a/pilot/skills/benchmark/tests/test_aggregate_benchmark.py b/pilot/skills/benchmark/tests/test_aggregate_benchmark.py index a5a8355b..efa69ba0 100644 --- a/pilot/skills/benchmark/tests/test_aggregate_benchmark.py +++ b/pilot/skills/benchmark/tests/test_aggregate_benchmark.py @@ -143,17 +143,11 @@ def test_parses_complete_run(self, tmp_path: Path) -> None: assert len(result["expectations"]) == 1 assert result["expectations"][0]["text"] == "did the thing" - def test_falls_back_to_timing_json_when_grading_missing_timing( - self, tmp_path: Path - ) -> None: + def test_falls_back_to_timing_json_when_grading_missing_timing(self, tmp_path: Path) -> None: run_dir = tmp_path / "run-1" run_dir.mkdir() - _ = (run_dir / "grading.json").write_text( - json.dumps({"summary": {"pass_rate": 1.0}, "expectations": []}) - ) - _ = (run_dir / "timing.json").write_text( - json.dumps({"total_duration_seconds": 7.5, "total_tokens": 500}) - ) + _ = (run_dir / "grading.json").write_text(json.dumps({"summary": {"pass_rate": 1.0}, "expectations": []})) + _ = (run_dir / "timing.json").write_text(json.dumps({"total_duration_seconds": 7.5, "total_tokens": 500})) result = _parse_run(run_dir, eval_id=1) assert result is not None assert result["time_seconds"] == 7.5 @@ -264,9 +258,7 @@ def test_empty_config_yields_zero_summary(self) -> None: class TestGenerateBenchmark: def test_full_pipeline(self, tmp_path: Path) -> None: bench = _make_workspace(tmp_path, ["with_skill", "without_skill"]) - snapshot: BenchmarkSnapshot = generate_benchmark( - bench, skill_name="my-skill", skill_path="/some/path" - ) + snapshot: BenchmarkSnapshot = generate_benchmark(bench, skill_name="my-skill", skill_path="/some/path") assert snapshot["metadata"].get("skill_name") == "my-skill" assert snapshot["metadata"].get("skill_path") == "/some/path" assert sorted(snapshot["metadata"].get("evals_run", [])) == [1, 2] diff --git a/pilot/skills/benchmark/tests/test_isolation.py b/pilot/skills/benchmark/tests/test_isolation.py index 6708b4fd..4bdaf2be 100644 --- a/pilot/skills/benchmark/tests/test_isolation.py +++ b/pilot/skills/benchmark/tests/test_isolation.py @@ -42,9 +42,7 @@ def test_no_path_returns_empty(self) -> None: target: TargetConfig = {"type": "rules"} assert detect_global_contamination(target) == [] - def test_rules_file_with_matching_global( - self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path - ) -> None: + def test_rules_file_with_matching_global(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None: tmp_home = tmp_path / "home" self._with_home(monkeypatch, tmp_home) (tmp_home / ".claude" / "rules").mkdir(parents=True) @@ -59,9 +57,7 @@ def test_rules_file_with_matching_global( result = detect_global_contamination(target) assert result == [global_rule] - def test_rules_file_skips_if_target_is_global_itself( - self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path - ) -> None: + def test_rules_file_skips_if_target_is_global_itself(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None: tmp_home = tmp_path / "home" self._with_home(monkeypatch, tmp_home) (tmp_home / ".claude" / "rules").mkdir(parents=True) @@ -73,9 +69,7 @@ def test_rules_file_skips_if_target_is_global_itself( target: TargetConfig = {"type": "rules", "path": str(global_rule)} assert detect_global_contamination(target) == [] - def test_rules_directory_finds_per_file_matches( - self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path - ) -> None: + def test_rules_directory_finds_per_file_matches(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None: tmp_home = tmp_path / "home" self._with_home(monkeypatch, tmp_home) (tmp_home / ".claude" / "rules").mkdir(parents=True) @@ -92,9 +86,7 @@ def test_rules_directory_finds_per_file_matches( names = sorted(p.name for p in result) assert names == ["a.md", "b.md"] - def test_skill_with_matching_global( - self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path - ) -> None: + def test_skill_with_matching_global(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None: tmp_home = tmp_path / "home" self._with_home(monkeypatch, tmp_home) (tmp_home / ".claude" / "skills" / "my-skill").mkdir(parents=True) @@ -110,9 +102,7 @@ def test_skill_with_matching_global( result = detect_global_contamination(target) assert result == [tmp_home / ".claude" / "skills" / "my-skill"] - def test_no_match_returns_empty( - self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path - ) -> None: + def test_no_match_returns_empty(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None: tmp_home = tmp_path / "home" self._with_home(monkeypatch, tmp_home) project_rule = tmp_path / "rules" / "unique.md" @@ -170,9 +160,7 @@ def test_multiple_paths_all_restored(self, tmp_path: Path) -> None: assert a.read_text() == "A" assert b.read_text() == "B" - def test_collision_leaves_source_intact( - self, tmp_path: Path, capsys: pytest.CaptureFixture[str] - ) -> None: + def test_collision_leaves_source_intact(self, tmp_path: Path, capsys: pytest.CaptureFixture[str]) -> None: victim = tmp_path / "c.md" _ = victim.write_text("c") # Pre-create the exact hidden filename to simulate a stale leftover. @@ -220,9 +208,7 @@ def test_manifest_writes_atomically(self, tmp_path: Path) -> None: assert data["pid"] == os.getpid() assert len(data["pairs"]) == 1 - def test_recover_restores_from_dead_pid_manifest( - self, tmp_path: Path - ) -> None: + def test_recover_restores_from_dead_pid_manifest(self, tmp_path: Path) -> None: # Simulate a crashed prior run: rename a file and write a manifest # with a *dead* PID so the recovery code will pick it up. src = tmp_path / "rule.md" @@ -233,9 +219,7 @@ def test_recover_restores_from_dead_pid_manifest( dead_pid = 99999 # Won't be alive on any reasonable system during a test. isolation.RECOVERY_DIR.mkdir(parents=True, exist_ok=True) manifest = isolation.RECOVERY_DIR / f"hidden-{dead_pid}.json" - _ = manifest.write_text( - json.dumps({"pid": dead_pid, "pairs": [[str(src), str(hidden)]]}) - ) + _ = manifest.write_text(json.dumps({"pid": dead_pid, "pairs": [[str(src), str(hidden)]]})) with patch("scripts.isolation._process_alive", return_value=False): restored = recover_stale_manifests() @@ -253,9 +237,7 @@ def test_recover_skips_live_pid(self, tmp_path: Path) -> None: hidden = tmp_path / "x.md.pilot-bench-hidden-OTHER" _ = hidden.write_text("still hidden") manifest = isolation.RECOVERY_DIR / "hidden-12345.json" - _ = manifest.write_text( - json.dumps({"pid": 12345, "pairs": [[str(src), str(hidden)]]}) - ) + _ = manifest.write_text(json.dumps({"pid": 12345, "pairs": [[str(src), str(hidden)]]})) with patch("scripts.isolation._process_alive", return_value=True): restored = recover_stale_manifests() @@ -272,9 +254,7 @@ def test_recover_tolerates_corrupt_manifest(self, tmp_path: Path) -> None: restored = recover_stale_manifests() assert restored == 0 - def test_recover_when_dir_missing_returns_zero( - self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch - ) -> None: + def test_recover_when_dir_missing_returns_zero(self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setattr(isolation, "RECOVERY_DIR", tmp_path / "does-not-exist") assert recover_stale_manifests() == 0 @@ -318,9 +298,7 @@ def flaky_rename(self: Path, target: Path) -> Path: with isolate_global_contamination([victim]): pass - assert _manifest_path(os.getpid()).exists(), ( - "manifest must persist so next-run recovery can retry" - ) + assert _manifest_path(os.getpid()).exists(), "manifest must persist so next-run recovery can retry" # Manually clean up the hidden leftover so the test tmp_path disposal works. for hidden in tmp_path.glob("surv.md.pilot-bench-hidden-*"): hidden.unlink() diff --git a/pilot/skills/benchmark/tests/test_runner.py b/pilot/skills/benchmark/tests/test_runner.py index d9b509f8..8956b76c 100644 --- a/pilot/skills/benchmark/tests/test_runner.py +++ b/pilot/skills/benchmark/tests/test_runner.py @@ -206,12 +206,7 @@ def test_with_rules_target_strips_paths_frontmatter(self, tmp_path: Path) -> Non rules_src = tmp_path / "src" / "rules" rules_src.mkdir(parents=True) original = ( - "---\n" - "name: standards-python\n" - 'paths:\n - "**/*.py"\n' - "description: Python rules\n" - "---\n" - "# Python content\n" + '---\nname: standards-python\npaths:\n - "**/*.py"\ndescription: Python rules\n---\n# Python content\n' ) _ = (rules_src / "standards-python.md").write_text(original) target: TargetConfig = { @@ -250,14 +245,7 @@ def test_with_skill_target_strips_skill_md_paths(self, tmp_path: Path) -> None: """SKILL.md frontmatter with conditional fields gets stripped on install.""" skill_src = tmp_path / "src" / "my-skill" skill_src.mkdir(parents=True) - original = ( - "---\n" - "name: my-skill\n" - "description: x\n" - "paths:\n - src/**\n" - "---\n" - "# body\n" - ) + original = "---\nname: my-skill\ndescription: x\npaths:\n - src/**\n---\n# body\n" _ = (skill_src / "SKILL.md").write_text(original) target: TargetConfig = {"type": "skill", "path": str(skill_src), "name": "my-skill"} dest_root = tmp_path / "dest" @@ -327,9 +315,7 @@ def _success_stream(duration_ms: int = 100, total_tokens: int = 5) -> str: class TestExecuteRun: - def _run( - self, tmp_path: Path, *, stdout: str, stderr: str = "", returncode: int = 0 - ): + def _run(self, tmp_path: Path, *, stdout: str, stderr: str = "", returncode: int = 0): config_dir = tmp_path / "cfg" run_dir = tmp_path / "out" config_dir.mkdir() @@ -540,9 +526,7 @@ def test_relative_paths_pass(self) -> None: assert validate_prompt_isolation("write the result to slugify.py") is None def test_sandbox_placeholder_passes(self) -> None: - assert ( - validate_prompt_isolation("write the result to {sandbox}/slugify.py") is None - ) + assert validate_prompt_isolation("write the result to {sandbox}/slugify.py") is None def test_hardcoded_tmp_warns(self) -> None: warning = validate_prompt_isolation("save to /tmp/testing-bench-1/out.py") @@ -552,9 +536,4 @@ def test_hardcoded_tmp_warns(self) -> None: def test_tmp_plus_sandbox_ok(self) -> None: # If the prompt uses both /tmp/ and {sandbox}, trust the author — they # may be referencing a scratch path alongside the sandbox. - assert ( - validate_prompt_isolation( - "save to {sandbox}/out.py (reference: /tmp/somewhere.log)" - ) - is None - ) + assert validate_prompt_isolation("save to {sandbox}/out.py (reference: /tmp/somewhere.log)") is None diff --git a/pilot/skills/benchmark/tests/test_utils.py b/pilot/skills/benchmark/tests/test_utils.py index aaae2319..c545dc99 100644 --- a/pilot/skills/benchmark/tests/test_utils.py +++ b/pilot/skills/benchmark/tests/test_utils.py @@ -27,13 +27,7 @@ def _make_skill(dir_path: Path, *, filename: str = "SKILL.md", content: str | None = None) -> Path: dir_path.mkdir(parents=True, exist_ok=True) if content is None: - content = ( - "---\n" - 'name: my-skill\n' - 'description: "A short description"\n' - "---\n" - "\n# Body\n" - ) + content = '---\nname: my-skill\ndescription: "A short description"\n---\n\n# Body\n' file_path = dir_path / filename _ = file_path.write_text(content) return file_path @@ -53,14 +47,7 @@ def test_falls_back_to_orchestrator_md(self, tmp_path: Path) -> None: assert name == "my-skill" def test_handles_block_scalar_description(self, tmp_path: Path) -> None: - body = ( - "---\n" - "name: x\n" - "description: >\n" - " This is a long description\n" - " that spans two lines\n" - "---\n" - ) + body = "---\nname: x\ndescription: >\n This is a long description\n that spans two lines\n---\n" _ = _make_skill(tmp_path, content=body) _name, desc, _ = parse_skill_md(tmp_path) assert "two lines" in desc @@ -194,9 +181,7 @@ def test_failure_carries_reason(self) -> None: assert bad.reason == "timeout" def test_isinstance_narrowing(self) -> None: - result: ExecuteSuccess | ExecuteFailure = ExecuteSuccess( - duration_ms=1, total_tokens=1, run_dir="/x" - ) + result: ExecuteSuccess | ExecuteFailure = ExecuteSuccess(duration_ms=1, total_tokens=1, run_dir="/x") assert isinstance(result, ExecuteSuccess) assert not isinstance(result, ExecuteFailure) @@ -269,14 +254,7 @@ def test_strips_multiline_paths_list(self) -> None: assert "description: Python rules" in out def test_strips_both_path_and_paths(self) -> None: - content = ( - "---\n" - "name: x\n" - "path: legacy/path.md\n" - "paths:\n - new\n" - "---\n" - "# body\n" - ) + content = "---\nname: x\npath: legacy/path.md\npaths:\n - new\n---\n# body\n" out, removed = strip_conditional_loading_frontmatter(content) assert sorted(removed) == ["path", "paths"] assert "path:" not in out @@ -285,14 +263,7 @@ def test_strips_both_path_and_paths(self) -> None: def test_preserves_indented_content_in_other_fields(self) -> None: # An indented line that does NOT belong to paths shouldn't be eaten. - content = ( - "---\n" - 'description: |\n multi\n line\n' - 'paths:\n - "**/*.py"\n' - "name: x\n" - "---\n" - "# body\n" - ) + content = '---\ndescription: |\n multi\n line\npaths:\n - "**/*.py"\nname: x\n---\n# body\n' out, removed = strip_conditional_loading_frontmatter(content) assert removed == ["paths"] assert "multi" in out and "line" in out @@ -308,13 +279,7 @@ def test_unterminated_frontmatter_unchanged(self) -> None: def test_only_strips_at_start_of_line(self) -> None: # A `paths:` mention inside a description value (indented) is part of # that field's continuation, not a separate key. We don't strip it. - content = ( - "---\n" - "description: |\n" - " the user types `paths:` to do X\n" - "name: x\n" - "---\n" - ) + content = "---\ndescription: |\n the user types `paths:` to do X\nname: x\n---\n" out, removed = strip_conditional_loading_frontmatter(content) assert removed == [] assert "user types `paths:`" in out diff --git a/pilot/skills/create-skill/orchestrator.md b/pilot/skills/create-skill/orchestrator.md index 161c29e1..a5fc6a8e 100644 --- a/pilot/skills/create-skill/orchestrator.md +++ b/pilot/skills/create-skill/orchestrator.md @@ -2,7 +2,6 @@ name: create-skill description: Create a well-structured skill — provide a topic to explore the codebase and build a skill interactively, or capture a workflow from the current session user-invocable: true -model: opus --- # /create-skill — Skill Creator diff --git a/pilot/skills/fix/orchestrator.md b/pilot/skills/fix/orchestrator.md index 6fb4fb97..64e34401 100644 --- a/pilot/skills/fix/orchestrator.md +++ b/pilot/skills/fix/orchestrator.md @@ -3,7 +3,6 @@ name: fix description: "Bugfix workflow — investigate, RED test, fix, verify end-to-end, done. Standard command for bugs. Stops cleanly and asks the user to re-invoke with /spec when the bug exceeds this workflow's scope." argument-hint: "" user-invocable: true -model: opus --- # /fix — Bugfix Workflow diff --git a/pilot/skills/fix/steps/06-finalise.md b/pilot/skills/fix/steps/06-finalise.md index 2d6ca0d0..b4b1999f 100644 --- a/pilot/skills/fix/steps/06-finalise.md +++ b/pilot/skills/fix/steps/06-finalise.md @@ -89,7 +89,6 @@ Run **only** when the user explicitly picked "Run Codex adversarial review" in 6 3. **Launch the task in background.** Use `task --background --prompt-file` (the companion's own background mode is supported for `task` — unlike `review`/`adversarial-review`). - ⛔ **Launch via the `Bash` tool, NEVER `ctx_execute`.** The Codex runtime broker socket is not reachable from sandboxed subprocesses; `ctx_execute` launches print a synthetic task ID and silently never register. ``` Bash( command="cd $PROJECT_ROOT && node $CODEX_COMPANION task --background --prompt-file \"$PROMPT_FILE\"", @@ -132,7 +131,7 @@ except Exception: print('parse_error')" 2>/dev/null) node "$CODEX_COMPANION" result "$JOB_ID" --json > /tmp/codex-fix-result-$$.json ``` - Read `/tmp/codex-fix-result-$$.json` via `ctx_execute_file`. Verify `storedJob.status === "completed"`, then parse `storedJob.result.rawOutput` as JSON (`{verdict, summary, findings, next_steps}`). If JSON parse fails, fall back to `storedJob.rendered` and surface as a suggestion-level finding. + Read `/tmp/codex-fix-result-$$.json` with the `Read` tool. Verify `storedJob.status === "completed"`, then parse `storedJob.result.rawOutput` as JSON (`{verdict, summary, findings, next_steps}`). If JSON parse fails, fall back to `storedJob.rendered` and surface as a suggestion-level finding. 5. **Act on findings — same severity → action map as `/spec-verify`:** diff --git a/pilot/skills/prd/orchestrator.md b/pilot/skills/prd/orchestrator.md index 66e726c7..2fdafc0b 100644 --- a/pilot/skills/prd/orchestrator.md +++ b/pilot/skills/prd/orchestrator.md @@ -3,7 +3,6 @@ name: prd description: "Generate Product Requirements Documents with optional research — brainstorm, challenge assumptions, define scope" argument-hint: "" user-invocable: true -model: opus --- # /prd - Generate Product Requirements Documents diff --git a/pilot/skills/setup-rules/orchestrator.md b/pilot/skills/setup-rules/orchestrator.md index 353c7a9f..b0fc0b18 100644 --- a/pilot/skills/setup-rules/orchestrator.md +++ b/pilot/skills/setup-rules/orchestrator.md @@ -2,7 +2,6 @@ name: setup-rules description: Set up and audit project rules — reads codebase, generates modular rules, documents MCP servers user-invocable: true -model: opus --- # /setup-rules - Set Up Project Rules diff --git a/pilot/skills/spec-bugfix-plan/orchestrator.md b/pilot/skills/spec-bugfix-plan/orchestrator.md index 04f5d368..f2e3c9da 100644 --- a/pilot/skills/spec-bugfix-plan/orchestrator.md +++ b/pilot/skills/spec-bugfix-plan/orchestrator.md @@ -3,7 +3,6 @@ name: spec-bugfix-plan description: "Bugfix spec planning phase - investigate root cause, design fix, get approval" argument-hint: " or " user-invocable: false -model: opus hooks: Stop: - command: uv run --no-project python "${CLAUDE_PLUGIN_ROOT}/hooks/spec_plan_validator.py" diff --git a/pilot/skills/spec-bugfix-plan/steps/00-setup-and-red-flags.md b/pilot/skills/spec-bugfix-plan/steps/00-setup-and-red-flags.md index 7fa9a15e..2e4e71aa 100644 --- a/pilot/skills/spec-bugfix-plan/steps/00-setup-and-red-flags.md +++ b/pilot/skills/spec-bugfix-plan/steps/00-setup-and-red-flags.md @@ -5,10 +5,10 @@ **⛔ Run FIRST, before any other step.** Read all toggle env vars in a single Bash call: ```bash -echo "QUESTIONS=$PILOT_PLAN_QUESTIONS_ENABLED APPROVAL=$PILOT_PLAN_APPROVAL_ENABLED" +echo "QUESTIONS=$PILOT_PLAN_QUESTIONS_ENABLED APPROVAL=$PILOT_PLAN_APPROVAL_ENABLED MODEL_SWITCH=$PILOT_MODEL_SWITCH_ENABLED" ``` -Reference these values throughout: Steps 2.1/2.5 (questions) and 6 (approval). Bugfix planning does not run Codex — adversarial review only runs once per `/spec` invocation, on the implementation in `spec-verify`. +Reference these values throughout: Steps 2.1/2.5 (questions) and 6 (approval + Model Switching handoff). Bugfix planning does not run Codex — adversarial review only runs once per `/spec` invocation, on the implementation in `spec-verify`. ### 0.2 Red Flags — STOP and Follow Process diff --git a/pilot/skills/spec-bugfix-plan/steps/06-approval.md b/pilot/skills/spec-bugfix-plan/steps/06-approval.md index 3fdb7d3b..64e34ded 100644 --- a/pilot/skills/spec-bugfix-plan/steps/06-approval.md +++ b/pilot/skills/spec-bugfix-plan/steps/06-approval.md @@ -1,19 +1,74 @@ -## Step 6: Get User Approval +## Step 6: Get User Approval (and Model Switch Handoff) -**⛔ If `PILOT_PLAN_APPROVAL_ENABLED` is `"false"` (from Step 0),** skip this step: set `Approved: Yes` in the plan file automatically and immediately invoke `Skill(skill='spec-implement', args='')`. No AskUserQuestion, no notification. +### 6.0 Toggle interaction matrix -**When `PILOT_PLAN_APPROVAL_ENABLED` is NOT `"false"`:** +Pull `$PILOT_PLAN_APPROVAL_ENABLED` and `$PILOT_MODEL_SWITCH_ENABLED` from Step 0 and follow the matching row: + +| `planApproval` | `modelSwitch` | What this step does | +|----------------|---------------|----------------------| +| true | true | AskUserQuestion → on Yes: set Approved, **write handoff sentinel, print short handoff message, end turn** (user runs `/model …`, then any prompt resumes implementation via `spec_handoff_resume` hook) | +| true | false | AskUserQuestion → on Yes: set Approved, **auto-invoke `Skill('spec-implement')`** | +| false | true | Silently set `Approved: Yes`, write sentinel, print short handoff message, end turn | +| false | false | Silently set `Approved: Yes`, auto-invoke `Skill('spec-implement')` (legacy behaviour) | + +### 6.1 Notify (always) + +```bash +~/.pilot/bin/pilot notify plan_approval "Bugfix Plan Ready" " — annotate in Console or approve here" --plan-path "" 2>/dev/null || true +``` + +### 6.2 Approval + +**⛔ If `PILOT_PLAN_APPROVAL_ENABLED` is `"false"`:** set `Approved: Yes` in the plan file immediately, then jump to **6.3 Handoff decision**. + +**Otherwise — MANDATORY APPROVAL GATE:** -0. Notify: - ```bash - ~/.pilot/bin/pilot notify plan_approval "Bugfix Plan Ready" " — annotate in Console or approve here" --plan-path "" 2>/dev/null || true - ``` 1. Summarize: symptom → root cause → fix approach → task structure 2. AskUserQuestion: - - "Yes, proceed" — Approve as-is and start spec-implement + - "Yes, proceed" — Approve as-is - "No, I have feedback" — I've annotated in the Console or edited the plan file; process my feedback The user can pause at this prompt, annotate in the Console's Specifications tab (auto-saves), or edit the plan file directly, then pick option 2. No "ready" handshake required. -3. **Yes:** Set `Approved: Yes`, invoke `Skill(skill='spec-implement', args='')` - **No, I have feedback:** Re-run Step 5 (process Console annotations), re-read the plan file (in case the user edited it), then return to Step 6 and ask again. +3. **Yes:** Set `Approved: Yes`, then jump to **6.3 Handoff decision**. + **No, I have feedback:** Re-run Step 5 (process Console annotations), re-read the plan file (in case the user edited it), then return to 6.2 and ask again. **Other free-text feedback:** Incorporate the changes into the plan, then re-ask with a fresh AskUserQuestion. + +### 6.3 Handoff decision + +**If `PILOT_MODEL_SWITCH_ENABLED` is `"true"` (default):** write the handoff sentinel and print the short model-switch message, then end the turn. Do NOT invoke `Skill('spec-implement')` — the user will resume after optionally switching models, and the `spec_handoff_resume` hook will route the next prompt straight to implementation. + +```bash +mkdir -p "$HOME/.pilot/sessions/${PILOT_SESSION_ID:-default}" && \ + touch "$HOME/.pilot/sessions/${PILOT_SESSION_ID:-default}/spec-handoff-pending" +``` + +Then print this message **verbatim** (substitute the plan path): + +``` +Plan approved: + +Two ways to continue — pick what fits your context size: + + Option A — Fast (carries planning context): + Run `/model ` to switch models (optional), then type any prompt + (e.g. `continue`). Implementation resumes immediately with your full + planning session still in context. Claude Code will ask you to confirm + the model switch because the existing context is loaded into the new model, + which incurs additional cost. + + Option B — Clean start (fresh context): + Run `/clear`, then `/spec `. Starts a new session with just + the plan — lower token cost, useful if planning context is already large. + +Model options (for either path): + • `/model sonnet[1m]` — Sonnet 1M context, cost-effective (recommended) + • `/model sonnet` — Sonnet 200K context + • `/model opus[1m]` — Opus 1M context (stay on same context size as planning) + • `/model opus` — Opus 200K context + +Tip: turn off "Model Switching" in Console Settings → Automation to skip this pause next time. +``` + +After printing the message, end the turn — the stop guard's handoff sentinel will allow the stop, and the next user prompt will trigger `Skill('spec-implement', '')` automatically (Option A). For Option B the user runs `/clear` then `/spec `, which the dispatcher routes directly to implementation. + +**If `PILOT_MODEL_SWITCH_ENABLED` is `"false"`:** do NOT write a sentinel. Invoke `Skill(skill='spec-implement', args='')` directly. diff --git a/pilot/skills/spec-bugfix-verify/orchestrator.md b/pilot/skills/spec-bugfix-verify/orchestrator.md index b3af353f..4fc5947a 100644 --- a/pilot/skills/spec-bugfix-verify/orchestrator.md +++ b/pilot/skills/spec-bugfix-verify/orchestrator.md @@ -3,7 +3,6 @@ name: spec-bugfix-verify description: "Bugfix verification phase - tests, quality checks, fix confirmation" argument-hint: "" user-invocable: false -model: sonnet hooks: Stop: - command: uv run --no-project python "${CLAUDE_PLUGIN_ROOT}/hooks/spec_verify_validator.py" diff --git a/pilot/skills/spec-implement/orchestrator.md b/pilot/skills/spec-implement/orchestrator.md index 297c983e..a8084fcc 100644 --- a/pilot/skills/spec-implement/orchestrator.md +++ b/pilot/skills/spec-implement/orchestrator.md @@ -3,7 +3,6 @@ name: spec-implement description: "Spec implementation phase - TDD loop for each task in the plan" argument-hint: "" user-invocable: false -model: sonnet --- # /spec-implement - Implementation Phase diff --git a/pilot/skills/spec-plan/orchestrator.md b/pilot/skills/spec-plan/orchestrator.md index 334521d8..a04f627d 100644 --- a/pilot/skills/spec-plan/orchestrator.md +++ b/pilot/skills/spec-plan/orchestrator.md @@ -3,7 +3,6 @@ name: spec-plan description: "Spec planning phase - explore codebase, design plan, get approval" argument-hint: " or " user-invocable: false -model: opus hooks: Stop: - command: uv run --no-project python "${CLAUDE_PLUGIN_ROOT}/hooks/spec_plan_validator.py" diff --git a/pilot/skills/spec-plan/steps/00-setup-and-questions.md b/pilot/skills/spec-plan/steps/00-setup-and-questions.md index a959d4ea..7acb32bf 100644 --- a/pilot/skills/spec-plan/steps/00-setup-and-questions.md +++ b/pilot/skills/spec-plan/steps/00-setup-and-questions.md @@ -5,10 +5,10 @@ **⛔ Run FIRST, before any other step.** Read all toggle env vars in a single Bash call: ```bash -echo "QUESTIONS=$PILOT_PLAN_QUESTIONS_ENABLED REVIEWER=$PILOT_SPEC_REVIEW_ENABLED CODEX_SPEC=$PILOT_CODEX_SPEC_REVIEW_ENABLED APPROVAL=$PILOT_PLAN_APPROVAL_ENABLED" +echo "QUESTIONS=$PILOT_PLAN_QUESTIONS_ENABLED REVIEWER=$PILOT_SPEC_REVIEW_ENABLED CODEX_SPEC=$PILOT_CODEX_SPEC_REVIEW_ENABLED APPROVAL=$PILOT_PLAN_APPROVAL_ENABLED MODEL_SWITCH=$PILOT_MODEL_SWITCH_ENABLED" ``` -Reference these values throughout: Steps 4/6 (questions), 10 (reviewer + Codex — Codex controlled by Console Settings), and 12 (approval). +Reference these values throughout: Steps 4/6 (questions), 10 (reviewer + Codex — Codex controlled by Console Settings), and 12 (approval + Model Switching handoff). ### 0.2 Asking User Questions diff --git a/pilot/skills/spec-plan/steps/10-plan-verification.md b/pilot/skills/spec-plan/steps/10-plan-verification.md index 12f07399..8ffdbc0b 100644 --- a/pilot/skills/spec-plan/steps/10-plan-verification.md +++ b/pilot/skills/spec-plan/steps/10-plan-verification.md @@ -120,7 +120,6 @@ pathlib.Path(os.environ["PROMPT_FILE"]).write_text(text) 3. Launch the task in background. **⛔ For `task`, the companion's `--background` flag IS supported (unlike `review`/`adversarial-review` where only Claude Code's `Bash(run_in_background=true)` detaches).** Use the companion's own background mode here — the launch command returns the job ID immediately on stdout. Capture the job ID for collection. - ⛔ **Launch via the `Bash` tool, NEVER `ctx_execute`.** The Codex runtime broker socket is not reachable from sandboxed subprocesses; `ctx_execute` launches print a synthetic task ID and never register. ``` Bash( command="cd $PROJECT_ROOT && node $CODEX_COMPANION task --background --prompt-file \"$PROMPT_FILE\"", @@ -196,7 +195,7 @@ Run this as `Bash(run_in_background=true, timeout=600000)`. Plan reviews typical node "$CODEX_COMPANION" result "$JOB_ID" --json > /tmp/codex-task-result-$$.json ``` - Read `/tmp/codex-task-result-$$.json` via `ctx_execute_file` (or Read for small payloads). The relevant fields: + Read `/tmp/codex-task-result-$$.json` with the `Read` tool. The relevant fields: - `storedJob.status` — must be `"completed"`. If not, treat as a re-launch trigger; do not silently proceed. - `storedJob.result.rawOutput` — a string containing Codex's response. With our prompt, this is JSON matching the schema above. - `storedJob.rendered` — same content rendered for display; useful as a fallback if `rawOutput` is malformed. diff --git a/pilot/skills/spec-plan/steps/12-approval.md b/pilot/skills/spec-plan/steps/12-approval.md index 3eb327bb..cbb1d9ed 100644 --- a/pilot/skills/spec-plan/steps/12-approval.md +++ b/pilot/skills/spec-plan/steps/12-approval.md @@ -1,27 +1,79 @@ -## Step 12: Get User Approval +## Step 12: Get User Approval (and Model Switch Handoff) -**⛔ If `PILOT_PLAN_APPROVAL_ENABLED` is `"false"` (from Step 0),** skip this step: set `Approved: Yes` in the plan file automatically and immediately invoke `Skill(skill='spec-implement', args='')`. No AskUserQuestion, no notification. +### 12.0 Toggle interaction matrix -**When `PILOT_PLAN_APPROVAL_ENABLED` is NOT `"false"` — MANDATORY APPROVAL GATE:** +Pull `$PILOT_PLAN_APPROVAL_ENABLED` and `$PILOT_MODEL_SWITCH_ENABLED` from Step 0 and follow the matching row: -0. Notify: +| `planApproval` | `modelSwitch` | What this step does | +|----------------|---------------|----------------------| +| true | true | AskUserQuestion → on Yes: set Approved, **write handoff sentinel, print short handoff message, end turn** (user runs `/model …`, then any prompt resumes implementation via `spec_handoff_resume` hook) | +| true | false | AskUserQuestion → on Yes: set Approved, **auto-invoke `Skill('spec-implement')`** | +| false | true | Silently set `Approved: Yes`, write sentinel, print short handoff message, end turn | +| false | false | Silently set `Approved: Yes`, auto-invoke `Skill('spec-implement')` (legacy behaviour) | - ```bash - ~/.pilot/bin/pilot notify plan_approval "Plan Ready for Review" " — annotate in Console or approve here" --plan-path "" 2>/dev/null || true - ``` +### 12.1 Notify (always) -1. Summarize: goal, key tasks, approach +```bash +~/.pilot/bin/pilot notify plan_approval "Plan Ready for Review" " — annotate in Console or approve here" --plan-path "" 2>/dev/null || true +``` + +### 12.2 Approval + +**⛔ If `PILOT_PLAN_APPROVAL_ENABLED` is `"false"`:** skip the AskUserQuestion. Set `Approved: Yes` in the plan file immediately, then jump to **12.3 Handoff decision** below. +**Otherwise — MANDATORY APPROVAL GATE:** + +1. Summarize: goal, key tasks, approach 2. AskUserQuestion: - - "Yes, proceed with implementation" — Approve as-is and start spec-implement (TDD loop) + - "Yes, proceed with implementation" — Approve as-is - "No, I have feedback" — I've annotated in the Console or edited the plan file; process my feedback The user can pause at this prompt, annotate in the Console's Specifications tab (annotations auto-save), or edit the plan file directly, then pick option 2. No "ready" handshake required. Note: `Worktree:` field was already set at creation time (Step 2). Do NOT ask again here. -3. **If "Yes":** Set `Approved: Yes`, invoke `Skill(skill='spec-implement', args='')` - **If "No, I have feedback":** Re-run Step 11 (process Console annotations), re-read the plan file (in case the user edited it directly), then return to Step 12 and ask again. +3. **If "Yes":** Set `Approved: Yes` in the plan file, then jump to **12.3 Handoff decision**. + **If "No, I have feedback":** Re-run Step 11 (process Console annotations), re-read the plan file (in case the user edited it directly), then return to 12.2 and ask again. **If other free-text feedback (config values, threshold changes, clarifications):** This is NOT approval — incorporate the changes into the plan, then re-ask with a fresh AskUserQuestion. +### 12.3 Handoff decision + +**If `PILOT_MODEL_SWITCH_ENABLED` is `"true"` (default):** write the handoff sentinel and print the short model-switch message, then end the turn. Do NOT invoke `Skill('spec-implement')` — the user will resume after optionally switching models, and the `spec_handoff_resume` hook will route the next prompt straight to implementation. + +```bash +mkdir -p "$HOME/.pilot/sessions/${PILOT_SESSION_ID:-default}" && \ + touch "$HOME/.pilot/sessions/${PILOT_SESSION_ID:-default}/spec-handoff-pending" +``` + +Then print this message **verbatim** (substitute the plan path): + +``` +Plan approved: + +Two ways to continue — pick what fits your context size: + + Option A — Fast (carries planning context): + Run `/model ` to switch models (optional), then type any prompt + (e.g. `continue`). Implementation resumes immediately with your full + planning session still in context. Claude Code will ask you to confirm + the model switch because the existing context is loaded into the new model, + which incurs additional cost. + + Option B — Clean start (fresh context): + Run `/clear`, then `/spec `. Starts a new session with just + the plan — lower token cost, useful if planning context is already large. + +Model options (for either path): + • `/model sonnet[1m]` — Sonnet 1M context, cost-effective (recommended) + • `/model sonnet` — Sonnet 200K context + • `/model opus[1m]` — Opus 1M context (stay on same context size as planning) + • `/model opus` — Opus 200K context + +Tip: turn off "Model Switching" in Console Settings → Automation to skip this pause next time. +``` + +After printing the message, end the turn — the stop guard's handoff sentinel will allow the stop, and the next user prompt will trigger `Skill('spec-implement', '')` automatically (Option A). For Option B the user runs `/clear` then `/spec `, which the dispatcher routes directly to implementation. + +**If `PILOT_MODEL_SWITCH_ENABLED` is `"false"`:** do NOT write a sentinel. Invoke `Skill(skill='spec-implement', args='')` directly to continue plan → implement on the current model in the same session. + ARGUMENTS: $ARGUMENTS diff --git a/pilot/skills/spec-verify/orchestrator.md b/pilot/skills/spec-verify/orchestrator.md index 23c2311c..18da2d11 100644 --- a/pilot/skills/spec-verify/orchestrator.md +++ b/pilot/skills/spec-verify/orchestrator.md @@ -3,7 +3,6 @@ name: spec-verify description: "Spec verification phase - tests, execution, rules audit, code review" argument-hint: "" user-invocable: false -model: sonnet --- # /spec-verify - Verification Phase diff --git a/pilot/skills/spec-verify/steps/01-launch-review.md b/pilot/skills/spec-verify/steps/01-launch-review.md index ba0738fd..008ea8aa 100644 --- a/pilot/skills/spec-verify/steps/01-launch-review.md +++ b/pilot/skills/spec-verify/steps/01-launch-review.md @@ -114,7 +114,6 @@ pathlib.Path(os.environ["PROMPT_FILE"]).write_text(text) 3. Launch the task in background. **⛔ For `task`, the companion's `--background` flag IS supported** (unlike `review`/`adversarial-review`). Use the companion's own background mode — the launch command returns the job ID immediately on stdout. Capture the job ID for collection in Step 3. - ⛔ **Launch via the `Bash` tool, NEVER `ctx_execute`.** The Codex runtime broker socket is not reachable from sandboxed subprocesses; `ctx_execute` launches print a synthetic task ID and never register. ``` Bash( command="cd $PROJECT_ROOT && node $CODEX_COMPANION task --background --prompt-file \"$PROMPT_FILE\"", diff --git a/pilot/skills/spec-verify/steps/03-collect-results.md b/pilot/skills/spec-verify/steps/03-collect-results.md index 32908e37..bbe0960c 100644 --- a/pilot/skills/spec-verify/steps/03-collect-results.md +++ b/pilot/skills/spec-verify/steps/03-collect-results.md @@ -61,7 +61,7 @@ Run this as `Bash(run_in_background=true, timeout=600000)`. Code reviews typical node "$CODEX_COMPANION" result "$JOB_ID" --json > /tmp/codex-task-result-$$.json ``` - Read `/tmp/codex-task-result-$$.json` via `ctx_execute_file` (or Read for small payloads). The relevant fields: + Read `/tmp/codex-task-result-$$.json` with the `Read` tool. The relevant fields: - `storedJob.status` — must be `"completed"`. If `"failed"`, treat as a re-launch trigger; do not silently proceed. - `storedJob.result.rawOutput` — a string containing Codex's response. With our prompt template, this is JSON matching the `{verdict, summary, findings, next_steps}` schema. - `storedJob.rendered` — same content rendered for display; useful as a fallback if `rawOutput` is malformed. diff --git a/pilot/skills/spec-verify/steps/07-e2e-and-final-regression.md b/pilot/skills/spec-verify/steps/07-e2e-and-final-regression.md index 2189e0ba..4d461538 100644 --- a/pilot/skills/spec-verify/steps/07-e2e-and-final-regression.md +++ b/pilot/skills/spec-verify/steps/07-e2e-and-final-regression.md @@ -20,7 +20,7 @@ if curl -s --max-time 3 -o /dev/null -w '%{http_code}' "http://localhost:$PORT/" fi ``` -When the harness blocks `curl`, substitute `mcp__plugin_pilot_web-fetch__fetch_url` with a 3s timeout or run a `ctx_execute(language: "shell", code: "curl ...")` wrapper. +When the harness blocks `curl`, substitute `mcp__plugin_pilot_web-fetch__fetch_url` with a 3s timeout. #### Tier 2 — Start the local dev server yourself diff --git a/pilot/skills/spec/orchestrator.md b/pilot/skills/spec/orchestrator.md index a407de5d..661ff1bd 100644 --- a/pilot/skills/spec/orchestrator.md +++ b/pilot/skills/spec/orchestrator.md @@ -3,7 +3,6 @@ name: spec description: Spec-driven development - plan, implement, verify workflow with live Console annotations (annotate plans and code changes in real-time; agent reads annotations directly at review checkpoints) argument-hint: "" or "" user-invocable: true -model: sonnet --- # /spec - Unified Spec-Driven Development @@ -27,11 +26,11 @@ For a bugfix workflow without a plan file, users invoke `/fix` directly — that | Phase | Skill | Model | |-------|-------|-------| -| Feature Planning | `spec-plan` | Opus | -| Bugfix Planning | `spec-bugfix-plan` | Opus | -| Implementation | `spec-implement` | Sonnet | -| Feature Verification | `spec-verify` | Sonnet | -| Bugfix Verification | `spec-bugfix-verify` | Sonnet | -| Bugfix (separate command, `/fix`) | `fix` | Opus | - -> **Note:** Implementation and verification default to **Sonnet** for most tiers (Pro, Team, Enterprise, API) where Sonnet 1M is included. **Max plan** users default to **Opus** since Sonnet 1M is not available on Max. Users can override via Console Settings. +| Feature Planning | `spec-plan` | inherits `/model` (recommend Opus) | +| Bugfix Planning | `spec-bugfix-plan` | inherits `/model` (recommend Opus) | +| Implementation | `spec-implement` | inherits `/model` | +| Feature Verification | `spec-verify` | inherits `/model` | +| Bugfix Verification | `spec-bugfix-verify` | inherits `/model` | +| Bugfix (separate command, `/fix`) | `fix` | inherits `/model` | + +> **Note:** Every phase runs on the model the user has currently selected via Claude Code's `/model` command. The `spec-mode-guard` hook blocks `/spec` invocations when the active model is not Opus (planning's reasoning hop benefits most from Opus). With the **Model Switching** toggle ON (default), the planner stops after approval so you can run `/model ` and then type any prompt (e.g. `continue`) to resume — the `spec_handoff_resume` hook routes the next prompt directly to `spec-implement`, with no `/clear` and no `/spec ` re-invocation. With it OFF, plan → implement → verify run continuously on whichever model is active. Sub-agents (`spec-review`, `changes-review`, `web-search-agent`) are hard-coded to Sonnet because sub-agents do not support 1M context. diff --git a/pilot/ui/ExtensionsView.js b/pilot/ui/ExtensionsView.js index 940b36c5..7160764a 100644 --- a/pilot/ui/ExtensionsView.js +++ b/pilot/ui/ExtensionsView.js @@ -1,4 +1,4 @@ -import{a as n,j as e,M as Ue}from"./vendor-markdown.js";import{E as be,I as d,B as D,b as De,m as Ie,P as Oe}from"./viewer-bundle.js";import"./vendor-charts.js";import"./vendor-diff.js";function Ge(s){const[a,c]=n.useState([]),[r,b]=n.useState(!0),[y,w]=n.useState(null),j=n.useRef(!0),N=s?`?project=${encodeURIComponent(s)}`:"?all=true",o=n.useCallback(async()=>{try{b(!0);const u=await fetch(`/api/extensions${N}`);if(!u.ok)throw new Error(`Extensions fetch failed: ${u.status}`);const S=await u.json();if(!j.current)return;c(S.extensions),w(null)}catch(u){if(!j.current)return;w(u.message)}finally{j.current&&b(!1)}},[N]);n.useEffect(()=>(j.current=!0,o(),()=>{j.current=!1}),[o]);const v=n.useCallback(async(u,S,p,h)=>{const f=new URLSearchParams({scope:p,...s?{project:s}:{},...h?{pluginName:h}:{}}),x=await fetch(`/api/extensions/${encodeURIComponent(u)}/${encodeURIComponent(S)}?${f}`).catch(()=>null);return x!=null&&x.ok?x.json():null},[s]),C=n.useCallback(async(u,S,p,h,f)=>{const x=await fetch(`/api/extensions/${encodeURIComponent(u)}/${encodeURIComponent(S)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:p,scope:h,project:f??s??void 0})}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({}));return x.ok?{ok:!0}:{ok:!1,error:t.error||"Save failed"}},[s]),i=n.useCallback(async(u,S,p,h,f)=>{const x=await fetch(`/api/extensions/${encodeURIComponent(u)}/${encodeURIComponent(S)}/rename`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({newName:p,scope:h,project:f??s??void 0})}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({}));return x.ok?{ok:!0}:{ok:!1,error:t.error||"Rename failed"}},[s]),E=n.useCallback(async(u,S,p,h)=>{const f=new URLSearchParams({scope:p,...h??s?{project:h??s}:{}}),x=await fetch(`/api/extensions/${encodeURIComponent(u)}/${encodeURIComponent(S)}?${f}`,{method:"DELETE"}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({}));return x.ok?{ok:!0}:{ok:!1,error:t.error||"Delete failed"}},[s]),P=n.useCallback(async(u,S,p,h,f)=>{const x=await fetch(`/api/extensions/${encodeURIComponent(u)}/${encodeURIComponent(S)}/move`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({from:p,to:h,project:f??s??void 0})}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({}));return x.ok?{ok:!0}:{ok:!1,error:t.error||"Move failed"}},[s]);return{extensions:a,isLoading:r,error:y,refresh:o,readContent:v,saveContent:C,renameExtension:i,deleteExtension:E,moveExtension:P}}const _e={connected:!1,remoteUrl:null,subfolder:null,apmFormat:!1};function Ke(){const[s,a]=n.useState(_e),[c,r]=n.useState([]),[b,y]=n.useState(!0),[w,j]=n.useState(null),N=n.useRef(!0),o=n.useCallback(async()=>{try{const p=await fetch("/api/team-remote/status");if(!p.ok)throw new Error(`Status fetch failed: ${p.status}`);const h=await p.json();if(!N.current)return;if(a(h),j(null),h.connected){const f=await fetch("/api/team-remote/extensions");if(f.ok){const x=await f.json();N.current&&r(x.extensions)}}else N.current&&r([])}catch(p){if(!N.current)return;j(p.message)}finally{N.current&&y(!1)}},[]);n.useEffect(()=>(N.current=!0,o(),()=>{N.current=!1}),[o]);const v=n.useCallback(async(p,h,f)=>{const x=await fetch("/api/team-remote/connect",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:p,subfolder:h??"",apmFormat:f??!1})}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({ok:!1,error:"Parse error"}));return t.ok&&o(),t},[o]),C=n.useCallback(async()=>{const p=await fetch("/api/team-remote/disconnect",{method:"POST",headers:{"Content-Type":"application/json"}}).catch(()=>null);if(!p)return{ok:!1};const h=await p.json().catch(()=>({ok:!1}));return h.ok&&o(),h},[o]),i=n.useCallback(async(p,h,f,x)=>{const t=await fetch("/api/team-remote/pull",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:p,name:h,targetScope:f,force:x??!1})}).catch(()=>null);return t?await t.json().catch(()=>({ok:!1,error:"Parse error"})):{ok:!1,error:"Network error"}},[]),E=n.useCallback(async(p,h,f)=>{const x=await fetch("/api/team-remote/push",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:p,name:h,scope:f})}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({ok:!1,error:"Parse error"}));return t.ok&&o(),t},[o]),P=n.useCallback(async p=>{const h=await fetch("/api/team-remote/migrate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({toApm:p})}).catch(()=>null);if(!h)return{ok:!1,error:"Network error"};const f=await h.json().catch(()=>({ok:!1,error:"Parse error"}));return f.ok&&o(),f},[o]),u=n.useCallback(async(p,h)=>{const f=await fetch(`/api/team-remote/content/${encodeURIComponent(p)}/${encodeURIComponent(h)}`).catch(()=>null);if(!(f!=null&&f.ok))return null;const x=await f.json().catch(()=>null);return(x==null?void 0:x.content)??null},[]),S=n.useCallback(()=>{y(!0),o()},[o]);return{status:s,remoteExtensions:c,isLoading:b,error:w,connect:v,disconnect:C,pull:i,push:E,migrate:P,readRemoteContent:u,refresh:S}}const je={skill:"lucide:wand-2",rule:"lucide:book",command:"lucide:terminal",agent:"lucide:bot"},ze={skill:"Skill",rule:"Rule",command:"Command",agent:"Agent"},Le={skill:"Skills",rule:"Rules",command:"Commands",agent:"Agents"},Ne={skill:"text-violet-400",rule:"text-amber-400",command:"text-emerald-400",agent:"text-sky-400"},Pe={skill:"border-l-violet-400",rule:"border-l-amber-400",command:"border-l-emerald-400",agent:"border-l-sky-400"},ye=["skill","rule","command","agent"];function Be({extensions:s,onExtensionClick:a,onRemoteExtensionClick:c,searchQuery:r,categoryFilter:b,scopeFilter:y,onCategoryFilterChange:w,onScopeFilterChange:j,remoteExtensions:N=[],isRemoteConnected:o=!1}){const v=s.some(t=>t.scope==="project"),C=s.some(t=>t.pluginName!=null),i=new Map;for(const t of s)if(!t.pluginName){const g=`${t.category}/${t.name}`;i.has(g)||i.set(g,new Set),i.get(g).add(t.scope)}const E=new Set;for(const[t,g]of i)g.size>1&&E.add(t);const P=new Set(s.filter(t=>!t.pluginName).map(t=>`${t.category}/${t.name}`)),u=y==="remote"||y==="all"?N.filter(t=>{const g=b==="all"||t.category===b,$=!r||t.name.toLowerCase().includes(r.toLowerCase());return!(!g||!$||y==="all"&&P.has(`${t.category}/${t.name}`))}):[];if(y==="remote"){const t=Ye(N);return u.length===0?e.jsxs("div",{className:"space-y-3",children:[e.jsx(xe,{categoryFilter:b,scopeFilter:y,categoryCounts:t,hasProject:v,hasPlugins:C,isRemoteConnected:o,onCategoryChange:w,onScopeChange:j}),e.jsx(be,{icon:"lucide:search",title:"No remote extensions match",description:r?`No remote extensions match "${r}"`:"No extensions found in remote repository"})]}):e.jsxs("div",{className:"space-y-3",children:[e.jsx(xe,{categoryFilter:b,scopeFilter:y,categoryCounts:t,hasProject:v,hasPlugins:C,isRemoteConnected:o,onCategoryChange:w,onScopeChange:j}),e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:u.map(g=>e.jsx(Se,{item:g,onClick:c},`remote-${g.category}-${g.name}`))})]})}const S=s.filter(t=>{const g=b==="all"||t.category===b,$=!r||t.name.toLowerCase().includes(r.toLowerCase());return y==="plugin"?g&&$&&t.pluginName!=null:y==="all"?g&&$:t.pluginName?!1:g&&$&&t.scope===y});S.sort((t,g)=>{const $=`${t.category}/${t.name}`,L=`${g.category}/${g.name}`;return $!==L?$.localeCompare(L):t.scope==="project"&&g.scope==="global"?-1:t.scope==="global"&&g.scope==="project"?1:0});const p=s.filter(t=>!r||t.name.toLowerCase().includes(r.toLowerCase())?y==="plugin"?t.pluginName!=null:y==="all"?!0:t.pluginName?!1:t.scope===y:!1),h=y==="all"?N.filter(t=>(!r||t.name.toLowerCase().includes(r.toLowerCase()))&&!P.has(`${t.category}/${t.name}`)):[],f={all:p.length+h.length,...ye.reduce((t,g)=>{const $=p.filter(T=>T.category===g).length,L=h.filter(T=>T.category===g).length;return t[g]=$+L,t},{})};return s.length===0&&u.length===0?e.jsx(be,{icon:"lucide:puzzle",title:"No extensions found",description:"Extensions are discovered automatically from your ~/.claude/ and .claude/ directories."}):S.length===0&&u.length===0?e.jsxs("div",{className:"space-y-3",children:[e.jsx(xe,{categoryFilter:b,scopeFilter:y,categoryCounts:f,hasProject:v,hasPlugins:C,isRemoteConnected:o,onCategoryChange:w,onScopeChange:j}),e.jsx(be,{icon:"lucide:search",title:"No extensions match",description:r?`No extensions match "${r}"`:`No ${b==="all"?"":Le[b].toLowerCase()+" "}found`})]}):e.jsxs("div",{className:"space-y-3",children:[e.jsx(xe,{categoryFilter:b,scopeFilter:y,categoryCounts:f,hasProject:v,hasPlugins:C,isRemoteConnected:o,onCategoryChange:w,onScopeChange:j}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[S.map(t=>{const g=`${t.category}/${t.name}`,$=!t.pluginName&&E.has(g),L=t.scope==="project"?"global":"project";return e.jsxs("button",{className:`rounded-xl border ${$?"border-base-content/20":"border-base-300"} border-l-4 ${Pe[t.category]} bg-base-100 hover:border-primary/50 transition-all p-3 text-left w-full`,onClick:()=>a(t),children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(d,{icon:je[t.category],size:14,className:`${Ne[t.category]} flex-shrink-0`}),e.jsx("span",{className:"font-medium text-sm truncate",children:t.name})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0 flex-wrap justify-end",children:[e.jsx(D,{variant:"ghost",size:"sm",children:ze[t.category]}),t.pluginName?e.jsx(D,{variant:"secondary",size:"sm",children:t.pluginName}):e.jsx(D,{variant:t.scope==="project"?"info":"warning",size:"sm",children:t.scope})]})]}),e.jsxs("div",{className:"flex items-center justify-between mt-1 pl-6",children:[e.jsx("p",{className:"text-[10px] text-base-content/40 font-mono truncate",children:t.pluginName?`plugin:${t.pluginName}/${t.filePath}`:`${t.scope==="global"?"~/.claude/":".claude/"}${t.filePath}`}),$&&e.jsxs("span",{className:"text-[9px] text-base-content/40 flex items-center gap-0.5 flex-shrink-0 ml-2",children:[e.jsx(d,{icon:"lucide:layers",size:9,className:"text-base-content/40"}),"also in ",L]})]})]},`${t.scope}-${t.category}-${t.name}-${t.pluginName??""}`)}),u.map(t=>e.jsx(Se,{item:t,onClick:c},`remote-${t.category}-${t.name}`))]})]})}function Se({item:s,onClick:a}){return e.jsxs("button",{className:`rounded-xl border border-base-300 border-l-4 ${Pe[s.category]} bg-base-100 hover:border-primary/50 transition-all p-3 text-left w-full`,onClick:()=>a==null?void 0:a(s),children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(d,{icon:je[s.category],size:14,className:`${Ne[s.category]} flex-shrink-0`}),e.jsx("span",{className:"font-medium text-sm truncate",children:s.name})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0 flex-wrap justify-end",children:[e.jsx(D,{variant:"ghost",size:"sm",children:ze[s.category]}),e.jsx(D,{variant:"secondary",size:"sm",children:"remote"})]})]}),e.jsx("div",{className:"mt-1 pl-6",children:e.jsx("p",{className:"text-[10px] text-base-content/40 font-mono truncate",children:s.filePath})})]})}function Ye(s,a){return{all:s.length,...ye.reduce((c,r)=>(c[r]=s.filter(b=>b.category===r).length,c),{})}}function xe({categoryFilter:s,scopeFilter:a,categoryCounts:c,hasProject:r,hasPlugins:b,isRemoteConnected:y,onCategoryChange:w,onScopeChange:j}){const N=["all","global"];return r&&N.push("project"),b&&N.push("plugin"),y&&N.push("remote"),e.jsxs("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("h2",{className:"text-sm font-semibold flex items-center gap-2",children:[e.jsx(d,{icon:"lucide:puzzle",size:14}),"Extensions (",c.all,")"]}),e.jsx("div",{className:"flex items-center gap-0.5 ml-1",children:N.map(o=>e.jsx("button",{className:`btn btn-xs ${a===o?"btn-primary":"btn-ghost"}`,onClick:()=>j(o),children:o==="all"?"All":o.charAt(0).toUpperCase()+o.slice(1)},o))})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-wrap",children:[e.jsxs("button",{className:`btn btn-xs ${s==="all"?"btn-primary":"btn-ghost"} gap-1`,onClick:()=>w("all"),children:["All ",e.jsx("span",{className:"opacity-60 text-[10px]",children:c.all})]}),ye.map(o=>{const v=c[o];return e.jsxs("button",{className:`btn btn-xs ${s===o?"btn-primary":"btn-ghost"} gap-1`,onClick:()=>w(o),children:[e.jsx(d,{icon:je[o],size:11,className:Ne[o]}),Le[o],e.jsx("span",{className:"opacity-60 text-[10px]",children:v})]},o)})]})]})}const Je={skill:"lucide:wand-2",rule:"lucide:book",command:"lucide:terminal",agent:"lucide:bot"},$e={skill:"Skill",rule:"Rule",command:"Command",agent:"Agent"},qe={skill:"text-violet-400",rule:"text-amber-400",command:"text-emerald-400",agent:"text-sky-400"};function Ee({extension:s,onClose:a,onRefresh:c,project:r,extensionOps:b,otherScopeExists:y=!1,isRemoteItem:w=!1,remoteOps:j,hasRemoteCounterpart:N=!1,onSuccess:o,existsInGlobal:v=!1,existsInProject:C=!1}){const[i,E]=n.useState(null),[P,u]=n.useState(null),[S,p]=n.useState(!0),[h,f]=n.useState(!1),[x,t]=n.useState(!1),[g,$]=n.useState(!1),[L,T]=n.useState(!1),[Y,O]=n.useState(!1),[A,ee]=n.useState(""),[se,te]=n.useState(!1),[G,k]=n.useState(null),[M,R]=n.useState(!1),[J,q]=n.useState(null),[ae,ne]=n.useState(!1),[F,H]=n.useState(!1),[le,X]=n.useState(!1),[_,ue]=n.useState(null),[oe,K]=n.useState(!1),[Z,I]=n.useState(!1),[B,ce]=n.useState(!1),[Q,l]=n.useState(null),z=s.scope==="project"?"global":"project";n.useEffect(()=>{p(!0),E(null),f(!1),u(null),k(null),T(!1),R(!1),q(null),w&&j?j.readRemoteContent(s.category,s.name).then(m=>E(m)).finally(()=>p(!1)):b.readContent(s.category,s.name,s.scope,s.pluginName).then(m=>{E((m==null?void 0:m.content)??null)}).finally(()=>p(!1))},[s.name,s.category,s.scope]);const U=async()=>{ne(!0),k(null);const m=await b.readContent(s.category,s.name,z);q((m==null?void 0:m.content)??null),ne(!1),(m==null?void 0:m.content)!=null?(R(!0),f(!1),T(!1)):k(`Could not load ${z} version`)},re=async m=>{const V=m===s.scope?J:i;if(!V)return;H(!0),k(null);const W=await b.saveContent(s.category,s.name,V,m,r);if(H(!1),W.ok){c==null||c();const he=await b.readContent(s.category,s.name,s.scope);E((he==null?void 0:he.content)??null);const fe=await b.readContent(s.category,s.name,z);q((fe==null?void 0:fe.content)??null)}else k(W.error??"Copy failed")},Re=async()=>{if(P===null)return;t(!0),k(null);const m=await b.saveContent(s.category,s.name,P,s.scope,r);t(!1),m.ok?(E(P),f(!1),u(null),c==null||c()):k(m.error??"Save failed")},we=async()=>{if(!A.trim())return;t(!0),k(null);const m=await b.renameExtension(s.category,s.name,A.trim(),s.scope,r);t(!1),m.ok?(c==null||c(),a()):k(m.error??"Rename failed")},Te=async()=>{t(!0),k(null);const m=await b.deleteExtension(s.category,s.name,s.scope,r);t(!1),m.ok?(c==null||c(),a()):k(m.error??"Delete failed")},ve=async m=>{$(!0),k(null);const V=await b.moveExtension(s.category,s.name,s.scope,m,r);$(!1),V.ok?(c==null||c(),o==null||o(`Moved "${s.name}" to ${m}`),a()):k(V.error??"Move failed")},Ae=async()=>{if(!j)return;K(!0),k(null);const m=await j.readRemoteContent(s.category,s.name);ue(m),K(!1),m!=null?(X(!0),R(!1),f(!1),T(!1)):k("Could not load remote version")},[Me,pe]=n.useState(!1),ke=async()=>{if(!j)return;I(!0),k(null),pe(!1);const m=await j.push(s.category,s.name,s.scope);I(!1),m.ok?(pe(!0),c==null||c(),j.refresh(),setTimeout(()=>pe(!1),3e3)):k(m.error??"Push failed")},ie=async(m,V)=>{if(!j)return;ce(!0),k(null),l(null);const W=await j.pull(s.category,s.name,m,V);ce(!1),W.ok?(c==null||c(),o==null||o(`Downloaded "${s.name}" to ${m}`),a()):W.conflict?l(W.conflict):k(W.error??"Download failed")},de=s.scope==="global"?i:J,me=s.scope==="project"?i:J,Ce=M&&de!=null&&me!=null&&de===me;return e.jsx("div",{className:"fixed inset-0 bg-black/40 z-50 flex items-center justify-center p-4",onClick:a,children:e.jsxs("div",{className:"bg-base-100 rounded-xl shadow-2xl max-w-4xl w-full h-[85vh] flex flex-col",onClick:m=>m.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-base-300",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(d,{icon:Je[s.category],size:16,className:qe[s.category]}),e.jsx("span",{className:"font-semibold",children:s.name}),e.jsx(D,{variant:"ghost",size:"sm",children:$e[s.category]}),e.jsx(D,{variant:s.scope==="project"?"info":"warning",size:"sm",children:s.scope}),M&&e.jsx(D,{variant:"ghost",size:"sm",children:"comparing"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[M||le?e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",onClick:()=>{R(!1),X(!1),l(null)},children:[e.jsx(d,{icon:"lucide:arrow-left",size:12}),"Back"]}):w?e.jsxs(e.Fragment,{children:[!v&&e.jsxs("button",{className:"btn btn-primary btn-xs gap-1 text-[10px]",disabled:B,onClick:()=>ie("global"),children:[B?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:download",size:12}),"Download to Global"]}),r&&!C&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:B,onClick:()=>ie("project"),children:[e.jsx(d,{icon:"lucide:download",size:12}),"Download to Project"]}),v&&C&&e.jsxs("span",{className:"text-[10px] text-success flex items-center gap-1",children:[e.jsx(d,{icon:"lucide:check",size:12}),"Already installed"]}),v&&!C&&!r&&e.jsxs("span",{className:"text-[10px] text-success flex items-center gap-1",children:[e.jsx(d,{icon:"lucide:check",size:12}),"Already in global"]})]}):!h&&!se&&!Y&&e.jsxs(e.Fragment,{children:[N&&j&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:oe,onClick:Ae,children:[oe?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:git-compare",size:12}),"Remote"]}),(j==null?void 0:j.status.connected)&&!s.pluginName&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:Z,onClick:ke,children:[Z?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:upload",size:12}),"Push"]}),y&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:ae,onClick:U,children:[ae?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:diff",size:12}),"Compare"]}),!y&&s.scope==="project"&&!s.pluginName&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:g,onClick:()=>ve("global"),children:[g?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-up-circle",size:12}),"Global"]}),!y&&s.scope==="global"&&r&&!s.pluginName&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:g,onClick:()=>ve("project"),children:[g?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-down-circle",size:12}),"Project"]}),i&&e.jsx("button",{className:`btn btn-xs ${L?"btn-primary":"btn-ghost"}`,onClick:()=>T(!L),children:e.jsx(d,{icon:L?"lucide:code":"lucide:eye",size:13})}),s.editable&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:()=>{f(!0),T(!1),u(i)},children:e.jsx(d,{icon:"lucide:pencil",size:13})}),e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:()=>{O(!0),ee(s.name)},children:e.jsx(d,{icon:"lucide:type",size:13})}),e.jsx("button",{className:"btn btn-ghost btn-xs text-error",onClick:()=>te(!0),children:e.jsx(d,{icon:"lucide:trash-2",size:13})})]})]}),e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:a,children:e.jsx(d,{icon:"lucide:x",size:14})})]})]}),Me&&e.jsx("div",{className:"px-4 pt-2",children:e.jsxs("div",{className:"alert alert-success py-1 text-xs",children:[e.jsx(d,{icon:"lucide:check",size:12}),e.jsx("span",{children:"Pushed to remote successfully"})]})}),G&&e.jsx("div",{className:"px-4 pt-2",children:e.jsxs("div",{className:"alert alert-error py-1 text-xs flex justify-between",children:[e.jsx("span",{children:G}),e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:()=>k(null),children:e.jsx(d,{icon:"lucide:x",size:12})})]})}),Y&&e.jsxs("div",{className:"px-4 pt-3 flex items-center gap-2",children:[e.jsx("input",{type:"text",className:"input input-bordered input-sm flex-1 font-mono text-sm",value:A,autoFocus:!0,onChange:m=>ee(m.target.value),onKeyDown:m=>{m.key==="Enter"&&we(),m.key==="Escape"&&O(!1)}}),e.jsx("button",{className:"btn btn-primary btn-sm",disabled:x||!A.trim()||A===s.name,onClick:we,children:x?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Rename"}),e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>O(!1),children:"Cancel"})]}),se&&e.jsxs("div",{className:"px-4 pt-3 flex items-center gap-2",children:[e.jsxs("p",{className:"text-sm text-error flex-1",children:["Delete ",e.jsx("strong",{children:s.name}),"? This cannot be undone."]}),e.jsx("button",{className:"btn btn-error btn-sm",disabled:x,onClick:Te,children:x?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Delete"}),e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>te(!1),children:"Cancel"})]}),h&&e.jsxs("div",{className:"px-4 pt-3 flex items-center gap-2",children:[e.jsx("p",{className:"text-xs text-base-content/50 flex-1",children:"Editing markdown — changes are saved to disk."}),e.jsx("button",{className:"btn btn-primary btn-sm",disabled:x||P===i,onClick:Re,children:x?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Save Changes"}),e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>{f(!1),u(null)},children:"Cancel"})]}),Q&&e.jsxs("div",{className:"px-4 pt-3 space-y-2",children:[e.jsxs("div",{className:"alert alert-warning py-1.5 text-xs flex items-center justify-between gap-2",children:[e.jsx("span",{children:"Local version differs from remote. Overwrite local?"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx("button",{className:"btn btn-xs btn-warning",disabled:B,onClick:()=>ie("global",!0),children:"Overwrite"}),e.jsx("button",{className:"btn btn-xs btn-ghost",onClick:()=>l(null),children:"Keep local"})]})]}),e.jsx(ge,{globalText:Q.localContent,projectText:Q.remoteContent})]}),le?e.jsxs("div",{className:"flex-1 overflow-hidden flex flex-col min-h-0 w-full",children:[e.jsxs("div",{className:"px-4 py-2 border-b border-base-300 flex items-center justify-between gap-2 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"w-2.5 h-2.5 rounded-sm bg-error/20 border border-error/40"}),e.jsx("span",{className:"text-base-content/50",children:"Local"})]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"w-2.5 h-2.5 rounded-sm bg-success/20 border border-success/40"}),e.jsx("span",{className:"text-base-content/50",children:"Remote"})]}),i!=null&&_!=null&&i===_&&e.jsx(D,{variant:"success",size:"sm",children:"identical"})]}),i!=null&&_!=null&&i!==_&&e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsxs("button",{className:"btn btn-xs btn-ghost gap-1 text-[10px]",disabled:B,onClick:()=>ie(s.scope,!0),children:[B?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-down",size:10}),"Use Remote → Local"]}),e.jsxs("button",{className:"btn btn-xs btn-ghost gap-1 text-[10px]",disabled:Z,onClick:ke,children:[Z?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-up",size:10}),"Use Local → Remote"]})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:i!=null&&_!=null?e.jsx(ge,{globalText:i,projectText:_}):e.jsx("div",{className:"flex justify-center py-8",children:e.jsx("span",{className:"loading loading-spinner loading-md text-primary"})})})]}):M?e.jsxs("div",{className:"flex-1 overflow-hidden flex flex-col min-h-0 w-full",children:[e.jsxs("div",{className:"px-4 py-2 border-b border-base-300 flex items-center justify-between gap-2 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"w-2.5 h-2.5 rounded-sm bg-error/20 border border-error/40"}),e.jsx("span",{className:"text-base-content/50",children:"Global"})]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"w-2.5 h-2.5 rounded-sm bg-success/20 border border-success/40"}),e.jsx("span",{className:"text-base-content/50",children:"Project"})]}),Ce&&e.jsx(D,{variant:"success",size:"sm",children:"identical"})]}),!Ce&&e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsxs("button",{className:"btn btn-xs btn-ghost gap-1 text-[10px]",disabled:F,onClick:()=>re("project"),children:[F?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-down",size:10}),"Use Global → Project"]}),e.jsxs("button",{className:"btn btn-xs btn-ghost gap-1 text-[10px]",disabled:F,onClick:()=>re("global"),children:[F?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-up",size:10}),"Use Project → Global"]})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:de!=null&&me!=null?e.jsx(ge,{globalText:de,projectText:me}):e.jsx("div",{className:"flex justify-center py-8",children:e.jsx("span",{className:"loading loading-spinner loading-md text-primary"})})})]}):e.jsxs("div",{className:"flex-1 overflow-hidden flex min-h-0 w-full",children:[e.jsx("div",{className:`flex-1 min-w-0 border-r border-base-300 ${h?"flex flex-col p-0":"overflow-y-auto p-4"}`,children:S?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx("span",{className:"loading loading-spinner loading-md text-primary"})}):h?e.jsx("textarea",{className:"w-full flex-1 font-mono text-xs text-base-content/80 leading-relaxed bg-transparent resize-none focus:outline-none p-4",value:P??"",onChange:m=>u(m.target.value)}):i?L?e.jsx(Ve,{content:i}):e.jsx("pre",{className:"text-xs text-base-content/80 whitespace-pre-wrap font-mono leading-relaxed",children:i}):e.jsxs("div",{className:"text-center py-8 text-base-content/40",children:[e.jsx(d,{icon:"lucide:file-x",size:24,className:"mx-auto mb-2"}),e.jsx("p",{className:"text-sm",children:"Could not load content"})]})}),e.jsx("div",{className:"w-48 flex-shrink-0 overflow-y-auto p-4 space-y-4",children:e.jsxs("div",{className:"bg-base-200/60 rounded-lg p-3 space-y-3 text-xs",children:[e.jsx("p",{className:"font-semibold text-[10px] text-base-content/50 uppercase tracking-wider",children:"Details"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"Name"}),e.jsx("p",{className:"font-mono text-[10px] text-base-content/70 break-all",children:s.name})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"Category"}),e.jsx("p",{className:"text-[10px] text-base-content/70",children:$e[s.category]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"Scope"}),e.jsx("p",{className:"text-[10px] text-base-content/70 capitalize",children:s.scope})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"Path"}),e.jsx("p",{className:"font-mono text-[10px] text-base-content/70 break-all",children:s.filePath})]}),i&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"Lines"}),e.jsx("p",{className:"text-[10px] text-base-content/70",children:i.split(` +import{a as n,j as e,M as Ue}from"./vendor-markdown.js";import{E as be,I as d,B as D,b as De,l as Ie,P as Oe}from"./viewer-bundle.js";import"./vendor-charts.js";import"./vendor-diff.js";function Ge(s){const[a,c]=n.useState([]),[r,b]=n.useState(!0),[y,w]=n.useState(null),j=n.useRef(!0),N=s?`?project=${encodeURIComponent(s)}`:"?all=true",o=n.useCallback(async()=>{try{b(!0);const u=await fetch(`/api/extensions${N}`);if(!u.ok)throw new Error(`Extensions fetch failed: ${u.status}`);const S=await u.json();if(!j.current)return;c(S.extensions),w(null)}catch(u){if(!j.current)return;w(u.message)}finally{j.current&&b(!1)}},[N]);n.useEffect(()=>(j.current=!0,o(),()=>{j.current=!1}),[o]);const v=n.useCallback(async(u,S,p,h)=>{const f=new URLSearchParams({scope:p,...s?{project:s}:{},...h?{pluginName:h}:{}}),x=await fetch(`/api/extensions/${encodeURIComponent(u)}/${encodeURIComponent(S)}?${f}`).catch(()=>null);return x!=null&&x.ok?x.json():null},[s]),C=n.useCallback(async(u,S,p,h,f)=>{const x=await fetch(`/api/extensions/${encodeURIComponent(u)}/${encodeURIComponent(S)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:p,scope:h,project:f??s??void 0})}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({}));return x.ok?{ok:!0}:{ok:!1,error:t.error||"Save failed"}},[s]),i=n.useCallback(async(u,S,p,h,f)=>{const x=await fetch(`/api/extensions/${encodeURIComponent(u)}/${encodeURIComponent(S)}/rename`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({newName:p,scope:h,project:f??s??void 0})}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({}));return x.ok?{ok:!0}:{ok:!1,error:t.error||"Rename failed"}},[s]),E=n.useCallback(async(u,S,p,h)=>{const f=new URLSearchParams({scope:p,...h??s?{project:h??s}:{}}),x=await fetch(`/api/extensions/${encodeURIComponent(u)}/${encodeURIComponent(S)}?${f}`,{method:"DELETE"}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({}));return x.ok?{ok:!0}:{ok:!1,error:t.error||"Delete failed"}},[s]),P=n.useCallback(async(u,S,p,h,f)=>{const x=await fetch(`/api/extensions/${encodeURIComponent(u)}/${encodeURIComponent(S)}/move`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({from:p,to:h,project:f??s??void 0})}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({}));return x.ok?{ok:!0}:{ok:!1,error:t.error||"Move failed"}},[s]);return{extensions:a,isLoading:r,error:y,refresh:o,readContent:v,saveContent:C,renameExtension:i,deleteExtension:E,moveExtension:P}}const _e={connected:!1,remoteUrl:null,subfolder:null,apmFormat:!1};function Ke(){const[s,a]=n.useState(_e),[c,r]=n.useState([]),[b,y]=n.useState(!0),[w,j]=n.useState(null),N=n.useRef(!0),o=n.useCallback(async()=>{try{const p=await fetch("/api/team-remote/status");if(!p.ok)throw new Error(`Status fetch failed: ${p.status}`);const h=await p.json();if(!N.current)return;if(a(h),j(null),h.connected){const f=await fetch("/api/team-remote/extensions");if(f.ok){const x=await f.json();N.current&&r(x.extensions)}}else N.current&&r([])}catch(p){if(!N.current)return;j(p.message)}finally{N.current&&y(!1)}},[]);n.useEffect(()=>(N.current=!0,o(),()=>{N.current=!1}),[o]);const v=n.useCallback(async(p,h,f)=>{const x=await fetch("/api/team-remote/connect",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:p,subfolder:h??"",apmFormat:f??!1})}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({ok:!1,error:"Parse error"}));return t.ok&&o(),t},[o]),C=n.useCallback(async()=>{const p=await fetch("/api/team-remote/disconnect",{method:"POST",headers:{"Content-Type":"application/json"}}).catch(()=>null);if(!p)return{ok:!1};const h=await p.json().catch(()=>({ok:!1}));return h.ok&&o(),h},[o]),i=n.useCallback(async(p,h,f,x)=>{const t=await fetch("/api/team-remote/pull",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:p,name:h,targetScope:f,force:x??!1})}).catch(()=>null);return t?await t.json().catch(()=>({ok:!1,error:"Parse error"})):{ok:!1,error:"Network error"}},[]),E=n.useCallback(async(p,h,f)=>{const x=await fetch("/api/team-remote/push",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:p,name:h,scope:f})}).catch(()=>null);if(!x)return{ok:!1,error:"Network error"};const t=await x.json().catch(()=>({ok:!1,error:"Parse error"}));return t.ok&&o(),t},[o]),P=n.useCallback(async p=>{const h=await fetch("/api/team-remote/migrate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({toApm:p})}).catch(()=>null);if(!h)return{ok:!1,error:"Network error"};const f=await h.json().catch(()=>({ok:!1,error:"Parse error"}));return f.ok&&o(),f},[o]),u=n.useCallback(async(p,h)=>{const f=await fetch(`/api/team-remote/content/${encodeURIComponent(p)}/${encodeURIComponent(h)}`).catch(()=>null);if(!(f!=null&&f.ok))return null;const x=await f.json().catch(()=>null);return(x==null?void 0:x.content)??null},[]),S=n.useCallback(()=>{y(!0),o()},[o]);return{status:s,remoteExtensions:c,isLoading:b,error:w,connect:v,disconnect:C,pull:i,push:E,migrate:P,readRemoteContent:u,refresh:S}}const je={skill:"lucide:wand-2",rule:"lucide:book",command:"lucide:terminal",agent:"lucide:bot"},ze={skill:"Skill",rule:"Rule",command:"Command",agent:"Agent"},Le={skill:"Skills",rule:"Rules",command:"Commands",agent:"Agents"},Ne={skill:"text-violet-400",rule:"text-amber-400",command:"text-emerald-400",agent:"text-sky-400"},Pe={skill:"border-l-violet-400",rule:"border-l-amber-400",command:"border-l-emerald-400",agent:"border-l-sky-400"},ye=["skill","rule","command","agent"];function Be({extensions:s,onExtensionClick:a,onRemoteExtensionClick:c,searchQuery:r,categoryFilter:b,scopeFilter:y,onCategoryFilterChange:w,onScopeFilterChange:j,remoteExtensions:N=[],isRemoteConnected:o=!1}){const v=s.some(t=>t.scope==="project"),C=s.some(t=>t.pluginName!=null),i=new Map;for(const t of s)if(!t.pluginName){const g=`${t.category}/${t.name}`;i.has(g)||i.set(g,new Set),i.get(g).add(t.scope)}const E=new Set;for(const[t,g]of i)g.size>1&&E.add(t);const P=new Set(s.filter(t=>!t.pluginName).map(t=>`${t.category}/${t.name}`)),u=y==="remote"||y==="all"?N.filter(t=>{const g=b==="all"||t.category===b,$=!r||t.name.toLowerCase().includes(r.toLowerCase());return!(!g||!$||y==="all"&&P.has(`${t.category}/${t.name}`))}):[];if(y==="remote"){const t=Ye(N);return u.length===0?e.jsxs("div",{className:"space-y-3",children:[e.jsx(xe,{categoryFilter:b,scopeFilter:y,categoryCounts:t,hasProject:v,hasPlugins:C,isRemoteConnected:o,onCategoryChange:w,onScopeChange:j}),e.jsx(be,{icon:"lucide:search",title:"No remote extensions match",description:r?`No remote extensions match "${r}"`:"No extensions found in remote repository"})]}):e.jsxs("div",{className:"space-y-3",children:[e.jsx(xe,{categoryFilter:b,scopeFilter:y,categoryCounts:t,hasProject:v,hasPlugins:C,isRemoteConnected:o,onCategoryChange:w,onScopeChange:j}),e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:u.map(g=>e.jsx(Se,{item:g,onClick:c},`remote-${g.category}-${g.name}`))})]})}const S=s.filter(t=>{const g=b==="all"||t.category===b,$=!r||t.name.toLowerCase().includes(r.toLowerCase());return y==="plugin"?g&&$&&t.pluginName!=null:y==="all"?g&&$:t.pluginName?!1:g&&$&&t.scope===y});S.sort((t,g)=>{const $=`${t.category}/${t.name}`,L=`${g.category}/${g.name}`;return $!==L?$.localeCompare(L):t.scope==="project"&&g.scope==="global"?-1:t.scope==="global"&&g.scope==="project"?1:0});const p=s.filter(t=>!r||t.name.toLowerCase().includes(r.toLowerCase())?y==="plugin"?t.pluginName!=null:y==="all"?!0:t.pluginName?!1:t.scope===y:!1),h=y==="all"?N.filter(t=>(!r||t.name.toLowerCase().includes(r.toLowerCase()))&&!P.has(`${t.category}/${t.name}`)):[],f={all:p.length+h.length,...ye.reduce((t,g)=>{const $=p.filter(T=>T.category===g).length,L=h.filter(T=>T.category===g).length;return t[g]=$+L,t},{})};return s.length===0&&u.length===0?e.jsx(be,{icon:"lucide:puzzle",title:"No extensions found",description:"Extensions are discovered automatically from your ~/.claude/ and .claude/ directories."}):S.length===0&&u.length===0?e.jsxs("div",{className:"space-y-3",children:[e.jsx(xe,{categoryFilter:b,scopeFilter:y,categoryCounts:f,hasProject:v,hasPlugins:C,isRemoteConnected:o,onCategoryChange:w,onScopeChange:j}),e.jsx(be,{icon:"lucide:search",title:"No extensions match",description:r?`No extensions match "${r}"`:`No ${b==="all"?"":Le[b].toLowerCase()+" "}found`})]}):e.jsxs("div",{className:"space-y-3",children:[e.jsx(xe,{categoryFilter:b,scopeFilter:y,categoryCounts:f,hasProject:v,hasPlugins:C,isRemoteConnected:o,onCategoryChange:w,onScopeChange:j}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[S.map(t=>{const g=`${t.category}/${t.name}`,$=!t.pluginName&&E.has(g),L=t.scope==="project"?"global":"project";return e.jsxs("button",{className:`rounded-xl border ${$?"border-base-content/20":"border-base-300"} border-l-4 ${Pe[t.category]} bg-base-100 hover:border-primary/50 transition-all p-3 text-left w-full`,onClick:()=>a(t),children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(d,{icon:je[t.category],size:14,className:`${Ne[t.category]} flex-shrink-0`}),e.jsx("span",{className:"font-medium text-sm truncate",children:t.name})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0 flex-wrap justify-end",children:[e.jsx(D,{variant:"ghost",size:"sm",children:ze[t.category]}),t.pluginName?e.jsx(D,{variant:"secondary",size:"sm",children:t.pluginName}):e.jsx(D,{variant:t.scope==="project"?"info":"warning",size:"sm",children:t.scope})]})]}),e.jsxs("div",{className:"flex items-center justify-between mt-1 pl-6",children:[e.jsx("p",{className:"text-[10px] text-base-content/40 font-mono truncate",children:t.pluginName?`plugin:${t.pluginName}/${t.filePath}`:`${t.scope==="global"?"~/.claude/":".claude/"}${t.filePath}`}),$&&e.jsxs("span",{className:"text-[9px] text-base-content/40 flex items-center gap-0.5 flex-shrink-0 ml-2",children:[e.jsx(d,{icon:"lucide:layers",size:9,className:"text-base-content/40"}),"also in ",L]})]})]},`${t.scope}-${t.category}-${t.name}-${t.pluginName??""}`)}),u.map(t=>e.jsx(Se,{item:t,onClick:c},`remote-${t.category}-${t.name}`))]})]})}function Se({item:s,onClick:a}){return e.jsxs("button",{className:`rounded-xl border border-base-300 border-l-4 ${Pe[s.category]} bg-base-100 hover:border-primary/50 transition-all p-3 text-left w-full`,onClick:()=>a==null?void 0:a(s),children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(d,{icon:je[s.category],size:14,className:`${Ne[s.category]} flex-shrink-0`}),e.jsx("span",{className:"font-medium text-sm truncate",children:s.name})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0 flex-wrap justify-end",children:[e.jsx(D,{variant:"ghost",size:"sm",children:ze[s.category]}),e.jsx(D,{variant:"secondary",size:"sm",children:"remote"})]})]}),e.jsx("div",{className:"mt-1 pl-6",children:e.jsx("p",{className:"text-[10px] text-base-content/40 font-mono truncate",children:s.filePath})})]})}function Ye(s,a){return{all:s.length,...ye.reduce((c,r)=>(c[r]=s.filter(b=>b.category===r).length,c),{})}}function xe({categoryFilter:s,scopeFilter:a,categoryCounts:c,hasProject:r,hasPlugins:b,isRemoteConnected:y,onCategoryChange:w,onScopeChange:j}){const N=["all","global"];return r&&N.push("project"),b&&N.push("plugin"),y&&N.push("remote"),e.jsxs("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("h2",{className:"text-sm font-semibold flex items-center gap-2",children:[e.jsx(d,{icon:"lucide:puzzle",size:14}),"Extensions (",c.all,")"]}),e.jsx("div",{className:"flex items-center gap-0.5 ml-1",children:N.map(o=>e.jsx("button",{className:`btn btn-xs ${a===o?"btn-primary":"btn-ghost"}`,onClick:()=>j(o),children:o==="all"?"All":o.charAt(0).toUpperCase()+o.slice(1)},o))})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-wrap",children:[e.jsxs("button",{className:`btn btn-xs ${s==="all"?"btn-primary":"btn-ghost"} gap-1`,onClick:()=>w("all"),children:["All ",e.jsx("span",{className:"opacity-60 text-[10px]",children:c.all})]}),ye.map(o=>{const v=c[o];return e.jsxs("button",{className:`btn btn-xs ${s===o?"btn-primary":"btn-ghost"} gap-1`,onClick:()=>w(o),children:[e.jsx(d,{icon:je[o],size:11,className:Ne[o]}),Le[o],e.jsx("span",{className:"opacity-60 text-[10px]",children:v})]},o)})]})]})}const Je={skill:"lucide:wand-2",rule:"lucide:book",command:"lucide:terminal",agent:"lucide:bot"},$e={skill:"Skill",rule:"Rule",command:"Command",agent:"Agent"},qe={skill:"text-violet-400",rule:"text-amber-400",command:"text-emerald-400",agent:"text-sky-400"};function Ee({extension:s,onClose:a,onRefresh:c,project:r,extensionOps:b,otherScopeExists:y=!1,isRemoteItem:w=!1,remoteOps:j,hasRemoteCounterpart:N=!1,onSuccess:o,existsInGlobal:v=!1,existsInProject:C=!1}){const[i,E]=n.useState(null),[P,u]=n.useState(null),[S,p]=n.useState(!0),[h,f]=n.useState(!1),[x,t]=n.useState(!1),[g,$]=n.useState(!1),[L,T]=n.useState(!1),[Y,O]=n.useState(!1),[A,ee]=n.useState(""),[se,te]=n.useState(!1),[G,k]=n.useState(null),[M,R]=n.useState(!1),[J,q]=n.useState(null),[ae,ne]=n.useState(!1),[F,H]=n.useState(!1),[le,X]=n.useState(!1),[_,ue]=n.useState(null),[oe,K]=n.useState(!1),[Z,I]=n.useState(!1),[B,ce]=n.useState(!1),[Q,l]=n.useState(null),z=s.scope==="project"?"global":"project";n.useEffect(()=>{p(!0),E(null),f(!1),u(null),k(null),T(!1),R(!1),q(null),w&&j?j.readRemoteContent(s.category,s.name).then(m=>E(m)).finally(()=>p(!1)):b.readContent(s.category,s.name,s.scope,s.pluginName).then(m=>{E((m==null?void 0:m.content)??null)}).finally(()=>p(!1))},[s.name,s.category,s.scope]);const U=async()=>{ne(!0),k(null);const m=await b.readContent(s.category,s.name,z);q((m==null?void 0:m.content)??null),ne(!1),(m==null?void 0:m.content)!=null?(R(!0),f(!1),T(!1)):k(`Could not load ${z} version`)},re=async m=>{const V=m===s.scope?J:i;if(!V)return;H(!0),k(null);const W=await b.saveContent(s.category,s.name,V,m,r);if(H(!1),W.ok){c==null||c();const he=await b.readContent(s.category,s.name,s.scope);E((he==null?void 0:he.content)??null);const fe=await b.readContent(s.category,s.name,z);q((fe==null?void 0:fe.content)??null)}else k(W.error??"Copy failed")},Re=async()=>{if(P===null)return;t(!0),k(null);const m=await b.saveContent(s.category,s.name,P,s.scope,r);t(!1),m.ok?(E(P),f(!1),u(null),c==null||c()):k(m.error??"Save failed")},we=async()=>{if(!A.trim())return;t(!0),k(null);const m=await b.renameExtension(s.category,s.name,A.trim(),s.scope,r);t(!1),m.ok?(c==null||c(),a()):k(m.error??"Rename failed")},Te=async()=>{t(!0),k(null);const m=await b.deleteExtension(s.category,s.name,s.scope,r);t(!1),m.ok?(c==null||c(),a()):k(m.error??"Delete failed")},ve=async m=>{$(!0),k(null);const V=await b.moveExtension(s.category,s.name,s.scope,m,r);$(!1),V.ok?(c==null||c(),o==null||o(`Moved "${s.name}" to ${m}`),a()):k(V.error??"Move failed")},Ae=async()=>{if(!j)return;K(!0),k(null);const m=await j.readRemoteContent(s.category,s.name);ue(m),K(!1),m!=null?(X(!0),R(!1),f(!1),T(!1)):k("Could not load remote version")},[Me,pe]=n.useState(!1),ke=async()=>{if(!j)return;I(!0),k(null),pe(!1);const m=await j.push(s.category,s.name,s.scope);I(!1),m.ok?(pe(!0),c==null||c(),j.refresh(),setTimeout(()=>pe(!1),3e3)):k(m.error??"Push failed")},ie=async(m,V)=>{if(!j)return;ce(!0),k(null),l(null);const W=await j.pull(s.category,s.name,m,V);ce(!1),W.ok?(c==null||c(),o==null||o(`Downloaded "${s.name}" to ${m}`),a()):W.conflict?l(W.conflict):k(W.error??"Download failed")},de=s.scope==="global"?i:J,me=s.scope==="project"?i:J,Ce=M&&de!=null&&me!=null&&de===me;return e.jsx("div",{className:"fixed inset-0 bg-black/40 z-50 flex items-center justify-center p-4",onClick:a,children:e.jsxs("div",{className:"bg-base-100 rounded-xl shadow-2xl max-w-4xl w-full h-[85vh] flex flex-col",onClick:m=>m.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-base-300",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(d,{icon:Je[s.category],size:16,className:qe[s.category]}),e.jsx("span",{className:"font-semibold",children:s.name}),e.jsx(D,{variant:"ghost",size:"sm",children:$e[s.category]}),e.jsx(D,{variant:s.scope==="project"?"info":"warning",size:"sm",children:s.scope}),M&&e.jsx(D,{variant:"ghost",size:"sm",children:"comparing"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[M||le?e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",onClick:()=>{R(!1),X(!1),l(null)},children:[e.jsx(d,{icon:"lucide:arrow-left",size:12}),"Back"]}):w?e.jsxs(e.Fragment,{children:[!v&&e.jsxs("button",{className:"btn btn-primary btn-xs gap-1 text-[10px]",disabled:B,onClick:()=>ie("global"),children:[B?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:download",size:12}),"Download to Global"]}),r&&!C&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:B,onClick:()=>ie("project"),children:[e.jsx(d,{icon:"lucide:download",size:12}),"Download to Project"]}),v&&C&&e.jsxs("span",{className:"text-[10px] text-success flex items-center gap-1",children:[e.jsx(d,{icon:"lucide:check",size:12}),"Already installed"]}),v&&!C&&!r&&e.jsxs("span",{className:"text-[10px] text-success flex items-center gap-1",children:[e.jsx(d,{icon:"lucide:check",size:12}),"Already in global"]})]}):!h&&!se&&!Y&&e.jsxs(e.Fragment,{children:[N&&j&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:oe,onClick:Ae,children:[oe?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:git-compare",size:12}),"Remote"]}),(j==null?void 0:j.status.connected)&&!s.pluginName&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:Z,onClick:ke,children:[Z?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:upload",size:12}),"Push"]}),y&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:ae,onClick:U,children:[ae?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:diff",size:12}),"Compare"]}),!y&&s.scope==="project"&&!s.pluginName&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:g,onClick:()=>ve("global"),children:[g?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-up-circle",size:12}),"Global"]}),!y&&s.scope==="global"&&r&&!s.pluginName&&e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-[10px]",disabled:g,onClick:()=>ve("project"),children:[g?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-down-circle",size:12}),"Project"]}),i&&e.jsx("button",{className:`btn btn-xs ${L?"btn-primary":"btn-ghost"}`,onClick:()=>T(!L),children:e.jsx(d,{icon:L?"lucide:code":"lucide:eye",size:13})}),s.editable&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:()=>{f(!0),T(!1),u(i)},children:e.jsx(d,{icon:"lucide:pencil",size:13})}),e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:()=>{O(!0),ee(s.name)},children:e.jsx(d,{icon:"lucide:type",size:13})}),e.jsx("button",{className:"btn btn-ghost btn-xs text-error",onClick:()=>te(!0),children:e.jsx(d,{icon:"lucide:trash-2",size:13})})]})]}),e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:a,children:e.jsx(d,{icon:"lucide:x",size:14})})]})]}),Me&&e.jsx("div",{className:"px-4 pt-2",children:e.jsxs("div",{className:"alert alert-success py-1 text-xs",children:[e.jsx(d,{icon:"lucide:check",size:12}),e.jsx("span",{children:"Pushed to remote successfully"})]})}),G&&e.jsx("div",{className:"px-4 pt-2",children:e.jsxs("div",{className:"alert alert-error py-1 text-xs flex justify-between",children:[e.jsx("span",{children:G}),e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:()=>k(null),children:e.jsx(d,{icon:"lucide:x",size:12})})]})}),Y&&e.jsxs("div",{className:"px-4 pt-3 flex items-center gap-2",children:[e.jsx("input",{type:"text",className:"input input-bordered input-sm flex-1 font-mono text-sm",value:A,autoFocus:!0,onChange:m=>ee(m.target.value),onKeyDown:m=>{m.key==="Enter"&&we(),m.key==="Escape"&&O(!1)}}),e.jsx("button",{className:"btn btn-primary btn-sm",disabled:x||!A.trim()||A===s.name,onClick:we,children:x?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Rename"}),e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>O(!1),children:"Cancel"})]}),se&&e.jsxs("div",{className:"px-4 pt-3 flex items-center gap-2",children:[e.jsxs("p",{className:"text-sm text-error flex-1",children:["Delete ",e.jsx("strong",{children:s.name}),"? This cannot be undone."]}),e.jsx("button",{className:"btn btn-error btn-sm",disabled:x,onClick:Te,children:x?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Delete"}),e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>te(!1),children:"Cancel"})]}),h&&e.jsxs("div",{className:"px-4 pt-3 flex items-center gap-2",children:[e.jsx("p",{className:"text-xs text-base-content/50 flex-1",children:"Editing markdown — changes are saved to disk."}),e.jsx("button",{className:"btn btn-primary btn-sm",disabled:x||P===i,onClick:Re,children:x?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Save Changes"}),e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:()=>{f(!1),u(null)},children:"Cancel"})]}),Q&&e.jsxs("div",{className:"px-4 pt-3 space-y-2",children:[e.jsxs("div",{className:"alert alert-warning py-1.5 text-xs flex items-center justify-between gap-2",children:[e.jsx("span",{children:"Local version differs from remote. Overwrite local?"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx("button",{className:"btn btn-xs btn-warning",disabled:B,onClick:()=>ie("global",!0),children:"Overwrite"}),e.jsx("button",{className:"btn btn-xs btn-ghost",onClick:()=>l(null),children:"Keep local"})]})]}),e.jsx(ge,{globalText:Q.localContent,projectText:Q.remoteContent})]}),le?e.jsxs("div",{className:"flex-1 overflow-hidden flex flex-col min-h-0 w-full",children:[e.jsxs("div",{className:"px-4 py-2 border-b border-base-300 flex items-center justify-between gap-2 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"w-2.5 h-2.5 rounded-sm bg-error/20 border border-error/40"}),e.jsx("span",{className:"text-base-content/50",children:"Local"})]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"w-2.5 h-2.5 rounded-sm bg-success/20 border border-success/40"}),e.jsx("span",{className:"text-base-content/50",children:"Remote"})]}),i!=null&&_!=null&&i===_&&e.jsx(D,{variant:"success",size:"sm",children:"identical"})]}),i!=null&&_!=null&&i!==_&&e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsxs("button",{className:"btn btn-xs btn-ghost gap-1 text-[10px]",disabled:B,onClick:()=>ie(s.scope,!0),children:[B?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-down",size:10}),"Use Remote → Local"]}),e.jsxs("button",{className:"btn btn-xs btn-ghost gap-1 text-[10px]",disabled:Z,onClick:ke,children:[Z?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-up",size:10}),"Use Local → Remote"]})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:i!=null&&_!=null?e.jsx(ge,{globalText:i,projectText:_}):e.jsx("div",{className:"flex justify-center py-8",children:e.jsx("span",{className:"loading loading-spinner loading-md text-primary"})})})]}):M?e.jsxs("div",{className:"flex-1 overflow-hidden flex flex-col min-h-0 w-full",children:[e.jsxs("div",{className:"px-4 py-2 border-b border-base-300 flex items-center justify-between gap-2 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"w-2.5 h-2.5 rounded-sm bg-error/20 border border-error/40"}),e.jsx("span",{className:"text-base-content/50",children:"Global"})]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"w-2.5 h-2.5 rounded-sm bg-success/20 border border-success/40"}),e.jsx("span",{className:"text-base-content/50",children:"Project"})]}),Ce&&e.jsx(D,{variant:"success",size:"sm",children:"identical"})]}),!Ce&&e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsxs("button",{className:"btn btn-xs btn-ghost gap-1 text-[10px]",disabled:F,onClick:()=>re("project"),children:[F?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-down",size:10}),"Use Global → Project"]}),e.jsxs("button",{className:"btn btn-xs btn-ghost gap-1 text-[10px]",disabled:F,onClick:()=>re("global"),children:[F?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:arrow-up",size:10}),"Use Project → Global"]})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:de!=null&&me!=null?e.jsx(ge,{globalText:de,projectText:me}):e.jsx("div",{className:"flex justify-center py-8",children:e.jsx("span",{className:"loading loading-spinner loading-md text-primary"})})})]}):e.jsxs("div",{className:"flex-1 overflow-hidden flex min-h-0 w-full",children:[e.jsx("div",{className:`flex-1 min-w-0 border-r border-base-300 ${h?"flex flex-col p-0":"overflow-y-auto p-4"}`,children:S?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx("span",{className:"loading loading-spinner loading-md text-primary"})}):h?e.jsx("textarea",{className:"w-full flex-1 font-mono text-xs text-base-content/80 leading-relaxed bg-transparent resize-none focus:outline-none p-4",value:P??"",onChange:m=>u(m.target.value)}):i?L?e.jsx(Ve,{content:i}):e.jsx("pre",{className:"text-xs text-base-content/80 whitespace-pre-wrap font-mono leading-relaxed",children:i}):e.jsxs("div",{className:"text-center py-8 text-base-content/40",children:[e.jsx(d,{icon:"lucide:file-x",size:24,className:"mx-auto mb-2"}),e.jsx("p",{className:"text-sm",children:"Could not load content"})]})}),e.jsx("div",{className:"w-48 flex-shrink-0 overflow-y-auto p-4 space-y-4",children:e.jsxs("div",{className:"bg-base-200/60 rounded-lg p-3 space-y-3 text-xs",children:[e.jsx("p",{className:"font-semibold text-[10px] text-base-content/50 uppercase tracking-wider",children:"Details"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"Name"}),e.jsx("p",{className:"font-mono text-[10px] text-base-content/70 break-all",children:s.name})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"Category"}),e.jsx("p",{className:"text-[10px] text-base-content/70",children:$e[s.category]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"Scope"}),e.jsx("p",{className:"text-[10px] text-base-content/70 capitalize",children:s.scope})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"Path"}),e.jsx("p",{className:"font-mono text-[10px] text-base-content/70 break-all",children:s.filePath})]}),i&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"Lines"}),e.jsx("p",{className:"text-[10px] text-base-content/70",children:i.split(` `).length.toLocaleString()})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"Characters"}),e.jsx("p",{className:"text-[10px] text-base-content/70",children:i.length.toLocaleString()})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/40 uppercase tracking-wider mb-0.5",children:"~Tokens"}),e.jsx("p",{className:"text-[10px] text-base-content/70",children:Math.ceil(i.length/4).toLocaleString()})]})]})]})})]})]})})}function Fe(s,a){const c=s.split(` `),r=a.split(` `),b=c.length,y=r.length,w=Array.from({length:b+1},()=>new Array(y+1).fill(0));for(let v=1;v<=b;v++)for(let C=1;C<=y;C++)w[v][C]=c[v-1]===r[C-1]?w[v-1][C-1]+1:Math.max(w[v-1][C],w[v][C-1]);const j=[];let N=b,o=y;for(;N>0||o>0;)N>0&&o>0&&c[N-1]===r[o-1]?(j.push({type:"same",content:c[N-1]}),N--,o--):o>0&&(N===0||w[N][o-1]>=w[N-1][o])?(j.push({type:"added",content:r[o-1]}),o--):(j.push({type:"removed",content:c[N-1]}),N--);return j.reverse()}function ge({globalText:s,projectText:a}){const c=n.useMemo(()=>Fe(s,a),[s,a]);return s===a?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-base-content/40 gap-2",children:[e.jsx(d,{icon:"lucide:check-circle",size:24}),e.jsx("p",{className:"text-sm",children:"Both versions are identical"})]}):e.jsx("div",{className:"font-mono text-xs leading-relaxed",children:c.map((r,b)=>e.jsxs("div",{className:`px-4 py-px whitespace-pre-wrap break-all ${r.type==="removed"?"bg-error/10 text-error/80":r.type==="added"?"bg-success/10 text-success/80":"text-base-content/60"}`,children:[e.jsx("span",{className:"inline-block w-4 select-none opacity-40 text-right mr-3",children:r.type==="removed"?"−":r.type==="added"?"+":" "}),r.content||" "]},b))})}function Ve({content:s}){return e.jsx("div",{className:"markdown-preview text-sm text-base-content/80 leading-relaxed",children:e.jsx(Ue,{components:{h1:({children:a})=>e.jsx("h1",{className:"text-xl font-bold text-base-content mb-3 mt-4",children:a}),h2:({children:a})=>e.jsx("h2",{className:"text-lg font-bold text-base-content mb-2 mt-4",children:a}),h3:({children:a})=>e.jsx("h3",{className:"text-base font-semibold text-base-content mb-2 mt-3",children:a}),p:({children:a})=>e.jsx("p",{className:"mb-2",children:a}),ul:({children:a})=>e.jsx("ul",{className:"list-disc pl-5 mb-2 space-y-0.5",children:a}),ol:({children:a})=>e.jsx("ol",{className:"list-decimal pl-5 mb-2 space-y-0.5",children:a}),li:({children:a})=>e.jsx("li",{className:"text-sm",children:a}),code:({className:a,children:c})=>a?e.jsx("code",{className:"block bg-base-300 rounded-lg p-3 my-2 text-xs font-mono overflow-x-auto whitespace-pre",children:c}):e.jsx("code",{className:"bg-base-300 px-1 py-0.5 rounded text-xs font-mono",children:c}),pre:({children:a})=>e.jsx(e.Fragment,{children:a}),a:({href:a,children:c})=>e.jsx("a",{href:a,className:"text-primary hover:underline",target:"_blank",rel:"noopener noreferrer",children:c}),blockquote:({children:a})=>e.jsx("blockquote",{className:"border-l-2 border-primary/30 pl-3 my-2 text-base-content/60 italic",children:a}),strong:({children:a})=>e.jsx("strong",{className:"font-semibold text-base-content",children:a}),table:({children:a})=>e.jsx("table",{className:"table table-xs my-2",children:a}),th:({children:a})=>e.jsx("th",{className:"text-left text-base-content/70 font-semibold",children:a}),td:({children:a})=>e.jsx("td",{className:"text-base-content/60",children:a}),hr:()=>e.jsx("hr",{className:"border-base-300 my-4"})},children:s})})}function Qe(){const{selectedProject:s}=De(),{license:a,isLoading:c}=Ie(),{extensions:r,isLoading:b,error:y,refresh:w,readContent:j,saveContent:N,renameExtension:o,deleteExtension:v,moveExtension:C}=Ge(s??void 0),i=Ke(),[E,P]=n.useState(null),[u,S]=n.useState(null),[p,h]=n.useState(""),[f,x]=n.useState("all"),[t,g]=n.useState("all"),[$,L]=n.useState(""),[T,Y]=n.useState(""),[O,A]=n.useState(!1),[ee,se]=n.useState(!1),[te,G]=n.useState(null),[k,M]=n.useState(!1),[R,J]=n.useState(null),[q,ae]=n.useState(!1),[ne,F]=n.useState(null),H=l=>{F(l),setTimeout(()=>F(null),3e3)},le={readContent:j,saveContent:N,renameExtension:o,deleteExtension:v,moveExtension:C},X=async()=>{if(!$.trim())return;se(!0),G(null);const l=I&&O!==i.status.apmFormat,z=await i.connect($.trim(),T.trim(),O);if(se(!1),!z.ok){G(z.error??"Connection failed");return}if(l){const U=i.remoteExtensions.length;J({toApm:O,count:U});return}L(""),Y(""),A(!1),M(!1)},_=async()=>{if(!R)return;ae(!0);const l=await i.migrate(R.toApm);ae(!1),J(null),l.ok?(M(!1),L(""),Y(""),A(!1),H(`Migrated ${l.migrated??0} extension${(l.migrated??0)!==1?"s":""} to ${R.toApm?"APM":"native"} format`)):G(l.error??"Migration failed")},ue=async()=>{await i.disconnect(),t==="remote"&&g("all")},oe=()=>{L(i.status.remoteUrl??""),Y(i.status.subfolder??""),A(i.status.apmFormat),M(!0),G(null)};if(b)return e.jsxs("div",{className:"space-y-6",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Extensions"}),e.jsxs("div",{className:"animate-pulse space-y-3",children:[e.jsx("div",{className:"h-10 bg-base-200 rounded-xl"}),e.jsx("div",{className:"h-24 bg-base-200 rounded-xl"}),e.jsx("div",{className:"h-24 bg-base-200 rounded-xl"})]})]});if(y)return e.jsxs("div",{className:"space-y-6",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Extensions"}),e.jsx("div",{className:"alert alert-error",children:e.jsxs("span",{children:["Failed to load extensions: ",y]})})]});const K=(a==null?void 0:a.tier)==="team"||(a==null?void 0:a.tier)==="trial",Z=!c&&a!==null,I=K&&i.status.connected,B=new Set(r.filter(l=>!l.pluginName).map(l=>`${l.category}/${l.name}`)),ce=I?i.remoteExtensions.filter(l=>!B.has(`${l.category}/${l.name}`)).length:0,Q=r.length+ce;return e.jsxs("div",{className:"space-y-6",children:[ne&&e.jsxs("div",{className:"alert alert-success py-2 text-xs shadow-sm",children:[e.jsx(d,{icon:"lucide:check-circle",size:14}),e.jsx("span",{children:ne})]}),R&&e.jsxs("div",{className:"alert py-2 text-xs shadow-sm border border-warning/30",children:[e.jsx(d,{icon:"lucide:arrow-right-left",size:14,className:"text-warning"}),e.jsxs("span",{children:["Migrate ",R.count," extension",R.count!==1?"s":""," to"," ",e.jsx("strong",{children:R.toApm?"APM":"native"})," format?",R.toApm?" Files will be renamed to APM conventions and apm.yml will be created.":" Files will be renamed back to native format and apm.yml will be removed."]}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx("button",{className:"btn btn-warning btn-xs",disabled:q,onClick:_,children:q?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Migrate"}),e.jsx("button",{className:"btn btn-ghost btn-xs",disabled:q,onClick:()=>J(null),children:"Cancel"})]})]}),e.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Extensions"}),e.jsx(Oe,{}),e.jsxs("span",{className:"text-xs text-base-content/50",children:[Q," extension",Q!==1?"s":""]})]}),e.jsx("input",{type:"search",className:"input input-bordered input-sm w-48",placeholder:"Search extensions...",value:p,onChange:l=>h(l.target.value)})]}),e.jsxs("div",{className:"grid sm:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"bg-base-200/40 rounded-xl p-4 space-y-3",children:[e.jsx("p",{className:"text-xs font-semibold text-base-content/50 uppercase tracking-wider",children:"Categories"}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:[{icon:"lucide:wand-2",color:"text-violet-400",label:"Skills",desc:"Reusable workflows loaded automatically when relevant"},{icon:"lucide:book",color:"text-amber-400",label:"Rules",desc:"Instructions Claude in context that follows every session"},{icon:"lucide:terminal",color:"text-emerald-400",label:"Commands",desc:"Slash commands invoked on demand by the user via /command"},{icon:"lucide:bot",color:"text-sky-400",label:"Agents",desc:"Sub-agents for specialized tasks that have their own context"}].map(l=>e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(d,{icon:l.icon,size:14,className:`${l.color} flex-shrink-0 mt-0.5`}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:l.label}),e.jsx("p",{className:"text-xs text-base-content/50 leading-snug",children:l.desc})]})]},l.label))})]}),e.jsxs("div",{className:"bg-base-200/40 rounded-xl p-4 space-y-3",children:[e.jsx("p",{className:"text-xs font-semibold text-base-content/50 uppercase tracking-wider",children:"Scope & Remote"}),e.jsxs("div",{className:"space-y-2.5 text-sm text-base-content/70",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(d,{icon:"lucide:user",size:14,className:"text-warning flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/80",children:"Global"})," — ",e.jsx("code",{className:"text-xs bg-base-300 px-1 rounded",children:"~/.claude/"})," on the user level, available in every project"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(d,{icon:"lucide:folder",size:14,className:"text-info flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/80",children:"Project"})," — ",e.jsx("code",{className:"text-xs bg-base-300 px-1 rounded",children:".claude/"})," committed to repo, shared with teammates"]})]})]}),e.jsx("div",{className:"pt-2 border-t border-base-300 space-y-2",children:Z?K?e.jsx(e.Fragment,{children:I&&!k?e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(d,{icon:"lucide:git-branch",size:14,className:"text-success flex-shrink-0"}),e.jsx("p",{className:"text-xs text-base-content/70 font-mono truncate",children:i.status.remoteUrl})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{className:"btn btn-ghost btn-xs px-2 gap-1",onClick:oe,title:"Edit remote settings",children:e.jsx(d,{icon:"lucide:pencil",size:12,className:"text-base-content/50"})}),e.jsx("button",{className:"btn btn-ghost btn-xs px-2 gap-1",onClick:ue,title:"Disconnect remote",children:e.jsx(d,{icon:"lucide:unlink",size:12,className:"text-error/50"})})]})]}),e.jsxs("p",{className:"text-[10px] text-base-content/40 pl-6",children:[i.status.apmFormat&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-primary font-medium",children:"APM"})," · "]}),i.status.subfolder&&e.jsxs(e.Fragment,{children:[i.status.subfolder," — "]}),(()=>{const l=i.remoteExtensions,z={skill:0,rule:0,command:0,agent:0};for(const re of l)z[re.category]++;const U=[];return z.skill&&U.push(`${z.skill} skill${z.skill>1?"s":""}`),z.rule&&U.push(`${z.rule} rule${z.rule>1?"s":""}`),z.command&&U.push(`${z.command} command${z.command>1?"s":""}`),z.agent&&U.push(`${z.agent} agent${z.agent>1?"s":""}`),U.length>0?U.join(", "):"empty repository"})()]})]}):k?e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("p",{className:"text-xs font-medium text-base-content/60 flex items-center gap-1.5",children:[e.jsx(d,{icon:"lucide:git-branch",size:12}),I?"Edit Remote":"Connect Remote"]}),e.jsx("button",{className:"btn btn-ghost btn-xs text-[10px]",onClick:()=>{M(!1),G(null)},children:"Cancel"})]}),e.jsx("input",{type:"url",className:"input input-bordered input-xs w-full font-mono text-xs",placeholder:"https://github.com/org/repo.git",value:$,autoFocus:!0,onChange:l=>L(l.target.value),onKeyDown:l=>{l.key==="Enter"&&X()}}),e.jsx("input",{type:"text",className:"input input-bordered input-xs w-full font-mono text-xs",placeholder:"Subfolder (optional, e.g. plugins/myteam)",value:T,onChange:l=>Y(l.target.value),onKeyDown:l=>{l.key==="Enter"&&X()}}),e.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer",children:[e.jsx("input",{type:"checkbox",className:"checkbox checkbox-xs checkbox-primary",checked:O,onChange:l=>A(l.target.checked)}),e.jsx("span",{className:"text-[10px] text-base-content/60",children:"APM format"}),e.jsx("a",{href:"https://microsoft.github.io/apm/introduction/key-concepts/",target:"_blank",rel:"noopener noreferrer",className:"text-[9px] text-primary/50 hover:text-primary",onClick:l=>l.stopPropagation(),children:"?"})]}),e.jsxs("button",{className:"btn btn-primary btn-xs w-full",disabled:ee||!$.trim(),onClick:X,children:[ee?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(d,{icon:"lucide:link",size:12}),I?"Update":"Connect"]}),te&&e.jsx("div",{className:"alert alert-error py-1 text-[10px]",children:te})]}):e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 text-xs w-full justify-start",onClick:()=>M(!0),children:[e.jsx(d,{icon:"lucide:git-branch",size:14,className:"text-base-content/40"}),e.jsx("span",{className:"text-base-content/60",children:"Connect a team remote to share extensions via git"})]})}):e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"text-xs font-medium text-base-content/60 flex items-center gap-1.5",children:[e.jsx(d,{icon:"lucide:git-branch",size:12}),"Team Remote"]}),e.jsxs("div",{className:"space-y-1.5 text-[10px] text-base-content/40",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(d,{icon:"lucide:upload",size:10,className:"text-base-content/40"}),e.jsx("span",{children:"Push & pull extensions via any git repository"})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(d,{icon:"lucide:git-compare",size:10,className:"text-base-content/40"}),e.jsx("span",{children:"Compare local vs remote with side-by-side diff"})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(d,{icon:"lucide:package",size:10,className:"text-base-content/40"}),e.jsxs("span",{children:["APM-compatible format — installable via ",e.jsx("code",{className:"bg-base-300 px-0.5 rounded",children:"apm install"})]})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(d,{icon:"lucide:users",size:10,className:"text-base-content/40"}),e.jsx("span",{children:"Discover & download team extensions with one click"})]})]}),e.jsxs("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"btn btn-xs btn-outline btn-primary w-full gap-1 text-[10px]",children:[e.jsx(d,{icon:"lucide:arrow-up-right",size:10}),"Upgrade to Team"]})]}):e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"text-xs font-medium text-base-content/60 flex items-center gap-1.5",children:[e.jsx(d,{icon:"lucide:git-branch",size:12}),"Team Remote"]}),e.jsx("div",{className:"animate-pulse h-8 bg-base-200 rounded"})]})})]})]}),e.jsx(Be,{extensions:r,onExtensionClick:P,onRemoteExtensionClick:S,searchQuery:p,categoryFilter:f,scopeFilter:t,onCategoryFilterChange:x,onScopeFilterChange:g,remoteExtensions:K?i.remoteExtensions:[],isRemoteConnected:I}),E&&e.jsx(Ee,{extension:E,onClose:()=>P(null),onRefresh:w,project:s??void 0,extensionOps:le,otherScopeExists:r.some(l=>l.name===E.name&&l.category===E.category&&l.scope!==E.scope&&!l.pluginName),remoteOps:K?i:void 0,hasRemoteCounterpart:K&&i.remoteExtensions.some(l=>l.name===E.name&&l.category===E.category),onSuccess:H}),u&&e.jsx(Ee,{extension:{name:u.name,category:u.category,scope:"global",filePath:u.filePath,editable:!1,format:"markdown"},onClose:()=>S(null),onRefresh:()=>{w(),i.refresh()},project:s??void 0,extensionOps:le,otherScopeExists:!1,isRemoteItem:!0,remoteOps:i,hasRemoteCounterpart:!1,existsInGlobal:r.some(l=>l.name===u.name&&l.category===u.category&&l.scope==="global"&&!l.pluginName),existsInProject:r.some(l=>l.name===u.name&&l.category===u.category&&l.scope==="project"),onSuccess:H})]})}export{Qe as ExtensionsView}; diff --git a/pilot/ui/index4.js b/pilot/ui/index4.js index 47f0a767..69c68ecf 100644 --- a/pilot/ui/index4.js +++ b/pilot/ui/index4.js @@ -1 +1 @@ -import{a as x,j as s}from"./vendor-markdown.js";import{R as F,A as H,C as P,X as O,Y as y,T as R,b as E,B as W,c as A}from"./vendor-charts.js";import{l as Y,D as b,M as X}from"./viewer-bundle.js";import"./vendor-diff.js";const Q=300*1e3;function q(){const[t,a]=x.useState([]),[e,l]=x.useState([]),[o,r]=x.useState([]),[n,i]=x.useState(!0),[d,c]=x.useState(null),[m,u]=x.useState(!0),[f,g]=x.useState([]),h=x.useCallback(async()=>{var N,D;try{const[v,K,B]=await Promise.all([fetch("/api/usage/daily"),fetch("/api/usage/monthly"),fetch("/api/usage/models")]),[k,S,I]=await Promise.all([v.json(),K.json(),B.json()]),V=(((N=k.daily)==null?void 0:N.length)??0)>0||(((D=S.monthly)==null?void 0:D.length)??0)>0;u(V),a(k.daily||[]),l(S.monthly||[]),r(I.models||[]);const z=new Set([...k.unknownModels??[],...S.unknownModels??[],...I.unknownModels??[]]);g(Array.from(z)),c(null)}catch(v){c(v instanceof Error?v.message:"Failed to load usage data"),u(!1)}finally{i(!1)}},[]);return x.useEffect(()=>{h();const N=setInterval(h,Q);return()=>{clearInterval(N)}},[h]),{daily:t,monthly:e,models:o,isLoading:n,error:d,dataExists:m,unknownModels:f}}function j(t){return t<1e3?t.toString():t<1e6?`${(t/1e3).toFixed(1)}k`:`${(t/1e6).toFixed(1)}M`}function J({daily:t}){const a=t.slice(-14),e=a.length>0?a[a.length-1]:null,l=(e==null?void 0:e.totalCost)||0,o=(e==null?void 0:e.totalTokens)||0,r=a.length||1,n=a.reduce((m,u)=>m+(u.totalCost||0),0),i=a.reduce((m,u)=>m+(u.totalTokens||0),0),d=n/r,c=Math.round(i/r);return s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[s.jsx("div",{className:"stats shadow bg-base-200",children:s.jsxs("div",{className:"stat",children:[s.jsx("div",{className:"stat-title",children:"Daily Cost"}),s.jsxs("div",{className:"stat-value text-primary text-data",children:[l.toFixed(2),"$"]}),s.jsx("div",{className:"stat-desc",children:"Today"})]})}),s.jsx("div",{className:"stats shadow bg-base-200",children:s.jsxs("div",{className:"stat",children:[s.jsx("div",{className:"stat-title",children:"Avg Daily Cost"}),s.jsxs("div",{className:"stat-value text-data",children:["⌀ ",d.toFixed(2),"$"]}),s.jsxs("div",{className:"stat-desc",children:["Last ",r," days"]})]})}),s.jsx("div",{className:"stats shadow bg-base-200",children:s.jsxs("div",{className:"stat",children:[s.jsx("div",{className:"stat-title",children:"Daily Tokens"}),s.jsx("div",{className:"stat-value text-primary text-data",children:j(o)}),s.jsx("div",{className:"stat-desc",children:"Today"})]})}),s.jsx("div",{className:"stats shadow bg-base-200",children:s.jsxs("div",{className:"stat",children:[s.jsx("div",{className:"stat-title",children:"Avg Daily Tokens"}),s.jsxs("div",{className:"stat-value text-data",children:["⌀ ",j(c)]}),s.jsxs("div",{className:"stat-desc",children:["Last ",r," days"]})]})})]})}function _({active:t,payload:a,label:e,labelFormatter:l,valueFormatter:o}){if(!t||!a||a.length===0)return null;const r=l?l(e||""):e;return s.jsxs("div",{className:"bg-base-200 border border-base-300 rounded-lg px-3 py-2 shadow-lg text-sm",children:[r&&s.jsx("p",{className:"text-base-content font-medium mb-1",children:r}),a.map((n,i)=>{const[d,c]=o?o(n.value,n.name):[n.value,n.name];return s.jsxs("p",{className:"text-base-content/80",children:[s.jsxs("span",{className:"font-medium",children:[c,":"]})," ",d]},i)})]})}function Z({daily:t}){if(!t||t.length===0)return s.jsx("div",{className:"flex items-center justify-center h-48 text-base-content/50",children:"No data available"});const a=t.map(e=>({...e,displayDate:e.date.includes("-")?`${e.date.slice(5,7)}/${e.date.slice(8,10)}`:`${e.date.slice(4,6)}/${e.date.slice(6,8)}`}));return s.jsx("div",{className:"h-80 w-full",children:s.jsx(F,{width:"100%",height:"100%",debounce:50,children:s.jsxs(H,{data:a,margin:{top:5,right:20,left:10,bottom:5},children:[s.jsxs("defs",{children:[s.jsxs("linearGradient",{id:"dailyCostGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[s.jsx("stop",{offset:"5%",stopColor:"#3b82f6",stopOpacity:.6}),s.jsx("stop",{offset:"95%",stopColor:"#3b82f6",stopOpacity:0})]}),s.jsxs("linearGradient",{id:"dailyTokenGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[s.jsx("stop",{offset:"5%",stopColor:"#8b5cf6",stopOpacity:.3}),s.jsx("stop",{offset:"95%",stopColor:"#8b5cf6",stopOpacity:0})]})]}),s.jsx(P,{strokeDasharray:"3 3",className:"stroke-base-content/10"}),s.jsx(O,{dataKey:"displayDate",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1}),s.jsx(y,{yAxisId:"cost",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1,tickFormatter:e=>`${e.toFixed(0)}$`}),s.jsx(y,{yAxisId:"tokens",orientation:"right",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1,tickFormatter:e=>j(e)}),s.jsx(R,{content:s.jsx(_,{labelFormatter:e=>`Date: ${e}`,valueFormatter:(e,l)=>l==="totalCost"?[`${Number(e).toFixed(2)}$`,"Cost"]:l==="totalTokens"?[j(Number(e)),"Tokens"]:[e,l]})}),s.jsx(E,{yAxisId:"tokens",type:"monotone",dataKey:"totalTokens",stroke:"#8b5cf6",strokeWidth:1.5,fill:"url(#dailyTokenGradient)"}),s.jsx(E,{yAxisId:"cost",type:"monotone",dataKey:"totalCost",stroke:"#3b82f6",strokeWidth:2,fill:"url(#dailyCostGradient)"})]})})})}function ss({monthly:t}){return!t||t.length===0?s.jsx("div",{className:"flex items-center justify-center h-48 text-base-content/50",children:"No data available"}):s.jsx("div",{className:"h-80 w-full",children:s.jsx(F,{width:"100%",height:"100%",debounce:50,children:s.jsxs(W,{data:t,margin:{top:5,right:20,left:10,bottom:5},children:[s.jsx(P,{strokeDasharray:"3 3",className:"stroke-base-content/10"}),s.jsx(O,{dataKey:"month",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1}),s.jsx(y,{yAxisId:"cost",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1,tickFormatter:a=>`${a.toFixed(0)}$`}),s.jsx(y,{yAxisId:"tokens",orientation:"right",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1,tickFormatter:a=>j(a)}),s.jsx(R,{content:s.jsx(_,{labelFormatter:a=>`Month: ${a}`,valueFormatter:(a,e)=>e==="totalCost"?[`${Number(a).toFixed(2)}$`,"Cost"]:e==="totalTokens"?[j(Number(a)),"Tokens"]:[a,e]})}),s.jsx(A,{yAxisId:"tokens",dataKey:"totalTokens",fill:"#8b5cf6",opacity:.4,radius:[4,4,0,0]}),s.jsx(A,{yAxisId:"cost",dataKey:"totalCost",fill:"#6366f1",opacity:.8,radius:[4,4,0,0]})]})})})}const C={Opus:"bg-primary",Sonnet:"bg-secondary",Haiku:"bg-info"},es={Opus:"text-primary",Sonnet:"text-secondary",Haiku:"text-info"};function L(t){return t.includes("opus")?"Opus":t.includes("sonnet")?"Sonnet":t.includes("haiku")?"Haiku":t.split("-").pop()??t}function ts(t){const a=new Map;for(const e of t)for(const l of e.modelBreakdowns??[]){const o=(l.inputTokens||0)+(l.outputTokens||0)+(l.cacheCreationTokens||0)+(l.cacheReadTokens||0),r=L(l.modelName),n=a.get(r);n?(n.totalCost+=l.cost||0,n.totalTokens+=o):a.set(r,{model:r,totalCost:l.cost||0,totalTokens:o})}return Array.from(a.values()).sort((e,l)=>l.totalCost-e.totalCost)}function as({daily:t}){const[a,e]=x.useState("week"),l=x.useMemo(()=>{const n=new Date,i=n.toISOString().slice(0,10);let d;if(a==="day")d=t.filter(c=>c.date===i);else if(a==="week"){const c=new Date(n.getTime()-6048e5).toISOString().slice(0,10);d=t.filter(m=>m.date>=c)}else{const c=new Date(n.getTime()-2592e6).toISOString().slice(0,10);d=t.filter(m=>m.date>=c)}return ts(d)},[t,a]),o=l.reduce((n,i)=>n+i.totalCost,0),r=Math.max(...l.map(n=>n.totalCost),1);return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("h2",{className:"card-title text-sm",children:"Cost by Model"}),s.jsx("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:["day","week","month"].map(n=>s.jsx("button",{className:`px-2.5 py-1 transition-colors ${a===n?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>e(n),children:n==="day"?"Day":n==="week"?"Week":"Month"},n))})]}),l.length===0?s.jsx("p",{className:"text-sm text-base-content/40 mt-3",children:"No usage data for this period"}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"flex rounded-lg overflow-hidden h-3 bg-base-300 mt-3",children:l.map(n=>{const i=o>0?n.totalCost/o*100:0;return i<.5?null:s.jsx("div",{className:`${C[n.model]??"bg-info"} transition-all`,style:{width:`${i}%`},title:`${L(n.model)}: ${i.toFixed(1)}%`},n.model)})}),s.jsx("div",{className:"mt-4 space-y-3",children:l.map(n=>{const i=o>0?n.totalCost/o*100:0,d=r>0?n.totalCost/r*100:0;return s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center justify-between mb-1",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:`w-2.5 h-2.5 rounded-full ${C[n.model]??"bg-info"}`}),s.jsx("span",{className:`text-sm font-medium ${es[n.model]??""}`,children:L(n.model)}),s.jsxs("span",{className:"text-xs text-base-content/40",children:[i.toFixed(0),"%"]})]}),s.jsxs("span",{className:"text-sm font-mono font-semibold",children:["$",n.totalCost.toFixed(2)]})]}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"flex-1 bg-base-300 rounded-full h-1.5",children:s.jsx("div",{className:`h-full rounded-full ${C[n.model]??"bg-info"} transition-all`,style:{width:`${d}%`}})}),s.jsxs("span",{className:"text-xs text-base-content/40 shrink-0 w-16 text-right",children:[j(n.totalTokens)," tok"]})]})]},n.model)})})]})]})})}function ns(){var m,u,f,g;const{settings:t,isLoading:a}=Y(),e=a?b:t,l=h=>X[h]??h,o=l(((m=e.skills)==null?void 0:m["spec-plan"])??b.skills["spec-plan"]),r=l(((u=e.skills)==null?void 0:u["spec-implement"])??b.skills["spec-implement"]),n=l(((f=e.skills)==null?void 0:f["spec-verify"])??b.skills["spec-verify"]),i=l(((g=e.agents)==null?void 0:g["changes-review"])??b.agents["changes-review"]),d=l(e.model??b.model),c=h=>h.includes("Opus")?"text-primary":h.includes("Sonnet")?"text-secondary":h.includes("Haiku")?"text-accent":"";return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("h2",{className:"card-title text-sm",children:"Model Routing"}),s.jsx("a",{href:"#/settings",className:"text-xs text-primary hover:underline",children:"Configure"})]}),s.jsx("div",{className:"overflow-x-auto mt-3",children:s.jsxs("table",{className:"table table-sm",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{className:"text-xs",children:"Phase"}),s.jsx("th",{className:"text-xs",children:"Orchestrator"}),s.jsx("th",{className:"text-xs",children:"Review"})]})}),s.jsxs("tbody",{children:[s.jsxs("tr",{children:[s.jsx("td",{className:"text-sm",children:"Quick Mode"}),s.jsx("td",{className:`font-mono text-sm ${c(d)}`,children:d}),s.jsx("td",{className:"text-base-content/40",children:"—"})]}),s.jsxs("tr",{children:[s.jsx("td",{className:"text-sm",children:"Planning"}),s.jsx("td",{className:`font-mono text-sm ${c(o)}`,children:o}),s.jsx("td",{className:`font-mono text-sm ${c(i)}`,children:i})]}),s.jsxs("tr",{children:[s.jsx("td",{className:"text-sm",children:"Implementation"}),s.jsx("td",{className:`font-mono text-sm ${c(r)}`,children:r}),s.jsx("td",{className:"text-base-content/40",children:"—"})]}),s.jsxs("tr",{children:[s.jsx("td",{className:"text-sm",children:"Verification"}),s.jsx("td",{className:`font-mono text-sm ${c(n)}`,children:n}),s.jsx("td",{className:`font-mono text-sm ${c(i)}`,children:i})]})]})]})})]})})}const ls=300*1e3;function is(){const[t,a]=x.useState(null),[e,l]=x.useState(!0),[o,r]=x.useState(null),n=x.useCallback(async()=>{try{const i=await fetch("/api/tool-savings");if(!i.ok)throw new Error(`HTTP ${i.status}`);const d=await i.json();a(d),r(null)}catch(i){r(i instanceof Error?i.message:"Failed to load tool savings")}finally{l(!1)}},[]);return x.useEffect(()=>{n();const i=setInterval(n,ls);return()=>clearInterval(i)},[n]),{data:t,isLoading:e,error:o}}function os(t){const a=Math.round(t/1e3);if(a<60)return`${a}s`;const e=Math.floor(a/60);return e<60?`${e}m ${a%60}s`:`${Math.floor(e/60)}h ${e%60}m`}function rs({title:t}){return s.jsx("div",{className:"card bg-base-200 animate-pulse",children:s.jsxs("div",{className:"card-body",children:[s.jsx("h2",{className:"card-title text-sm",children:t}),s.jsx("div",{className:"h-10 bg-base-300 rounded w-32 my-3"}),s.jsx("div",{className:"h-2 bg-base-300 rounded w-full mb-4"}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"h-3 bg-base-300 rounded w-3/4"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-2/3"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-1/2"})]})]})})}function U({title:t,subtitle:a,provider:e}){return s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-start justify-between gap-2",children:[s.jsx("h2",{className:"card-title text-sm",children:t}),s.jsxs("span",{className:"badge badge-ghost badge-sm text-xs font-mono shrink-0",children:["via ",e]})]}),s.jsx("p",{className:"text-xs text-base-content/50 mt-0.5",children:a})]})}function G({title:t,subtitle:a,provider:e,message:l,installHint:o}){return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx(U,{title:t,subtitle:a,provider:e}),s.jsx("div",{className:"mt-4 text-sm text-base-content/60",children:l}),o&&s.jsx("div",{className:"mt-2 text-xs text-base-content/50",children:s.jsx("code",{className:"bg-base-300 px-1 rounded",children:o})})]})})}const w="Tool Token Savings",M="RTK output compression";function cs({rtk:t}){if(!t.available)return s.jsx(G,{title:w,subtitle:M,provider:"RTK",message:t.error??"RTK is not installed.",installHint:"cargo install rtk-cli"});const a=t.totalSaved??0,e=t.totalInput??0,l=t.totalOutput??0,o=t.avgSavingsPct??0,r=t.totalCommands??0,n=t.totalTimeMs??0,i=e+l;return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx(U,{title:w,subtitle:M,provider:"RTK"}),s.jsxs("div",{className:"flex items-baseline gap-3 mt-3",children:[s.jsx("span",{className:"text-4xl font-bold text-primary text-data",children:j(a)}),s.jsx("span",{className:"text-sm text-base-content/60",children:"tokens saved"})]}),s.jsxs("div",{className:"mt-3",children:[s.jsxs("div",{className:"flex items-baseline justify-between text-xs mb-1",children:[s.jsx("span",{className:"text-base-content/60",children:"Savings ratio"}),s.jsxs("span",{className:"font-mono text-primary",children:[o.toFixed(1),"%"]})]}),s.jsx("progress",{className:"progress progress-primary w-full h-2",value:Math.min(o,100),max:100})]}),s.jsxs("div",{className:"mt-4 text-xs space-y-1.5 text-base-content/70",children:[s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Commands processed"}),s.jsx("span",{className:"font-mono text-base-content",children:r.toLocaleString()})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Tokens processed"}),s.jsx("span",{className:"font-mono text-base-content",children:j(i)})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Total exec time"}),s.jsx("span",{className:"font-mono text-base-content",children:os(n)})]})]})]})})}function ds(){const{data:t,isLoading:a,error:e}=is();return a?s.jsx(rs,{title:w}):e||!t?s.jsx(G,{title:w,subtitle:M,provider:"RTK",message:e??"Failed to load stats."}):s.jsx(cs,{rtk:t.rtk})}const xs=300*1e3;function ms(t){const a=r=>{const n=r.getFullYear(),i=String(r.getMonth()+1).padStart(2,"0"),d=String(r.getDate()).padStart(2,"0");return`${n}${i}${d}`},e=new Date,l=a(e),o=new Date(e);return t==="day"||(t==="week"?o.setDate(o.getDate()-6):o.setDate(o.getDate()-29)),{since:a(o),until:l}}function hs(t="week"){const[a,e]=x.useState(null),[l,o]=x.useState(!0),[r,n]=x.useState(null);return x.useEffect(()=>{let i=!1;async function d(){try{const{since:m,until:u}=ms(t),f=`/api/usage/yield?since=${m}&until=${u}`,h=await(await fetch(f)).json();if(i)return;e(h),n(null)}catch(m){if(i)return;n(m instanceof Error?m.message:"Failed to load code quality data")}finally{i||o(!1)}}o(!0),d();const c=setInterval(d,xs);return()=>{i=!0,clearInterval(c)}},[t]),{data:a,isLoading:l,error:r}}const us="Code Quality",js="AI work that landed in main";function p(t){return t===0?"$0.00":t<.01?"<$0.01":`$${t.toFixed(2)}`}function fs(t){return`${(t*100).toFixed(1)}%`}function bs({period:t,onChange:a}){return s.jsx("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:["day","week","month"].map(e=>s.jsx("button",{className:`px-2.5 py-1 transition-colors ${t===e?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>a(e),children:e==="day"?"Day":e==="week"?"Week":"Month"},e))})}function T({period:t,onPeriodChange:a}){return s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-start justify-between gap-2",children:[s.jsx("h2",{className:"card-title text-sm",children:us}),s.jsx(bs,{period:t,onChange:a})]}),s.jsx("p",{className:"text-xs text-base-content/50 mt-0.5",children:js})]})}function gs(){const[t,a]=x.useState("week"),{data:e,isLoading:l,error:o}=hs(t);if(l)return s.jsx("div",{className:"card bg-base-200 animate-pulse",children:s.jsxs("div",{className:"card-body",children:[s.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-2"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-48 mb-4"}),s.jsx("div",{className:"h-10 bg-base-300 rounded w-32 mb-3"}),s.jsx("div",{className:"h-2 bg-base-300 rounded w-full mb-4"}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"h-3 bg-base-300 rounded w-3/4"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-2/3"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-1/2"})]})]})});if(o)return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx(T,{period:t,onPeriodChange:a}),s.jsx("div",{className:"alert alert-error mt-3 text-xs",children:s.jsxs("span",{children:["Failed to load: ",o]})})]})});if(!e||!e.hasGitData){const i=(e==null?void 0:e.totalSessions)??0,d=(e==null?void 0:e.totalCost)??0,c=i>0?d/i:0;return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx(T,{period:t,onPeriodChange:a}),s.jsxs("div",{className:"flex items-baseline gap-3 mt-3",children:[s.jsx("span",{className:"text-4xl font-bold text-primary text-data",children:i.toLocaleString()}),s.jsx("span",{className:"text-sm text-base-content/60",children:"sessions"})]}),s.jsxs("div",{className:"mt-3",children:[s.jsxs("div",{className:"flex items-baseline justify-between text-xs mb-1",children:[s.jsx("span",{className:"text-base-content/60",children:"Git correlation"}),s.jsx("span",{className:"font-mono text-base-content/40",children:"unavailable"})]}),s.jsx("progress",{className:"progress progress-primary w-full h-2",value:0,max:1})]}),s.jsxs("div",{className:"mt-4 text-xs space-y-1.5 text-base-content/70",children:[s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Total spend"}),s.jsx("span",{className:"font-mono text-base-content",children:p(d)})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Avg cost per session"}),s.jsx("span",{className:"font-mono text-base-content",children:i>0?p(c):"—"})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Edit turns"}),s.jsx("span",{className:"font-mono text-base-content",children:((e==null?void 0:e.totalEditTurns)??0).toLocaleString()})]})]}),s.jsx("p",{className:"text-[11px] text-base-content/40 mt-3",children:"Run from a project with a git repo for commits-shipped stats."})]})})}const r=e.totalCost>0?e.productive.cost/e.totalCost:0,n=e.commitsShipped>0?e.productive.cost/e.commitsShipped:0;return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx(T,{period:t,onPeriodChange:a}),s.jsxs("div",{className:"flex items-baseline gap-3 mt-3",children:[s.jsx("span",{className:"text-4xl font-bold text-primary text-data",children:e.commitsShipped.toLocaleString()}),s.jsx("span",{className:"text-sm text-base-content/60",children:"commits shipped"})]}),s.jsxs("div",{className:"mt-3",children:[s.jsxs("div",{className:"flex items-baseline justify-between text-xs mb-1",children:[s.jsx("span",{className:"text-base-content/60",children:"Spend that landed code"}),s.jsx("span",{className:"font-mono text-primary",children:fs(r)})]}),s.jsx("progress",{className:"progress progress-primary w-full h-2",value:Math.min(r,1),max:1})]}),s.jsxs("div",{className:"mt-4 text-xs space-y-1.5 text-base-content/70",children:[s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Sessions that landed code"}),s.jsxs("span",{className:"font-mono text-base-content",children:[e.productive.sessions.toLocaleString(),e.totalSessions>0&&s.jsxs("span",{className:"text-base-content/40",children:[" ","/ ",e.totalSessions.toLocaleString()]})]})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Spend that landed code"}),s.jsxs("span",{className:"font-mono text-base-content",children:[p(e.productive.cost),e.totalCost>0&&s.jsxs("span",{className:"text-base-content/40",children:[" ","/ ",p(e.totalCost)]})]})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Cost per shipped commit"}),s.jsx("span",{className:"font-mono text-base-content",children:e.commitsShipped>0?p(n):"—"})]})]}),e.degraded&&s.jsxs("p",{className:"text-warning/80 text-[11px] mt-2",children:["Some repos timed out: ",e.degradedProjects.join(", ")]})]})})}const ps=300*1e3;function Ns(){const[t,a]=x.useState(null),[e,l]=x.useState(!0),[o,r]=x.useState(null);return x.useEffect(()=>{let n=!1;async function i(){try{const m=await(await fetch("/api/usage/plan")).json();if(n)return;a(m),r(null)}catch(c){if(n)return;r(c instanceof Error?c.message:"Failed to load plan")}finally{n||l(!1)}}i();const d=setInterval(i,ps);return()=>{n=!0,clearInterval(d)}},[]),{data:t,isLoading:e,error:o}}function $(t){return t===0?"$0.00":t<.01?"<$0.01":`$${t.toFixed(2)}`}function vs(){const{data:t,isLoading:a,error:e}=Ns();if(a)return s.jsx("div",{className:"card bg-base-200 animate-pulse",children:s.jsxs("div",{className:"card-body",children:[s.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-4"}),s.jsx("div",{className:"h-16 bg-base-300 rounded"})]})});if(e||!t||t.plan.kind==="none")return null;const l=t.progress,o=Math.min(1,Math.max(0,l.pctUsed)),r=l.status==="over"?"progress-error":l.status==="near"?"progress-warning":"progress-success";return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsxs("div",{className:"flex items-baseline justify-between",children:[s.jsx("h2",{className:"card-title text-sm",children:"Plan progress"}),s.jsxs("span",{className:"text-xs uppercase tracking-wide text-base-content/60",children:[t.plan.kind," · ",$(l.monthlyBudgetUsd),"/month"]})]}),s.jsxs("div",{className:"mt-2",children:[s.jsx("progress",{className:`progress ${r} w-full`,value:o,max:1}),s.jsxs("div",{className:"flex justify-between text-xs text-base-content/70 mt-1",children:[s.jsxs("span",{children:[$(l.spendToDate)," spent (",Math.round(o*100),"%)"]}),s.jsxs("span",{children:["Forecast end of period: ",$(l.forecastEndOfPeriod)]})]}),s.jsxs("p",{className:"text-xs text-base-content/50 mt-2",children:["Period: ",l.periodStart," → ",l.periodEnd," (day ",l.daysElapsed," of ",l.daysTotal,")"]})]})]})})}function Cs(){const{daily:t,monthly:a,isLoading:e,error:l,dataExists:o,unknownModels:r}=q();if(e)return s.jsxs("div",{className:"space-y-8",children:[s.jsxs("div",{className:"flex items-baseline gap-3",children:[s.jsx("h1",{className:"text-2xl font-bold",children:"Usage"}),s.jsxs("span",{className:"text-xs text-base-content/40 flex items-center gap-2",children:[s.jsx("span",{className:"loading loading-spinner loading-xs"}),"Loading usage data..."]})]}),s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[...Array(4)].map((d,c)=>s.jsx("div",{className:"stats shadow bg-base-200 animate-pulse",children:s.jsxs("div",{className:"stat",children:[s.jsx("div",{className:"h-3 bg-base-300 rounded w-20 mb-2"}),s.jsx("div",{className:"h-8 bg-base-300 rounded w-24 mb-1"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-16"})]})},c))}),s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[s.jsx("div",{className:"card bg-base-200 lg:col-span-2 animate-pulse",children:s.jsxs("div",{className:"card-body",children:[s.jsx("div",{className:"h-4 bg-base-300 rounded w-48 mb-4"}),s.jsx("div",{className:"h-48 bg-base-300 rounded"})]})}),s.jsx("div",{className:"card bg-base-200 animate-pulse",children:s.jsxs("div",{className:"card-body",children:[s.jsx("div",{className:"h-4 bg-base-300 rounded w-40 mb-4"}),s.jsx("div",{className:"h-48 bg-base-300 rounded"})]})})]})]});if(l)return s.jsxs("div",{className:"space-y-8",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-bold",children:"Usage"}),s.jsx("p",{className:"text-base-content/60",children:"Token usage and API cost tracking"})]}),s.jsx("div",{className:"alert alert-error",children:s.jsxs("span",{children:["Failed to load usage data: ",l]})})]});if(!o)return s.jsxs("div",{className:"space-y-8",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-bold",children:"Usage"}),s.jsx("p",{className:"text-base-content/60",children:"Token usage and API cost tracking"})]}),s.jsxs("div",{className:"alert alert-info",children:[s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",className:"stroke-current shrink-0 w-6 h-6",children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),s.jsx("span",{children:"No usage data yet. Statistics will appear here after you use Claude Code."})]})]});const n=t.slice(-14),i=a.slice(-3);return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex items-baseline gap-3",children:[s.jsx("h1",{className:"text-2xl font-bold",children:"Usage"}),s.jsx("span",{className:"text-base-content/50 text-sm",children:"Daily costs, token breakdown, and model routing"})]}),s.jsx(J,{daily:t}),r.length>0&&s.jsx("div",{className:"alert alert-warning text-xs",children:s.jsxs("span",{children:["Pricing unavailable for: ",s.jsx("code",{children:r.join(", ")}),". Cost totals for these models are reported as $0; real usage may be higher."]})}),s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[s.jsx("div",{className:"card bg-base-200 lg:col-span-2",children:s.jsxs("div",{className:"card-body",children:[s.jsx("h2",{className:"card-title text-sm",children:"Daily Cost & Tokens (Last 14 Days)"}),s.jsx(Z,{daily:n})]})}),s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx("h2",{className:"card-title text-sm",children:"Monthly Cost & Tokens"}),s.jsx(ss,{monthly:i})]})})]}),s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 items-stretch [&>*]:h-full",children:[s.jsx(as,{daily:t}),s.jsx(ns,{})]}),s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 items-stretch [&>*]:h-full",children:[s.jsx(gs,{}),s.jsx(ds,{})]}),s.jsx(vs,{})]})}export{Cs as UsageView}; +import{a as d,j as s}from"./vendor-markdown.js";import{R as F,A as V,C as A,X as P,Y as g,T as O,b as I,B as H,c as E}from"./vendor-charts.js";import"./vendor-diff.js";const W=300*1e3;function Y(){const[t,a]=d.useState([]),[e,i]=d.useState([]),[o,r]=d.useState([]),[n,l]=d.useState(!0),[c,x]=d.useState(null),[m,u]=d.useState(!0),[v,$]=d.useState([]),j=d.useCallback(async()=>{var b,D;try{const[p,G,K]=await Promise.all([fetch("/api/usage/daily"),fetch("/api/usage/monthly"),fetch("/api/usage/models")]),[y,w,M]=await Promise.all([p.json(),G.json(),K.json()]),B=(((b=y.daily)==null?void 0:b.length)??0)>0||(((D=w.monthly)==null?void 0:D.length)??0)>0;u(B),a(y.daily||[]),i(w.monthly||[]),r(M.models||[]);const z=new Set([...y.unknownModels??[],...w.unknownModels??[],...M.unknownModels??[]]);$(Array.from(z)),x(null)}catch(p){x(p instanceof Error?p.message:"Failed to load usage data"),u(!1)}finally{l(!1)}},[]);return d.useEffect(()=>{j();const b=setInterval(j,W);return()=>{clearInterval(b)}},[j]),{daily:t,monthly:e,models:o,isLoading:n,error:c,dataExists:m,unknownModels:v}}function h(t){return t<1e3?t.toString():t<1e6?`${(t/1e3).toFixed(1)}k`:`${(t/1e6).toFixed(1)}M`}function X({daily:t}){const a=t.slice(-14),e=a.length>0?a[a.length-1]:null,i=(e==null?void 0:e.totalCost)||0,o=(e==null?void 0:e.totalTokens)||0,r=a.length||1,n=a.reduce((m,u)=>m+(u.totalCost||0),0),l=a.reduce((m,u)=>m+(u.totalTokens||0),0),c=n/r,x=Math.round(l/r);return s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[s.jsx("div",{className:"stats shadow bg-base-200",children:s.jsxs("div",{className:"stat",children:[s.jsx("div",{className:"stat-title",children:"Daily Cost"}),s.jsxs("div",{className:"stat-value text-primary text-data",children:[i.toFixed(2),"$"]}),s.jsx("div",{className:"stat-desc",children:"Today"})]})}),s.jsx("div",{className:"stats shadow bg-base-200",children:s.jsxs("div",{className:"stat",children:[s.jsx("div",{className:"stat-title",children:"Avg Daily Cost"}),s.jsxs("div",{className:"stat-value text-data",children:["⌀ ",c.toFixed(2),"$"]}),s.jsxs("div",{className:"stat-desc",children:["Last ",r," days"]})]})}),s.jsx("div",{className:"stats shadow bg-base-200",children:s.jsxs("div",{className:"stat",children:[s.jsx("div",{className:"stat-title",children:"Daily Tokens"}),s.jsx("div",{className:"stat-value text-primary text-data",children:h(o)}),s.jsx("div",{className:"stat-desc",children:"Today"})]})}),s.jsx("div",{className:"stats shadow bg-base-200",children:s.jsxs("div",{className:"stat",children:[s.jsx("div",{className:"stat-title",children:"Avg Daily Tokens"}),s.jsxs("div",{className:"stat-value text-data",children:["⌀ ",h(x)]}),s.jsxs("div",{className:"stat-desc",children:["Last ",r," days"]})]})})]})}function R({active:t,payload:a,label:e,labelFormatter:i,valueFormatter:o}){if(!t||!a||a.length===0)return null;const r=i?i(e||""):e;return s.jsxs("div",{className:"bg-base-200 border border-base-300 rounded-lg px-3 py-2 shadow-lg text-sm",children:[r&&s.jsx("p",{className:"text-base-content font-medium mb-1",children:r}),a.map((n,l)=>{const[c,x]=o?o(n.value,n.name):[n.value,n.name];return s.jsxs("p",{className:"text-base-content/80",children:[s.jsxs("span",{className:"font-medium",children:[x,":"]})," ",c]},l)})]})}function q({daily:t}){if(!t||t.length===0)return s.jsx("div",{className:"flex items-center justify-center h-48 text-base-content/50",children:"No data available"});const a=t.map(e=>({...e,displayDate:e.date.includes("-")?`${e.date.slice(5,7)}/${e.date.slice(8,10)}`:`${e.date.slice(4,6)}/${e.date.slice(6,8)}`}));return s.jsx("div",{className:"h-80 w-full",children:s.jsx(F,{width:"100%",height:"100%",debounce:50,children:s.jsxs(V,{data:a,margin:{top:5,right:20,left:10,bottom:5},children:[s.jsxs("defs",{children:[s.jsxs("linearGradient",{id:"dailyCostGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[s.jsx("stop",{offset:"5%",stopColor:"#3b82f6",stopOpacity:.6}),s.jsx("stop",{offset:"95%",stopColor:"#3b82f6",stopOpacity:0})]}),s.jsxs("linearGradient",{id:"dailyTokenGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[s.jsx("stop",{offset:"5%",stopColor:"#8b5cf6",stopOpacity:.3}),s.jsx("stop",{offset:"95%",stopColor:"#8b5cf6",stopOpacity:0})]})]}),s.jsx(A,{strokeDasharray:"3 3",className:"stroke-base-content/10"}),s.jsx(P,{dataKey:"displayDate",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1}),s.jsx(g,{yAxisId:"cost",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1,tickFormatter:e=>`${e.toFixed(0)}$`}),s.jsx(g,{yAxisId:"tokens",orientation:"right",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1,tickFormatter:e=>h(e)}),s.jsx(O,{content:s.jsx(R,{labelFormatter:e=>`Date: ${e}`,valueFormatter:(e,i)=>i==="totalCost"?[`${Number(e).toFixed(2)}$`,"Cost"]:i==="totalTokens"?[h(Number(e)),"Tokens"]:[e,i]})}),s.jsx(I,{yAxisId:"tokens",type:"monotone",dataKey:"totalTokens",stroke:"#8b5cf6",strokeWidth:1.5,fill:"url(#dailyTokenGradient)"}),s.jsx(I,{yAxisId:"cost",type:"monotone",dataKey:"totalCost",stroke:"#3b82f6",strokeWidth:2,fill:"url(#dailyCostGradient)"})]})})})}function Q({monthly:t}){return!t||t.length===0?s.jsx("div",{className:"flex items-center justify-center h-48 text-base-content/50",children:"No data available"}):s.jsx("div",{className:"h-80 w-full",children:s.jsx(F,{width:"100%",height:"100%",debounce:50,children:s.jsxs(H,{data:t,margin:{top:5,right:20,left:10,bottom:5},children:[s.jsx(A,{strokeDasharray:"3 3",className:"stroke-base-content/10"}),s.jsx(P,{dataKey:"month",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1}),s.jsx(g,{yAxisId:"cost",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1,tickFormatter:a=>`${a.toFixed(0)}$`}),s.jsx(g,{yAxisId:"tokens",orientation:"right",tick:{fontSize:12},className:"text-base-content/60",tickLine:!1,axisLine:!1,tickFormatter:a=>h(a)}),s.jsx(O,{content:s.jsx(R,{labelFormatter:a=>`Month: ${a}`,valueFormatter:(a,e)=>e==="totalCost"?[`${Number(a).toFixed(2)}$`,"Cost"]:e==="totalTokens"?[h(Number(a)),"Tokens"]:[a,e]})}),s.jsx(E,{yAxisId:"tokens",dataKey:"totalTokens",fill:"#8b5cf6",opacity:.4,radius:[4,4,0,0]}),s.jsx(E,{yAxisId:"cost",dataKey:"totalCost",fill:"#6366f1",opacity:.8,radius:[4,4,0,0]})]})})})}const k={Opus:"bg-primary",Sonnet:"bg-secondary",Haiku:"bg-info"},J={Opus:"text-primary",Sonnet:"text-secondary",Haiku:"text-info"};function T(t){return t.includes("opus")?"Opus":t.includes("sonnet")?"Sonnet":t.includes("haiku")?"Haiku":t.split("-").pop()??t}function Z(t){const a=new Map;for(const e of t)for(const i of e.modelBreakdowns??[]){const o=(i.inputTokens||0)+(i.outputTokens||0)+(i.cacheCreationTokens||0)+(i.cacheReadTokens||0),r=T(i.modelName),n=a.get(r);n?(n.totalCost+=i.cost||0,n.totalTokens+=o):a.set(r,{model:r,totalCost:i.cost||0,totalTokens:o})}return Array.from(a.values()).sort((e,i)=>i.totalCost-e.totalCost)}function ss({daily:t}){const[a,e]=d.useState("week"),i=d.useMemo(()=>{const n=new Date,l=n.toISOString().slice(0,10);let c;if(a==="day")c=t.filter(x=>x.date===l);else if(a==="week"){const x=new Date(n.getTime()-6048e5).toISOString().slice(0,10);c=t.filter(m=>m.date>=x)}else{const x=new Date(n.getTime()-2592e6).toISOString().slice(0,10);c=t.filter(m=>m.date>=x)}return Z(c)},[t,a]),o=i.reduce((n,l)=>n+l.totalCost,0),r=Math.max(...i.map(n=>n.totalCost),1);return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("h2",{className:"card-title text-sm",children:"Cost by Model"}),s.jsx("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:["day","week","month"].map(n=>s.jsx("button",{className:`px-2.5 py-1 transition-colors ${a===n?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>e(n),children:n==="day"?"Day":n==="week"?"Week":"Month"},n))})]}),i.length===0?s.jsx("p",{className:"text-sm text-base-content/40 mt-3",children:"No usage data for this period"}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"flex rounded-lg overflow-hidden h-3 bg-base-300 mt-3",children:i.map(n=>{const l=o>0?n.totalCost/o*100:0;return l<.5?null:s.jsx("div",{className:`${k[n.model]??"bg-info"} transition-all`,style:{width:`${l}%`},title:`${T(n.model)}: ${l.toFixed(1)}%`},n.model)})}),s.jsx("div",{className:"mt-4 space-y-3",children:i.map(n=>{const l=o>0?n.totalCost/o*100:0,c=r>0?n.totalCost/r*100:0;return s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center justify-between mb-1",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:`w-2.5 h-2.5 rounded-full ${k[n.model]??"bg-info"}`}),s.jsx("span",{className:`text-sm font-medium ${J[n.model]??""}`,children:T(n.model)}),s.jsxs("span",{className:"text-xs text-base-content/40",children:[l.toFixed(0),"%"]})]}),s.jsxs("span",{className:"text-sm font-mono font-semibold",children:["$",n.totalCost.toFixed(2)]})]}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"flex-1 bg-base-300 rounded-full h-1.5",children:s.jsx("div",{className:`h-full rounded-full ${k[n.model]??"bg-info"} transition-all`,style:{width:`${c}%`}})}),s.jsxs("span",{className:"text-xs text-base-content/40 shrink-0 w-16 text-right",children:[h(n.totalTokens)," tok"]})]})]},n.model)})})]})]})})}const es=300*1e3;function ts(){const[t,a]=d.useState(null),[e,i]=d.useState(!0),[o,r]=d.useState(null),n=d.useCallback(async()=>{try{const l=await fetch("/api/tool-savings");if(!l.ok)throw new Error(`HTTP ${l.status}`);const c=await l.json();a(c),r(null)}catch(l){r(l instanceof Error?l.message:"Failed to load tool savings")}finally{i(!1)}},[]);return d.useEffect(()=>{n();const l=setInterval(n,es);return()=>clearInterval(l)},[n]),{data:t,isLoading:e,error:o}}function as(t){const a=Math.round(t/1e3);if(a<60)return`${a}s`;const e=Math.floor(a/60);return e<60?`${e}m ${a%60}s`:`${Math.floor(e/60)}h ${e%60}m`}function ns({title:t}){return s.jsx("div",{className:"card bg-base-200 animate-pulse",children:s.jsxs("div",{className:"card-body",children:[s.jsx("h2",{className:"card-title text-sm",children:t}),s.jsx("div",{className:"h-10 bg-base-300 rounded w-32 my-3"}),s.jsx("div",{className:"h-2 bg-base-300 rounded w-full mb-4"}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"h-3 bg-base-300 rounded w-3/4"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-2/3"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-1/2"})]})]})})}function U({title:t,subtitle:a,provider:e}){return s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-start justify-between gap-2",children:[s.jsx("h2",{className:"card-title text-sm",children:t}),s.jsxs("span",{className:"badge badge-ghost badge-sm text-xs font-mono shrink-0",children:["via ",e]})]}),s.jsx("p",{className:"text-xs text-base-content/50 mt-0.5",children:a})]})}function _({title:t,subtitle:a,provider:e,message:i,installHint:o}){return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx(U,{title:t,subtitle:a,provider:e}),s.jsx("div",{className:"mt-4 text-sm text-base-content/60",children:i}),o&&s.jsx("div",{className:"mt-2 text-xs text-base-content/50",children:s.jsx("code",{className:"bg-base-300 px-1 rounded",children:o})})]})})}const N="Tool Token Savings",L="RTK output compression";function is({rtk:t}){if(!t.available)return s.jsx(_,{title:N,subtitle:L,provider:"RTK",message:t.error??"RTK is not installed.",installHint:"cargo install rtk-cli"});const a=t.totalSaved??0,e=t.totalInput??0,i=t.totalOutput??0,o=t.avgSavingsPct??0,r=t.totalCommands??0,n=t.totalTimeMs??0,l=e+i;return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx(U,{title:N,subtitle:L,provider:"RTK"}),s.jsxs("div",{className:"flex items-baseline gap-3 mt-3",children:[s.jsx("span",{className:"text-4xl font-bold text-primary text-data",children:h(a)}),s.jsx("span",{className:"text-sm text-base-content/60",children:"tokens saved"})]}),s.jsxs("div",{className:"mt-3",children:[s.jsxs("div",{className:"flex items-baseline justify-between text-xs mb-1",children:[s.jsx("span",{className:"text-base-content/60",children:"Savings ratio"}),s.jsxs("span",{className:"font-mono text-primary",children:[o.toFixed(1),"%"]})]}),s.jsx("progress",{className:"progress progress-primary w-full h-2",value:Math.min(o,100),max:100})]}),s.jsxs("div",{className:"mt-4 text-xs space-y-1.5 text-base-content/70",children:[s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Commands processed"}),s.jsx("span",{className:"font-mono text-base-content",children:r.toLocaleString()})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Tokens processed"}),s.jsx("span",{className:"font-mono text-base-content",children:h(l)})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Total exec time"}),s.jsx("span",{className:"font-mono text-base-content",children:as(n)})]})]})]})})}function ls(){const{data:t,isLoading:a,error:e}=ts();return a?s.jsx(ns,{title:N}):e||!t?s.jsx(_,{title:N,subtitle:L,provider:"RTK",message:e??"Failed to load stats."}):s.jsx(is,{rtk:t.rtk})}const os=300*1e3;function rs(t){const a=r=>{const n=r.getFullYear(),l=String(r.getMonth()+1).padStart(2,"0"),c=String(r.getDate()).padStart(2,"0");return`${n}${l}${c}`},e=new Date,i=a(e),o=new Date(e);return t==="day"||(t==="week"?o.setDate(o.getDate()-6):o.setDate(o.getDate()-29)),{since:a(o),until:i}}function cs(t="week"){const[a,e]=d.useState(null),[i,o]=d.useState(!0),[r,n]=d.useState(null);return d.useEffect(()=>{let l=!1;async function c(){try{const{since:m,until:u}=rs(t),v=`/api/usage/yield?since=${m}&until=${u}`,j=await(await fetch(v)).json();if(l)return;e(j),n(null)}catch(m){if(l)return;n(m instanceof Error?m.message:"Failed to load code quality data")}finally{l||o(!1)}}o(!0),c();const x=setInterval(c,os);return()=>{l=!0,clearInterval(x)}},[t]),{data:a,isLoading:i,error:r}}const ds="Code Quality",xs="AI work that landed in main";function f(t){return t===0?"$0.00":t<.01?"<$0.01":`$${t.toFixed(2)}`}function ms(t){return`${(t*100).toFixed(1)}%`}function hs({period:t,onChange:a}){return s.jsx("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:["day","week","month"].map(e=>s.jsx("button",{className:`px-2.5 py-1 transition-colors ${t===e?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>a(e),children:e==="day"?"Day":e==="week"?"Week":"Month"},e))})}function S({period:t,onPeriodChange:a}){return s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-start justify-between gap-2",children:[s.jsx("h2",{className:"card-title text-sm",children:ds}),s.jsx(hs,{period:t,onChange:a})]}),s.jsx("p",{className:"text-xs text-base-content/50 mt-0.5",children:xs})]})}function us(){const[t,a]=d.useState("week"),{data:e,isLoading:i,error:o}=cs(t);if(i)return s.jsx("div",{className:"card bg-base-200 animate-pulse",children:s.jsxs("div",{className:"card-body",children:[s.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-2"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-48 mb-4"}),s.jsx("div",{className:"h-10 bg-base-300 rounded w-32 mb-3"}),s.jsx("div",{className:"h-2 bg-base-300 rounded w-full mb-4"}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"h-3 bg-base-300 rounded w-3/4"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-2/3"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-1/2"})]})]})});if(o)return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx(S,{period:t,onPeriodChange:a}),s.jsx("div",{className:"alert alert-error mt-3 text-xs",children:s.jsxs("span",{children:["Failed to load: ",o]})})]})});if(!e||!e.hasGitData){const l=(e==null?void 0:e.totalSessions)??0,c=(e==null?void 0:e.totalCost)??0,x=l>0?c/l:0;return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx(S,{period:t,onPeriodChange:a}),s.jsxs("div",{className:"flex items-baseline gap-3 mt-3",children:[s.jsx("span",{className:"text-4xl font-bold text-primary text-data",children:l.toLocaleString()}),s.jsx("span",{className:"text-sm text-base-content/60",children:"sessions"})]}),s.jsxs("div",{className:"mt-3",children:[s.jsxs("div",{className:"flex items-baseline justify-between text-xs mb-1",children:[s.jsx("span",{className:"text-base-content/60",children:"Git correlation"}),s.jsx("span",{className:"font-mono text-base-content/40",children:"unavailable"})]}),s.jsx("progress",{className:"progress progress-primary w-full h-2",value:0,max:1})]}),s.jsxs("div",{className:"mt-4 text-xs space-y-1.5 text-base-content/70",children:[s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Total spend"}),s.jsx("span",{className:"font-mono text-base-content",children:f(c)})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Avg cost per session"}),s.jsx("span",{className:"font-mono text-base-content",children:l>0?f(x):"—"})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Edit turns"}),s.jsx("span",{className:"font-mono text-base-content",children:((e==null?void 0:e.totalEditTurns)??0).toLocaleString()})]})]}),s.jsx("p",{className:"text-[11px] text-base-content/40 mt-3",children:"Run from a project with a git repo for commits-shipped stats."})]})})}const r=e.totalCost>0?e.productive.cost/e.totalCost:0,n=e.commitsShipped>0?e.productive.cost/e.commitsShipped:0;return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx(S,{period:t,onPeriodChange:a}),s.jsxs("div",{className:"flex items-baseline gap-3 mt-3",children:[s.jsx("span",{className:"text-4xl font-bold text-primary text-data",children:e.commitsShipped.toLocaleString()}),s.jsx("span",{className:"text-sm text-base-content/60",children:"commits shipped"})]}),s.jsxs("div",{className:"mt-3",children:[s.jsxs("div",{className:"flex items-baseline justify-between text-xs mb-1",children:[s.jsx("span",{className:"text-base-content/60",children:"Spend that landed code"}),s.jsx("span",{className:"font-mono text-primary",children:ms(r)})]}),s.jsx("progress",{className:"progress progress-primary w-full h-2",value:Math.min(r,1),max:1})]}),s.jsxs("div",{className:"mt-4 text-xs space-y-1.5 text-base-content/70",children:[s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Sessions that landed code"}),s.jsxs("span",{className:"font-mono text-base-content",children:[e.productive.sessions.toLocaleString(),e.totalSessions>0&&s.jsxs("span",{className:"text-base-content/40",children:[" ","/ ",e.totalSessions.toLocaleString()]})]})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Spend that landed code"}),s.jsxs("span",{className:"font-mono text-base-content",children:[f(e.productive.cost),e.totalCost>0&&s.jsxs("span",{className:"text-base-content/40",children:[" ","/ ",f(e.totalCost)]})]})]}),s.jsxs("div",{className:"flex justify-between",children:[s.jsx("span",{children:"Cost per shipped commit"}),s.jsx("span",{className:"font-mono text-base-content",children:e.commitsShipped>0?f(n):"—"})]})]}),e.degraded&&s.jsxs("p",{className:"text-warning/80 text-[11px] mt-2",children:["Some repos timed out: ",e.degradedProjects.join(", ")]})]})})}const js=300*1e3;function fs(){const[t,a]=d.useState(null),[e,i]=d.useState(!0),[o,r]=d.useState(null);return d.useEffect(()=>{let n=!1;async function l(){try{const m=await(await fetch("/api/usage/plan")).json();if(n)return;a(m),r(null)}catch(x){if(n)return;r(x instanceof Error?x.message:"Failed to load plan")}finally{n||i(!1)}}l();const c=setInterval(l,js);return()=>{n=!0,clearInterval(c)}},[]),{data:t,isLoading:e,error:o}}function C(t){return t===0?"$0.00":t<.01?"<$0.01":`$${t.toFixed(2)}`}function bs(){const{data:t,isLoading:a,error:e}=fs();if(a)return s.jsx("div",{className:"card bg-base-200 animate-pulse",children:s.jsxs("div",{className:"card-body",children:[s.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-4"}),s.jsx("div",{className:"h-16 bg-base-300 rounded"})]})});if(e||!t||t.plan.kind==="none")return null;const i=t.progress,o=Math.min(1,Math.max(0,i.pctUsed)),r=i.status==="over"?"progress-error":i.status==="near"?"progress-warning":"progress-success";return s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsxs("div",{className:"flex items-baseline justify-between",children:[s.jsx("h2",{className:"card-title text-sm",children:"Plan progress"}),s.jsxs("span",{className:"text-xs uppercase tracking-wide text-base-content/60",children:[t.plan.kind," · ",C(i.monthlyBudgetUsd),"/month"]})]}),s.jsxs("div",{className:"mt-2",children:[s.jsx("progress",{className:`progress ${r} w-full`,value:o,max:1}),s.jsxs("div",{className:"flex justify-between text-xs text-base-content/70 mt-1",children:[s.jsxs("span",{children:[C(i.spendToDate)," spent (",Math.round(o*100),"%)"]}),s.jsxs("span",{children:["Forecast end of period: ",C(i.forecastEndOfPeriod)]})]}),s.jsxs("p",{className:"text-xs text-base-content/50 mt-2",children:["Period: ",i.periodStart," → ",i.periodEnd," (day ",i.daysElapsed," of ",i.daysTotal,")"]})]})]})})}function vs(){const{daily:t,monthly:a,isLoading:e,error:i,dataExists:o,unknownModels:r}=Y();if(e)return s.jsxs("div",{className:"space-y-8",children:[s.jsxs("div",{className:"flex items-baseline gap-3",children:[s.jsx("h1",{className:"text-2xl font-bold",children:"Usage"}),s.jsxs("span",{className:"text-xs text-base-content/40 flex items-center gap-2",children:[s.jsx("span",{className:"loading loading-spinner loading-xs"}),"Loading usage data..."]})]}),s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[...Array(4)].map((c,x)=>s.jsx("div",{className:"stats shadow bg-base-200 animate-pulse",children:s.jsxs("div",{className:"stat",children:[s.jsx("div",{className:"h-3 bg-base-300 rounded w-20 mb-2"}),s.jsx("div",{className:"h-8 bg-base-300 rounded w-24 mb-1"}),s.jsx("div",{className:"h-3 bg-base-300 rounded w-16"})]})},x))}),s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[s.jsx("div",{className:"card bg-base-200 lg:col-span-2 animate-pulse",children:s.jsxs("div",{className:"card-body",children:[s.jsx("div",{className:"h-4 bg-base-300 rounded w-48 mb-4"}),s.jsx("div",{className:"h-48 bg-base-300 rounded"})]})}),s.jsx("div",{className:"card bg-base-200 animate-pulse",children:s.jsxs("div",{className:"card-body",children:[s.jsx("div",{className:"h-4 bg-base-300 rounded w-40 mb-4"}),s.jsx("div",{className:"h-48 bg-base-300 rounded"})]})})]})]});if(i)return s.jsxs("div",{className:"space-y-8",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-bold",children:"Usage"}),s.jsx("p",{className:"text-base-content/60",children:"Token usage and API cost tracking"})]}),s.jsx("div",{className:"alert alert-error",children:s.jsxs("span",{children:["Failed to load usage data: ",i]})})]});if(!o)return s.jsxs("div",{className:"space-y-8",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-bold",children:"Usage"}),s.jsx("p",{className:"text-base-content/60",children:"Token usage and API cost tracking"})]}),s.jsxs("div",{className:"alert alert-info",children:[s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",className:"stroke-current shrink-0 w-6 h-6",children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),s.jsx("span",{children:"No usage data yet. Statistics will appear here after you use Claude Code."})]})]});const n=t.slice(-14),l=a.slice(-3);return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex items-baseline gap-3",children:[s.jsx("h1",{className:"text-2xl font-bold",children:"Usage"}),s.jsx("span",{className:"text-base-content/50 text-sm",children:"Daily costs, model breakdown, and savings"})]}),s.jsx(X,{daily:t}),r.length>0&&s.jsx("div",{className:"alert alert-warning text-xs",children:s.jsxs("span",{children:["Pricing unavailable for: ",s.jsx("code",{children:r.join(", ")}),". Cost totals for these models are reported as $0; real usage may be higher."]})}),s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[s.jsx("div",{className:"card bg-base-200 lg:col-span-2",children:s.jsxs("div",{className:"card-body",children:[s.jsx("h2",{className:"card-title text-sm",children:"Daily Cost & Tokens (Last 14 Days)"}),s.jsx(q,{daily:n})]})}),s.jsx("div",{className:"card bg-base-200",children:s.jsxs("div",{className:"card-body",children:[s.jsx("h2",{className:"card-title text-sm",children:"Monthly Cost & Tokens"}),s.jsx(Q,{monthly:l})]})})]}),s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4 items-stretch [&>*]:h-full",children:[s.jsx(ss,{daily:t}),s.jsx(us,{}),s.jsx(ls,{})]}),s.jsx(bs,{})]})}export{vs as UsageView}; diff --git a/pilot/ui/index5.js b/pilot/ui/index5.js index d7e614a7..1137844e 100644 --- a/pilot/ui/index5.js +++ b/pilot/ui/index5.js @@ -1 +1 @@ -import{I as x,n as A,_ as R,V as F}from"./viewer-bundle.js";import{a as i,j as e}from"./vendor-markdown.js";import"./vendor-charts.js";import{u as L,p as P,c as k,S as I}from"./PlanAnnotator.js";import{decompress as _}from"./compress.js";import"./vendor-diff.js";function D({sharerAnnotations:n,recipientAnnotations:r,onRemoveRecipientAnnotation:o,onUpdateRecipientAnnotation:m,onSendFeedback:f,isSending:c=!1}){const[u,a]=i.useState(!1),[g,b]=i.useState(null),[j,s]=i.useState("");return e.jsxs("div",{className:"flex flex-col h-full border-l-2 border-base-300 bg-base-200/50",children:[e.jsxs("div",{className:"px-3 py-2.5 border-b border-base-300 flex-shrink-0 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(x,{icon:"lucide:message-square-plus",size:14,className:"text-primary"}),e.jsx("span",{className:"text-sm font-semibold flex-1",children:"Feedback Mode"}),r.length>0&&e.jsx("span",{className:"badge badge-primary badge-sm",children:r.length})]}),e.jsxs("button",{className:"btn btn-primary btn-sm w-full gap-2",disabled:r.length===0||c,onClick:f,children:[c?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(x,{icon:"lucide:send",size:14}),"Send Feedback (",r.length,")"]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-2 space-y-3",children:[n.length>0&&e.jsxs("div",{children:[e.jsxs("button",{className:"flex items-center gap-2 w-full text-left py-1 px-1 text-xs text-base-content/50 hover:text-base-content/70 transition-colors",onClick:()=>a(!u),children:[e.jsx(x,{icon:u?"lucide:chevron-down":"lucide:chevron-right",size:12}),e.jsxs("span",{children:[n.length," sharer annotation",n.length!==1?"s":""]})]}),u&&e.jsx("div",{className:"space-y-1 mt-1 ml-2",children:n.map((t,h)=>e.jsxs("div",{className:"flex items-start gap-2 p-2 rounded-lg bg-base-200/80 border border-base-300/50",children:[e.jsx("span",{className:"inline-flex items-center justify-center text-[10px] font-bold rounded-full w-4 h-4 flex-shrink-0 mt-0.5 bg-base-300 text-base-content/50",children:h+1}),e.jsxs("div",{className:"flex-1 min-w-0",children:[t.originalText&&e.jsxs("p",{className:"text-[11px] text-base-content/40 italic break-words mb-0.5",children:["“",t.originalText.slice(0,50),t.originalText.length>50?"…":"","”"]}),e.jsx("p",{className:"text-xs text-base-content/60 break-words",children:t.text})]})]},t.id))})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-base-content/60 px-1 mb-1",children:"Your Feedback"}),r.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center px-3",children:[e.jsx(x,{icon:"lucide:mouse-pointer",size:24,className:"text-base-content/15 mb-2"}),e.jsx("p",{className:"text-xs text-base-content/40",children:"Select text to add feedback"})]}):e.jsx("div",{className:"space-y-1",children:r.map((t,h)=>g===t.id?e.jsxs("div",{className:"p-2.5 rounded-lg border bg-base-200 border-base-300 space-y-2",children:[t.originalText&&e.jsxs("p",{className:"text-[11px] text-base-content/50 italic break-words",children:["“",t.originalText.slice(0,80),t.originalText.length>80?"…":"","”"]}),e.jsx("textarea",{value:j,onChange:v=>s(v.target.value),rows:2,autoFocus:!0,className:"textarea textarea-bordered textarea-xs w-full text-xs resize-none",placeholder:"Your feedback…"}),e.jsxs("div",{className:"flex gap-1 items-center",children:[e.jsx("button",{className:"btn btn-ghost btn-xs text-error",onClick:()=>{b(null),o(t.id)},children:e.jsx(x,{icon:"lucide:trash-2",size:11})}),e.jsxs("div",{className:"flex gap-1 ml-auto",children:[e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:()=>b(null),children:"Cancel"}),e.jsx("button",{className:"btn btn-neutral btn-xs",disabled:j===t.text,onClick:()=>{m(t.id,j),b(null)},children:"Save"})]})]})]},t.id):e.jsxs("div",{className:"flex items-start gap-2 p-2 rounded-lg cursor-pointer group transition-colors border border-transparent hover:bg-base-200/60",onClick:()=>{b(t.id),s(t.text)},children:[e.jsx("span",{className:"inline-flex items-center justify-center text-[10px] font-bold rounded-full w-4 h-4 flex-shrink-0 mt-0.5 bg-primary/20 text-primary",children:h+1}),e.jsxs("div",{className:"flex-1 min-w-0",children:[t.originalText&&e.jsxs("p",{className:"text-[11px] text-base-content/50 italic break-words mb-0.5",children:["“",t.originalText.slice(0,50),t.originalText.length>50?"…":"","”"]}),e.jsxs("p",{className:"text-xs text-base-content/80 break-words",children:[t.text.slice(0,100),t.text.length>100?"…":""]})]}),e.jsx("button",{className:"btn btn-ghost btn-xs opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0 text-error",onClick:v=>{v.stopPropagation(),o(t.id)},children:e.jsx(x,{icon:"lucide:x",size:11})})]},t.id))})]})]})]})}function M({selection:n,onSubmit:r,onDismiss:o}){const m=i.useRef(null),f=i.useRef(null),[c,u]=i.useState("");i.useEffect(()=>{var s;(s=f.current)==null||s.focus()},[]),i.useEffect(()=>{const s=h=>{h.key==="Escape"&&o()},t=h=>{requestAnimationFrame(()=>{m.current&&!m.current.contains(h.target)&&o()})};return document.addEventListener("keydown",s),document.addEventListener("mousedown",t),()=>{document.removeEventListener("keydown",s),document.removeEventListener("mousedown",t)}},[o]);const a=()=>{const s=c.trim();s&&(r(s),u(""))},g=s=>{s.key==="Enter"&&!s.shiftKey&&(s.preventDefault(),a())},b=n.rect.top-100,j=n.rect.left+n.rect.width/2;return e.jsxs("div",{ref:m,style:{position:"fixed",top:Math.max(b,8),left:j,transform:"translateX(-50%)",zIndex:50,width:240},className:"bg-base-100 border border-base-300 rounded-lg shadow-lg p-2 space-y-2",onMouseDown:s=>s.stopPropagation(),children:[e.jsx("textarea",{ref:f,value:c,onChange:s=>u(s.target.value),onKeyDown:g,placeholder:"Add annotation… (Enter to save)",rows:2,className:"textarea textarea-bordered textarea-xs w-full text-xs resize-none"}),e.jsxs("div",{className:"flex gap-1 justify-end",children:[e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:o,children:"Cancel"}),e.jsx("button",{className:"btn btn-primary btn-xs",disabled:!c.trim(),onClick:a,children:"Save"})]})]})}async function O(n){if(!n)return null;try{return JSON.parse(await _(n))}catch{return null}}async function U(){try{const n=await fetch("/api/license");if(n.ok){const r=await n.json();if(r.email)return r.email}}catch{}return"Anonymous"}function $({data:n}){const r=n??"",[o,m]=i.useState({status:"loading"}),{success:f,error:c}=A(),u=i.useRef(null),{state:a,addAnnotation:g,removeAnnotation:b,updateAnnotation:j,clearPendingSelection:s}=L(u);i.useEffect(()=>{if(!r){m({status:"error",message:"No share data in URL."});return}let l=!1;async function p(){try{const d=await O(r);if(!d){l||m({status:"error",message:"Failed to decompress — the URL may be corrupted or truncated."});return}l||m({status:"ready",payload:d})}catch(d){l||m({status:"error",message:d instanceof Error?d.message:"Failed to load shared spec."})}}return p(),()=>{l=!0}},[r]);const t=o.status==="ready"?o.payload:null,h=i.useMemo(()=>t?P(t.specContent):[],[t==null?void 0:t.specContent]),[w,v]=i.useState(!1),S=i.useCallback(l=>{var d;if(!a.pendingSelection)return;const p=k(a.pendingSelection.blockId,a.pendingSelection.selectedText,l);g(p),(d=window.getSelection())==null||d.removeAllRanges(),s()},[a.pendingSelection,g,s]),E=i.useCallback(async()=>{if(!(!t||a.annotations.length===0)){v(!0);try{const{compress:l}=await R(async()=>{const{compress:z}=await import("./compress.js");return{compress:z}},[],import.meta.url),p={annotations:a.annotations,author:await U(),planPath:t.planPath,createdAt:Date.now()},d=await l(JSON.stringify(p)),N=await fetch("https://pilot-shell.com/api/share",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:d})});if(N.status===413){c("Feedback too large — reduce annotation count and retry.");return}if(N.status===429){c("Rate limit reached — wait a few minutes and retry.");return}if(!N.ok){c("Failed to reach pilot-shell.com share service.");return}const{id:y}=await N.json();if(!y||!/^[A-Za-z0-9]{8}$/.test(y)){c("Failed to reach pilot-shell.com share service.");return}const T=`https://pilot-shell.com/s/${y}`;await navigator.clipboard.writeText(T),f("Feedback URL copied to clipboard — share it with the spec owner.")}finally{v(!1)}}},[a.annotations,t==null?void 0:t.planPath,f,c]);if(o.status==="loading")return e.jsx("div",{className:"min-h-screen p-6",children:e.jsx(F,{})});if(o.status==="error")return e.jsx("div",{className:"flex items-center justify-center min-h-screen p-6",children:e.jsxs("div",{className:"max-w-md text-center space-y-4",children:[e.jsx("div",{className:"bg-error/10 rounded-full w-16 h-16 flex items-center justify-center mx-auto",children:e.jsx(x,{icon:"lucide:lock",size:28,className:"text-error"})}),e.jsx("h2",{className:"text-xl font-semibold",children:"Failed to load shared spec"}),e.jsx("p",{className:"text-sm text-base-content/60",children:o.message}),e.jsxs("button",{className:"btn btn-ghost btn-sm",onClick:()=>window.location.reload(),children:[e.jsx(x,{icon:"lucide:refresh-cw",size:14}),"Retry"]})]})});const C=new Date(t.createdAt).toLocaleString(void 0,{dateStyle:"medium",timeStyle:"short"});return e.jsxs("div",{style:{display:"flex",width:"100%",height:"100vh",minHeight:0},children:[e.jsx("div",{style:{flex:1,minWidth:0,overflowY:"auto"},children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 py-6 space-y-4",children:[e.jsx("div",{className:"card bg-base-200 border border-base-300",children:e.jsx("div",{className:"card-body p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"bg-primary/10 rounded-lg p-2",children:e.jsx(x,{icon:"lucide:share-2",size:18,className:"text-primary"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Shared Specification"}),e.jsx("span",{className:"badge badge-primary badge-xs",children:"Annotatable"})]}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-base-content/50 mt-0.5",children:[(t==null?void 0:t.author)&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(x,{icon:"lucide:user",size:11}),t==null?void 0:t.author]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(x,{icon:"lucide:calendar",size:11}),C]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(x,{icon:"lucide:minimize-2",size:11,className:"text-success"}),"Compressed"]})]})]})]})})}),e.jsx("div",{className:"card bg-base-100 border border-base-300",children:e.jsx("div",{className:"card-body p-5",children:e.jsx("div",{ref:u,children:e.jsx(I,{blocks:h,annotations:a.annotations,selectedAnnotationId:a.selectedAnnotationId,onSelectAnnotation:()=>{},onQuickAnnotate:(l,p,d)=>{const N=k(l,p,d);g(N)}})})})})]})}),e.jsx("div",{style:{width:272,flexShrink:0,position:"sticky",top:0,height:"100vh",overflow:"hidden"},children:e.jsx(D,{sharerAnnotations:(t==null?void 0:t.annotations)??[],recipientAnnotations:a.annotations,onRemoveRecipientAnnotation:b,onUpdateRecipientAnnotation:(l,p)=>j(l,{text:p}),onSendFeedback:E,isSending:w})}),a.pendingSelection&&e.jsx(M,{selection:a.pendingSelection,onSubmit:S,onDismiss:s})]})}export{$ as SharedSpecView}; +import{I as x,m as A,_ as R,V as F}from"./viewer-bundle.js";import{a as i,j as e}from"./vendor-markdown.js";import"./vendor-charts.js";import{u as L,p as P,c as k,S as I}from"./PlanAnnotator.js";import{decompress as _}from"./compress.js";import"./vendor-diff.js";function D({sharerAnnotations:n,recipientAnnotations:r,onRemoveRecipientAnnotation:o,onUpdateRecipientAnnotation:m,onSendFeedback:f,isSending:c=!1}){const[u,a]=i.useState(!1),[g,b]=i.useState(null),[j,s]=i.useState("");return e.jsxs("div",{className:"flex flex-col h-full border-l-2 border-base-300 bg-base-200/50",children:[e.jsxs("div",{className:"px-3 py-2.5 border-b border-base-300 flex-shrink-0 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(x,{icon:"lucide:message-square-plus",size:14,className:"text-primary"}),e.jsx("span",{className:"text-sm font-semibold flex-1",children:"Feedback Mode"}),r.length>0&&e.jsx("span",{className:"badge badge-primary badge-sm",children:r.length})]}),e.jsxs("button",{className:"btn btn-primary btn-sm w-full gap-2",disabled:r.length===0||c,onClick:f,children:[c?e.jsx("span",{className:"loading loading-spinner loading-xs"}):e.jsx(x,{icon:"lucide:send",size:14}),"Send Feedback (",r.length,")"]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-2 space-y-3",children:[n.length>0&&e.jsxs("div",{children:[e.jsxs("button",{className:"flex items-center gap-2 w-full text-left py-1 px-1 text-xs text-base-content/50 hover:text-base-content/70 transition-colors",onClick:()=>a(!u),children:[e.jsx(x,{icon:u?"lucide:chevron-down":"lucide:chevron-right",size:12}),e.jsxs("span",{children:[n.length," sharer annotation",n.length!==1?"s":""]})]}),u&&e.jsx("div",{className:"space-y-1 mt-1 ml-2",children:n.map((t,h)=>e.jsxs("div",{className:"flex items-start gap-2 p-2 rounded-lg bg-base-200/80 border border-base-300/50",children:[e.jsx("span",{className:"inline-flex items-center justify-center text-[10px] font-bold rounded-full w-4 h-4 flex-shrink-0 mt-0.5 bg-base-300 text-base-content/50",children:h+1}),e.jsxs("div",{className:"flex-1 min-w-0",children:[t.originalText&&e.jsxs("p",{className:"text-[11px] text-base-content/40 italic break-words mb-0.5",children:["“",t.originalText.slice(0,50),t.originalText.length>50?"…":"","”"]}),e.jsx("p",{className:"text-xs text-base-content/60 break-words",children:t.text})]})]},t.id))})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-base-content/60 px-1 mb-1",children:"Your Feedback"}),r.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center px-3",children:[e.jsx(x,{icon:"lucide:mouse-pointer",size:24,className:"text-base-content/15 mb-2"}),e.jsx("p",{className:"text-xs text-base-content/40",children:"Select text to add feedback"})]}):e.jsx("div",{className:"space-y-1",children:r.map((t,h)=>g===t.id?e.jsxs("div",{className:"p-2.5 rounded-lg border bg-base-200 border-base-300 space-y-2",children:[t.originalText&&e.jsxs("p",{className:"text-[11px] text-base-content/50 italic break-words",children:["“",t.originalText.slice(0,80),t.originalText.length>80?"…":"","”"]}),e.jsx("textarea",{value:j,onChange:v=>s(v.target.value),rows:2,autoFocus:!0,className:"textarea textarea-bordered textarea-xs w-full text-xs resize-none",placeholder:"Your feedback…"}),e.jsxs("div",{className:"flex gap-1 items-center",children:[e.jsx("button",{className:"btn btn-ghost btn-xs text-error",onClick:()=>{b(null),o(t.id)},children:e.jsx(x,{icon:"lucide:trash-2",size:11})}),e.jsxs("div",{className:"flex gap-1 ml-auto",children:[e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:()=>b(null),children:"Cancel"}),e.jsx("button",{className:"btn btn-neutral btn-xs",disabled:j===t.text,onClick:()=>{m(t.id,j),b(null)},children:"Save"})]})]})]},t.id):e.jsxs("div",{className:"flex items-start gap-2 p-2 rounded-lg cursor-pointer group transition-colors border border-transparent hover:bg-base-200/60",onClick:()=>{b(t.id),s(t.text)},children:[e.jsx("span",{className:"inline-flex items-center justify-center text-[10px] font-bold rounded-full w-4 h-4 flex-shrink-0 mt-0.5 bg-primary/20 text-primary",children:h+1}),e.jsxs("div",{className:"flex-1 min-w-0",children:[t.originalText&&e.jsxs("p",{className:"text-[11px] text-base-content/50 italic break-words mb-0.5",children:["“",t.originalText.slice(0,50),t.originalText.length>50?"…":"","”"]}),e.jsxs("p",{className:"text-xs text-base-content/80 break-words",children:[t.text.slice(0,100),t.text.length>100?"…":""]})]}),e.jsx("button",{className:"btn btn-ghost btn-xs opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0 text-error",onClick:v=>{v.stopPropagation(),o(t.id)},children:e.jsx(x,{icon:"lucide:x",size:11})})]},t.id))})]})]})]})}function M({selection:n,onSubmit:r,onDismiss:o}){const m=i.useRef(null),f=i.useRef(null),[c,u]=i.useState("");i.useEffect(()=>{var s;(s=f.current)==null||s.focus()},[]),i.useEffect(()=>{const s=h=>{h.key==="Escape"&&o()},t=h=>{requestAnimationFrame(()=>{m.current&&!m.current.contains(h.target)&&o()})};return document.addEventListener("keydown",s),document.addEventListener("mousedown",t),()=>{document.removeEventListener("keydown",s),document.removeEventListener("mousedown",t)}},[o]);const a=()=>{const s=c.trim();s&&(r(s),u(""))},g=s=>{s.key==="Enter"&&!s.shiftKey&&(s.preventDefault(),a())},b=n.rect.top-100,j=n.rect.left+n.rect.width/2;return e.jsxs("div",{ref:m,style:{position:"fixed",top:Math.max(b,8),left:j,transform:"translateX(-50%)",zIndex:50,width:240},className:"bg-base-100 border border-base-300 rounded-lg shadow-lg p-2 space-y-2",onMouseDown:s=>s.stopPropagation(),children:[e.jsx("textarea",{ref:f,value:c,onChange:s=>u(s.target.value),onKeyDown:g,placeholder:"Add annotation… (Enter to save)",rows:2,className:"textarea textarea-bordered textarea-xs w-full text-xs resize-none"}),e.jsxs("div",{className:"flex gap-1 justify-end",children:[e.jsx("button",{className:"btn btn-ghost btn-xs",onClick:o,children:"Cancel"}),e.jsx("button",{className:"btn btn-primary btn-xs",disabled:!c.trim(),onClick:a,children:"Save"})]})]})}async function O(n){if(!n)return null;try{return JSON.parse(await _(n))}catch{return null}}async function U(){try{const n=await fetch("/api/license");if(n.ok){const r=await n.json();if(r.email)return r.email}}catch{}return"Anonymous"}function $({data:n}){const r=n??"",[o,m]=i.useState({status:"loading"}),{success:f,error:c}=A(),u=i.useRef(null),{state:a,addAnnotation:g,removeAnnotation:b,updateAnnotation:j,clearPendingSelection:s}=L(u);i.useEffect(()=>{if(!r){m({status:"error",message:"No share data in URL."});return}let l=!1;async function p(){try{const d=await O(r);if(!d){l||m({status:"error",message:"Failed to decompress — the URL may be corrupted or truncated."});return}l||m({status:"ready",payload:d})}catch(d){l||m({status:"error",message:d instanceof Error?d.message:"Failed to load shared spec."})}}return p(),()=>{l=!0}},[r]);const t=o.status==="ready"?o.payload:null,h=i.useMemo(()=>t?P(t.specContent):[],[t==null?void 0:t.specContent]),[w,v]=i.useState(!1),S=i.useCallback(l=>{var d;if(!a.pendingSelection)return;const p=k(a.pendingSelection.blockId,a.pendingSelection.selectedText,l);g(p),(d=window.getSelection())==null||d.removeAllRanges(),s()},[a.pendingSelection,g,s]),E=i.useCallback(async()=>{if(!(!t||a.annotations.length===0)){v(!0);try{const{compress:l}=await R(async()=>{const{compress:z}=await import("./compress.js");return{compress:z}},[],import.meta.url),p={annotations:a.annotations,author:await U(),planPath:t.planPath,createdAt:Date.now()},d=await l(JSON.stringify(p)),N=await fetch("https://pilot-shell.com/api/share",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:d})});if(N.status===413){c("Feedback too large — reduce annotation count and retry.");return}if(N.status===429){c("Rate limit reached — wait a few minutes and retry.");return}if(!N.ok){c("Failed to reach pilot-shell.com share service.");return}const{id:y}=await N.json();if(!y||!/^[A-Za-z0-9]{8}$/.test(y)){c("Failed to reach pilot-shell.com share service.");return}const T=`https://pilot-shell.com/s/${y}`;await navigator.clipboard.writeText(T),f("Feedback URL copied to clipboard — share it with the spec owner.")}finally{v(!1)}}},[a.annotations,t==null?void 0:t.planPath,f,c]);if(o.status==="loading")return e.jsx("div",{className:"min-h-screen p-6",children:e.jsx(F,{})});if(o.status==="error")return e.jsx("div",{className:"flex items-center justify-center min-h-screen p-6",children:e.jsxs("div",{className:"max-w-md text-center space-y-4",children:[e.jsx("div",{className:"bg-error/10 rounded-full w-16 h-16 flex items-center justify-center mx-auto",children:e.jsx(x,{icon:"lucide:lock",size:28,className:"text-error"})}),e.jsx("h2",{className:"text-xl font-semibold",children:"Failed to load shared spec"}),e.jsx("p",{className:"text-sm text-base-content/60",children:o.message}),e.jsxs("button",{className:"btn btn-ghost btn-sm",onClick:()=>window.location.reload(),children:[e.jsx(x,{icon:"lucide:refresh-cw",size:14}),"Retry"]})]})});const C=new Date(t.createdAt).toLocaleString(void 0,{dateStyle:"medium",timeStyle:"short"});return e.jsxs("div",{style:{display:"flex",width:"100%",height:"100vh",minHeight:0},children:[e.jsx("div",{style:{flex:1,minWidth:0,overflowY:"auto"},children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 py-6 space-y-4",children:[e.jsx("div",{className:"card bg-base-200 border border-base-300",children:e.jsx("div",{className:"card-body p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"bg-primary/10 rounded-lg p-2",children:e.jsx(x,{icon:"lucide:share-2",size:18,className:"text-primary"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Shared Specification"}),e.jsx("span",{className:"badge badge-primary badge-xs",children:"Annotatable"})]}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-base-content/50 mt-0.5",children:[(t==null?void 0:t.author)&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(x,{icon:"lucide:user",size:11}),t==null?void 0:t.author]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(x,{icon:"lucide:calendar",size:11}),C]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(x,{icon:"lucide:minimize-2",size:11,className:"text-success"}),"Compressed"]})]})]})]})})}),e.jsx("div",{className:"card bg-base-100 border border-base-300",children:e.jsx("div",{className:"card-body p-5",children:e.jsx("div",{ref:u,children:e.jsx(I,{blocks:h,annotations:a.annotations,selectedAnnotationId:a.selectedAnnotationId,onSelectAnnotation:()=>{},onQuickAnnotate:(l,p,d)=>{const N=k(l,p,d);g(N)}})})})})]})}),e.jsx("div",{style:{width:272,flexShrink:0,position:"sticky",top:0,height:"100vh",overflow:"hidden"},children:e.jsx(D,{sharerAnnotations:(t==null?void 0:t.annotations)??[],recipientAnnotations:a.annotations,onRemoveRecipientAnnotation:b,onUpdateRecipientAnnotation:(l,p)=>j(l,{text:p}),onSendFeedback:E,isSending:w})}),a.pendingSelection&&e.jsx(M,{selection:a.pendingSelection,onSubmit:S,onDismiss:s})]})}export{$ as SharedSpecView}; diff --git a/pilot/ui/viewer-bundle.js b/pilot/ui/viewer-bundle.js index 22b66f5a..a0d2d191 100644 --- a/pilot/ui/viewer-bundle.js +++ b/pilot/ui/viewer-bundle.js @@ -1,5 +1,5 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./PlanAnnotator.js","./vendor-markdown.js","./vendor-charts.js","./vendor-diff.js","./index.js","./index2.js","./Spinner.js","./viewer2.css","./index3.js","./index4.js","./ExtensionsView.js","./index5.js","./compress.js"])))=>i.map(i=>d[i]); -var us=Object.defineProperty;var hs=(t,s,n)=>s in t?us(t,s,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[s]=n;var st=(t,s,n)=>hs(t,typeof s!="symbol"?s+"":s,n);import{j as e,a as c,M as ms,b as fs,c as xs}from"./vendor-markdown.js";import{r as ps,a as bs}from"./vendor-charts.js";import"./vendor-diff.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();var Ce={},nt;function gs(){if(nt)return Ce;nt=1;var t=ps();return Ce.createRoot=t.createRoot,Ce.hydrateRoot=t.hydrateRoot,Ce}var js=gs();const vs="modulepreload",ys=function(t,s){return new URL(t,s).href},at={},re=function(s,n,r){let a=Promise.resolve();if(n&&n.length>0){let o=function(d){return Promise.all(d.map(h=>Promise.resolve(h).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};const l=document.getElementsByTagName("link"),u=document.querySelector("meta[property=csp-nonce]"),m=(u==null?void 0:u.nonce)||(u==null?void 0:u.getAttribute("nonce"));a=o(n.map(d=>{if(d=ys(d,r),d in at)return;at[d]=!0;const h=d.endsWith(".css"),f=h?'[rel="stylesheet"]':"";if(!!r)for(let x=l.length-1;x>=0;x--){const y=l[x];if(y.href===d&&(!h||y.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${d}"]${f}`))return;const p=document.createElement("link");if(p.rel=h?"stylesheet":vs,h||(p.as="script"),p.crossOrigin="",p.href=d,m&&p.setAttribute("nonce",m),document.head.appendChild(p),h)return new Promise((x,y)=>{p.addEventListener("load",x),p.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${d}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return a.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return s().catch(i)})};function ws(){return e.jsx("a",{href:"#/",className:"flex items-center",children:e.jsx("span",{className:"font-bold text-lg",children:"Pilot Shell Console"})})}const Ns={primary:"btn-primary",secondary:"btn-secondary",ghost:"btn-ghost",outline:"btn-outline",error:"btn-error"},Ss={xs:"btn-xs",sm:"btn-sm",md:"",lg:"btn-lg"};function te({variant:t="primary",size:s="md",loading:n=!1,className:r="",children:a,disabled:i,...o}){return e.jsxs("button",{className:`btn ${Ns[t]} ${Ss[s]} active:scale-[0.98] transition-transform ${r}`,disabled:i||n,...o,children:[n&&e.jsx("span",{className:"loading loading-spinner loading-sm"}),a]})}function Z({children:t,className:s="",compact:n=!1,interactive:r,onClick:a}){const i=r??!!a;return e.jsx("div",{className:`card bg-base-100 shadow-sm border border-base-200 transition-all duration-150 ${i?"cursor-pointer hover:-translate-y-0.5 hover:shadow-md hover:border-base-content/15":""} ${n?"card-compact":""} ${s}`,onClick:a,children:t})}function ee({children:t,className:s=""}){return e.jsx("div",{className:`card-body ${s}`,children:t})}function Xr({children:t,className:s=""}){return e.jsx("h2",{className:`card-title ${s}`,children:t})}const ks={primary:"badge-primary",secondary:"badge-secondary",accent:"badge-accent",ghost:"badge-ghost",info:"badge-info",success:"badge-success",warning:"badge-warning",error:"badge-error"},Cs={xs:"badge-xs",sm:"badge-sm",md:"",lg:"badge-lg"};function B({children:t,variant:s="ghost",size:n="md",outline:r=!1,className:a=""}){return e.jsx("span",{className:`badge ${ks[s]} ${Cs[n]} ${r?"badge-outline":""} ${a}`,children:t})}const Es={default:"modal-box surface-elevated",wide:"modal-box surface-elevated max-w-4xl w-[90vw]"};function ye({open:t,onClose:s,title:n,children:r,actions:a,size:i="default"}){const o=e.jsxs("dialog",{className:`modal ${t?"modal-open":""}`,children:[e.jsxs("div",{className:Es[i],children:[e.jsxs("div",{className:"flex items-center justify-between",children:[n&&e.jsx("h3",{className:"font-bold text-lg",children:n}),e.jsx("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:s,"aria-label":"Close",children:"✕"})]}),e.jsx("div",{className:"py-4",children:r}),a&&e.jsx("div",{className:"modal-action",children:a})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop",children:e.jsx("button",{onClick:s,children:"close"})})]});return typeof document>"u"?o:bs.createPortal(o,document.body)}const Ot=c.createContext(!1);function Zr(){return c.useContext(Ot)}function Rs({children:t}){const[s,n]=c.useState(()=>typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return c.useEffect(()=>{const r=window.matchMedia("(prefers-reduced-motion: reduce)"),a=i=>n(i.matches);return r.addEventListener("change",a),()=>r.removeEventListener("change",a)},[]),e.jsx(Ot.Provider,{value:s,children:t})}function Ps(t,s){const n=t.icons,r=t.aliases||Object.create(null),a=Object.create(null);function i(o){if(n[o])return a[o]=[];if(!(o in a)){a[o]=null;const l=r[o]&&r[o].parent,u=l&&i(l);u&&(a[o]=[l].concat(u))}return a[o]}return Object.keys(n).concat(Object.keys(r)).forEach(i),a}const zt=Object.freeze({left:0,top:0,width:16,height:16}),Te=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Qe=Object.freeze({...zt,...Te}),Ue=Object.freeze({...Qe,body:"",hidden:!1});function Is(t,s){const n={};!t.hFlip!=!s.hFlip&&(n.hFlip=!0),!t.vFlip!=!s.vFlip&&(n.vFlip=!0);const r=((t.rotate||0)+(s.rotate||0))%4;return r&&(n.rotate=r),n}function rt(t,s){const n=Is(t,s);for(const r in Ue)r in Te?r in t&&!(r in n)&&(n[r]=Te[r]):r in s?n[r]=s[r]:r in t&&(n[r]=t[r]);return n}function Ts(t,s,n){const r=t.icons,a=t.aliases||Object.create(null);let i={};function o(l){i=rt(r[l]||a[l],i)}return o(s),n.forEach(o),rt(t,i)}function Ft(t,s){const n=[];if(typeof t!="object"||typeof t.icons!="object")return n;t.not_found instanceof Array&&t.not_found.forEach(a=>{s(a,null),n.push(a)});const r=Ps(t);for(const a in r){const i=r[a];i&&(s(a,Ts(t,a,i)),n.push(a))}return n}const As={provider:"",aliases:{},not_found:{},...zt};function Le(t,s){for(const n in s)if(n in t&&typeof t[n]!=typeof s[n])return!1;return!0}function Ut(t){if(typeof t!="object"||t===null)return null;const s=t;if(typeof s.prefix!="string"||!t.icons||typeof t.icons!="object"||!Le(t,As))return null;const n=s.icons;for(const a in n){const i=n[a];if(!a||typeof i.body!="string"||!Le(i,Ue))return null}const r=s.aliases||Object.create(null);for(const a in r){const i=r[a],o=i.parent;if(!a||typeof o!="string"||!n[o]&&!r[o]||!Le(i,Ue))return null}return s}const it=Object.create(null);function Ds(t,s){return{provider:t,prefix:s,icons:Object.create(null),missing:new Set}}function de(t,s){const n=it[t]||(it[t]=Object.create(null));return n[s]||(n[s]=Ds(t,s))}function qt(t,s){return Ut(s)?Ft(s,(n,r)=>{r?t.icons[n]=r:t.missing.add(n)}):[]}function _s(t,s,n){try{if(typeof n.body=="string")return t.icons[s]={...n},!0}catch{}return!1}const Ht=/^[a-z0-9]+(-[a-z0-9]+)*$/,_e=(t,s,n,r="")=>{const a=t.split(":");if(t.slice(0,1)==="@"){if(a.length<2||a.length>3)return null;r=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const l=a.pop(),u=a.pop(),m={provider:a.length>0?a[0]:r,prefix:u,name:l};return s&&!Pe(m)?null:m}const i=a[0],o=i.split("-");if(o.length>1){const l={provider:r,prefix:o.shift(),name:o.join("-")};return s&&!Pe(l)?null:l}if(n&&r===""){const l={provider:r,prefix:"",name:i};return s&&!Pe(l,n)?null:l}return null},Pe=(t,s)=>t?!!((s&&t.prefix===""||t.prefix)&&t.name):!1;let we=!1;function Gt(t){return typeof t=="boolean"&&(we=t),we}function ot(t){const s=typeof t=="string"?_e(t,!0,we):t;if(s){const n=de(s.provider,s.prefix),r=s.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function Ls(t,s){const n=_e(t,!0,we);if(!n)return!1;const r=de(n.provider,n.prefix);return s?_s(r,n.name,s):(r.missing.add(n.name),!0)}function $s(t,s){if(typeof t!="object")return!1;if(typeof s!="string"&&(s=t.provider||""),we&&!s&&!t.prefix){let a=!1;return Ut(t)&&(t.prefix="",Ft(t,(i,o)=>{Ls(i,o)&&(a=!0)})),a}const n=t.prefix;if(!Pe({prefix:n,name:"a"}))return!1;const r=de(s,n);return!!qt(r,t)}const Bt=Object.freeze({width:null,height:null}),Vt=Object.freeze({...Bt,...Te}),Ms=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Os=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function ct(t,s,n){if(s===1)return t;if(n=n||100,typeof t=="number")return Math.ceil(t*s*n)/n;if(typeof t!="string")return t;const r=t.split(Ms);if(r===null||!r.length)return t;const a=[];let i=r.shift(),o=Os.test(i);for(;;){if(o){const l=parseFloat(i);isNaN(l)?a.push(i):a.push(Math.ceil(l*s*n)/n)}else a.push(i);if(i=r.shift(),i===void 0)return a.join("");o=!o}}function zs(t,s="defs"){let n="";const r=t.indexOf("<"+s);for(;r>=0;){const a=t.indexOf(">",r),i=t.indexOf("",i);if(o===-1)break;n+=t.slice(a+1,i).trim(),t=t.slice(0,r).trim()+t.slice(o+1)}return{defs:n,content:t}}function Fs(t,s){return t?""+t+""+s:s}function Us(t,s,n){const r=zs(t);return Fs(r.defs,s+r.content+n)}const qs=t=>t==="unset"||t==="undefined"||t==="none";function Hs(t,s){const n={...Qe,...t},r={...Vt,...s},a={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,r].forEach(x=>{const y=[],v=x.hFlip,j=x.vFlip;let k=x.rotate;v?j?k+=2:(y.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),y.push("scale(-1 1)"),a.top=a.left=0):j&&(y.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),y.push("scale(1 -1)"),a.top=a.left=0);let w;switch(k<0&&(k-=Math.floor(k/4)*4),k=k%4,k){case 1:w=a.height/2+a.top,y.unshift("rotate(90 "+w.toString()+" "+w.toString()+")");break;case 2:y.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:w=a.width/2+a.left,y.unshift("rotate(-90 "+w.toString()+" "+w.toString()+")");break}k%2===1&&(a.left!==a.top&&(w=a.left,a.left=a.top,a.top=w),a.width!==a.height&&(w=a.width,a.width=a.height,a.height=w)),y.length&&(i=Us(i,'',""))});const o=r.width,l=r.height,u=a.width,m=a.height;let d,h;o===null?(h=l===null?"1em":l==="auto"?m:l,d=ct(h,u/m)):(d=o==="auto"?u:o,h=l===null?ct(d,m/u):l==="auto"?m:l);const f={},b=(x,y)=>{qs(y)||(f[x]=y.toString())};b("width",d),b("height",h);const p=[a.left,a.top,u,m];return f.viewBox=p.join(" "),{attributes:f,viewBox:p,body:i}}const Gs=/\sid="(\S+)"/g,Bs="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let Vs=0;function Ks(t,s=Bs){const n=[];let r;for(;r=Gs.exec(t);)n.push(r[1]);if(!n.length)return t;const a="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(i=>{const o=typeof s=="function"?s(i):s+(Vs++).toString(),l=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+o+a+"$3")}),t=t.replace(new RegExp(a,"g"),""),t}const qe=Object.create(null);function Ws(t,s){qe[t]=s}function He(t){return qe[t]||qe[""]}function Je(t){let s;if(typeof t.resources=="string")s=[t.resources];else if(s=t.resources,!(s instanceof Array)||!s.length)return null;return{resources:s,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:t.random===!0,index:t.index||0,dataAfterTimeout:t.dataAfterTimeout!==!1}}const Ye=Object.create(null),he=["https://api.simplesvg.com","https://api.unisvg.com"],Ie=[];for(;he.length>0;)he.length===1||Math.random()>.5?Ie.push(he.shift()):Ie.push(he.pop());Ye[""]=Je({resources:["https://api.iconify.design"].concat(Ie)});function Qs(t,s){const n=Je(s);return n===null?!1:(Ye[t]=n,!0)}function Xe(t){return Ye[t]}const Js=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let lt=Js();function Ys(t,s){const n=Xe(t);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let a=0;n.resources.forEach(o=>{a=Math.max(a,o.length)});const i=s+".json?icons=";r=n.maxURL-a-n.path.length-i.length}return r}function Xs(t){return t===404}const Zs=(t,s,n)=>{const r=[],a=Ys(t,s),i="icons";let o={type:i,provider:t,prefix:s,icons:[]},l=0;return n.forEach((u,m)=>{l+=u.length+1,l>=a&&m>0&&(r.push(o),o={type:i,provider:t,prefix:s,icons:[]},l=u.length),o.icons.push(u)}),r.push(o),r};function en(t){if(typeof t=="string"){const s=Xe(t);if(s)return s.path}return"/"}const tn=(t,s,n)=>{if(!lt){n("abort",424);return}let r=en(s.provider);switch(s.type){case"icons":{const i=s.prefix,l=s.icons.join(","),u=new URLSearchParams({icons:l});r+=i+".json?"+u.toString();break}case"custom":{const i=s.uri;r+=i.slice(0,1)==="/"?i.slice(1):i;break}default:n("abort",400);return}let a=503;lt(t+r).then(i=>{const o=i.status;if(o!==200){setTimeout(()=>{n(Xs(o)?"abort":"next",o)});return}return a=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?n("abort",i):n("next",a)});return}setTimeout(()=>{n("success",i)})}).catch(()=>{n("next",a)})},sn={prepare:Zs,send:tn};function Kt(t,s){t.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(a=>a.id!==s))})}function nn(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout(()=>{t.pendingCallbacksFlag=!1;const s=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!s.length)return;let n=!1;const r=t.provider,a=t.prefix;s.forEach(i=>{const o=i.icons,l=o.pending.length;o.pending=o.pending.filter(u=>{if(u.prefix!==a)return!0;const m=u.name;if(t.icons[m])o.loaded.push({provider:r,prefix:a,name:m});else if(t.missing.has(m))o.missing.push({provider:r,prefix:a,name:m});else return n=!0,!0;return!1}),o.pending.length!==l&&(n||Kt([t],i.id),i.callback(o.loaded.slice(0),o.missing.slice(0),o.pending.slice(0),i.abort))})}))}let an=0;function rn(t,s,n){const r=an++,a=Kt.bind(null,n,r);if(!s.pending.length)return a;const i={id:r,icons:s,callback:t,abort:a};return n.forEach(o=>{(o.loaderCallbacks||(o.loaderCallbacks=[])).push(i)}),a}function on(t){const s={loaded:[],missing:[],pending:[]},n=Object.create(null);t.sort((a,i)=>a.provider!==i.provider?a.provider.localeCompare(i.provider):a.prefix!==i.prefix?a.prefix.localeCompare(i.prefix):a.name.localeCompare(i.name));let r={provider:"",prefix:"",name:""};return t.forEach(a=>{if(r.name===a.name&&r.prefix===a.prefix&&r.provider===a.provider)return;r=a;const i=a.provider,o=a.prefix,l=a.name,u=n[i]||(n[i]=Object.create(null)),m=u[o]||(u[o]=de(i,o));let d;l in m.icons?d=s.loaded:o===""||m.missing.has(l)?d=s.missing:d=s.pending;const h={provider:i,prefix:o,name:l};d.push(h)}),s}function cn(t,s=!0,n=!1){const r=[];return t.forEach(a=>{const i=typeof a=="string"?_e(a,s,n):a;i&&r.push(i)}),r}const ln={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function dn(t,s,n,r){const a=t.resources.length,i=t.random?Math.floor(Math.random()*a):t.index;let o;if(t.random){let g=t.resources.slice(0);for(o=[];g.length>1;){const P=Math.floor(Math.random()*g.length);o.push(g[P]),g=g.slice(0,P).concat(g.slice(P+1))}o=o.concat(g)}else o=t.resources.slice(i).concat(t.resources.slice(0,i));const l=Date.now();let u="pending",m=0,d,h=null,f=[],b=[];typeof r=="function"&&b.push(r);function p(){h&&(clearTimeout(h),h=null)}function x(){u==="pending"&&(u="aborted"),p(),f.forEach(g=>{g.status==="pending"&&(g.status="aborted")}),f=[]}function y(g,P){P&&(b=[]),typeof g=="function"&&b.push(g)}function v(){return{startTime:l,payload:s,status:u,queriesSent:m,queriesPending:f.length,subscribe:y,abort:x}}function j(){u="failed",b.forEach(g=>{g(void 0,d)})}function k(){f.forEach(g=>{g.status==="pending"&&(g.status="aborted")}),f=[]}function w(g,P,$){const R=P!=="success";switch(f=f.filter(E=>E!==g),u){case"pending":break;case"failed":if(R||!t.dataAfterTimeout)return;break;default:return}if(P==="abort"){d=$,j();return}if(R){d=$,f.length||(o.length?C():j());return}if(p(),k(),!t.random){const E=t.resources.indexOf(g.resource);E!==-1&&E!==t.index&&(t.index=E)}u="completed",b.forEach(E=>{E($)})}function C(){if(u!=="pending")return;p();const g=o.shift();if(g===void 0){if(f.length){h=setTimeout(()=>{p(),u==="pending"&&(k(),j())},t.timeout);return}j();return}const P={status:"pending",resource:g,callback:($,R)=>{w(P,$,R)}};f.push(P),m++,h=setTimeout(C,t.rotate),n(g,s,P.callback)}return setTimeout(C),v}function Wt(t){const s={...ln,...t};let n=[];function r(){n=n.filter(l=>l().status==="pending")}function a(l,u,m){const d=dn(s,l,u,(h,f)=>{r(),m&&m(h,f)});return n.push(d),d}function i(l){return n.find(u=>l(u))||null}return{query:a,find:i,setIndex:l=>{s.index=l},getIndex:()=>s.index,cleanup:r}}function dt(){}const $e=Object.create(null);function un(t){if(!$e[t]){const s=Xe(t);if(!s)return;const n=Wt(s),r={config:s,redundancy:n};$e[t]=r}return $e[t]}function hn(t,s,n){let r,a;if(typeof t=="string"){const i=He(t);if(!i)return n(void 0,424),dt;a=i.send;const o=un(t);o&&(r=o.redundancy)}else{const i=Je(t);if(i){r=Wt(i);const o=t.resources?t.resources[0]:"",l=He(o);l&&(a=l.send)}}return!r||!a?(n(void 0,424),dt):r.query(s,a,n)().abort}function ut(){}function mn(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,nn(t)}))}function fn(t){const s=[],n=[];return t.forEach(r=>{(r.match(Ht)?s:n).push(r)}),{valid:s,invalid:n}}function me(t,s,n){function r(){const a=t.pendingIcons;s.forEach(i=>{a&&a.delete(i),t.icons[i]||t.missing.add(i)})}if(n&&typeof n=="object")try{if(!qt(t,n).length){r();return}}catch(a){console.error(a)}r(),mn(t)}function ht(t,s){t instanceof Promise?t.then(n=>{s(n)}).catch(()=>{s(null)}):s(t)}function xn(t,s){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(s).sort():t.iconsToLoad=s,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout(()=>{t.iconsQueueFlag=!1;const{provider:n,prefix:r}=t,a=t.iconsToLoad;if(delete t.iconsToLoad,!a||!a.length)return;const i=t.loadIcon;if(t.loadIcons&&(a.length>1||!i)){ht(t.loadIcons(a,r,n),d=>{me(t,a,d)});return}if(i){a.forEach(d=>{const h=i(d,r,n);ht(h,f=>{const b=f?{prefix:r,icons:{[d]:f}}:null;me(t,[d],b)})});return}const{valid:o,invalid:l}=fn(a);if(l.length&&me(t,l,null),!o.length)return;const u=r.match(Ht)?He(n):null;if(!u){me(t,o,null);return}u.prepare(n,r,o).forEach(d=>{hn(n,d,h=>{me(t,d.icons,h)})})}))}const pn=(t,s)=>{const n=cn(t,!0,Gt()),r=on(n);if(!r.pending.length){let u=!0;return s&&setTimeout(()=>{u&&s(r.loaded,r.missing,r.pending,ut)}),()=>{u=!1}}const a=Object.create(null),i=[];let o,l;return r.pending.forEach(u=>{const{provider:m,prefix:d}=u;if(d===l&&m===o)return;o=m,l=d,i.push(de(m,d));const h=a[m]||(a[m]=Object.create(null));h[d]||(h[d]=[])}),r.pending.forEach(u=>{const{provider:m,prefix:d,name:h}=u,f=de(m,d),b=f.pendingIcons||(f.pendingIcons=new Set);b.has(h)||(b.add(h),a[m][d].push(h))}),i.forEach(u=>{const m=a[u.provider][u.prefix];m.length&&xn(u,m)}),s?rn(s,r,i):ut};function bn(t,s){const n={...t};for(const r in s){const a=s[r],i=typeof a;r in Bt?(a===null||a&&(i==="string"||i==="number"))&&(n[r]=a):i===typeof n[r]&&(n[r]=r==="rotate"?a%4:a)}return n}const gn=/[\s,]+/;function jn(t,s){s.split(gn).forEach(n=>{switch(n.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function vn(t,s=0){const n=t.replace(/^-?[0-9.]*/,"");function r(a){for(;a<0;)a+=4;return a%4}if(n===""){const a=parseInt(t);return isNaN(a)?0:r(a)}else if(n!==t){let a=0;switch(n){case"%":a=25;break;case"deg":a=90}if(a){let i=parseFloat(t.slice(0,t.length-n.length));return isNaN(i)?0:(i=i/a,i%1===0?r(i):0)}}return s}function yn(t,s){let n=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in s)n+=" "+r+'="'+s[r]+'"';return'"+t+""}function wn(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function Nn(t){return"data:image/svg+xml,"+wn(t)}function Sn(t){return'url("'+Nn(t)+'")'}let ge;function kn(){try{ge=window.trustedTypes.createPolicy("iconify",{createHTML:t=>t})}catch{ge=null}}function Cn(t){return ge===void 0&&kn(),ge?ge.createHTML(t):t}const Qt={...Vt,inline:!1},En={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},Rn={display:"inline-block"},Ge={backgroundColor:"currentColor"},Jt={backgroundColor:"transparent"},mt={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},ft={WebkitMask:Ge,mask:Ge,background:Jt};for(const t in ft){const s=ft[t];for(const n in mt)s[t+n]=mt[n]}const Pn={...Qt,inline:!0};function xt(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}const In=(t,s,n)=>{const r=s.inline?Pn:Qt,a=bn(r,s),i=s.mode||"svg",o={},l=s.style||{},u={...i==="svg"?En:{}};if(n){const y=_e(n,!1,!0);if(y){const v=["iconify"],j=["provider","prefix"];for(const k of j)y[k]&&v.push("iconify--"+y[k]);u.className=v.join(" ")}}for(let y in s){const v=s[y];if(v!==void 0)switch(y){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":u.ref=v;break;case"className":u[y]=(u[y]?u[y]+" ":"")+v;break;case"inline":case"hFlip":case"vFlip":a[y]=v===!0||v==="true"||v===1;break;case"flip":typeof v=="string"&&jn(a,v);break;case"color":o.color=v;break;case"rotate":typeof v=="string"?a[y]=vn(v):typeof v=="number"&&(a[y]=v);break;case"ariaHidden":case"aria-hidden":v!==!0&&v!=="true"&&delete u["aria-hidden"];break;default:r[y]===void 0&&(u[y]=v)}}const m=Hs(t,a),d=m.attributes;if(a.inline&&(o.verticalAlign="-0.125em"),i==="svg"){u.style={...o,...l},Object.assign(u,d);let y=0,v=s.id;return typeof v=="string"&&(v=v.replace(/-/g,"_")),u.dangerouslySetInnerHTML={__html:Cn(Ks(m.body,v?()=>v+"ID"+y++:"iconifyReact"))},c.createElement("svg",u)}const{body:h,width:f,height:b}=t,p=i==="mask"||(i==="bg"?!1:h.indexOf("currentColor")!==-1),x=yn(h,{...d,width:f+"",height:b+""});return u.style={...o,"--svg":Sn(x),width:xt(d.width),height:xt(d.height),...Rn,...p?Ge:Jt,...l},c.createElement("span",u)};Gt(!0);Ws("",sn);if(typeof document<"u"&&typeof window<"u"){const t=window;if(t.IconifyPreload!==void 0){const s=t.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof s=="object"&&s!==null&&(s instanceof Array?s:[s]).forEach(r=>{try{(typeof r!="object"||r===null||r instanceof Array||typeof r.icons!="object"||typeof r.prefix!="string"||!$s(r))&&console.error(n)}catch{console.error(n)}})}if(t.IconifyProviders!==void 0){const s=t.IconifyProviders;if(typeof s=="object"&&s!==null)for(let n in s){const r="IconifyProviders["+n+"] is invalid.";try{const a=s[n];if(typeof a!="object"||!a||a.resources===void 0)continue;Qs(n,a)||console.error(r)}catch{console.error(r)}}}}function Yt(t){const[s,n]=c.useState(!!t.ssr),[r,a]=c.useState({});function i(b){if(b){const p=t.icon;if(typeof p=="object")return{name:"",data:p};const x=ot(p);if(x)return{name:p,data:x}}return{name:""}}const[o,l]=c.useState(i(!!t.ssr));function u(){const b=r.callback;b&&(b(),a({}))}function m(b){if(JSON.stringify(o)!==JSON.stringify(b))return u(),l(b),!0}function d(){var b;const p=t.icon;if(typeof p=="object"){m({name:"",data:p});return}const x=ot(p);if(m({name:p,data:x}))if(x===void 0){const y=pn([p],d);a({callback:y})}else x&&((b=t.onLoad)===null||b===void 0||b.call(t,p))}c.useEffect(()=>(n(!0),u),[]),c.useEffect(()=>{s&&d()},[t.icon,s]);const{name:h,data:f}=o;return f?In({...Qe,...f},t,h):t.children?t.children:t.fallback?t.fallback:c.createElement("span",{})}const Tn=c.forwardRef((t,s)=>Yt({...t,_ref:s}));c.forwardRef((t,s)=>Yt({inline:!0,...t,_ref:s}));function S({icon:t,size:s=20,className:n="",style:r}){return e.jsx(Tn,{icon:t,width:s,height:s,className:n,style:r})}function Be({icon:t="lucide:inbox",title:s,description:n,command:r,action:a}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:t,size:32,className:"text-base-content/30 mb-3"}),e.jsx("h3",{className:"text-heading text-base-content/70",children:s}),n&&e.jsx("p",{className:"text-muted text-sm mt-1 max-w-sm",children:n}),r&&e.jsx("div",{className:"mt-3 px-4 py-2 rounded-lg bg-base-100 border border-base-200",children:e.jsx("code",{className:"text-sm font-mono text-primary",children:r})}),a&&e.jsx("div",{className:"mt-4",children:a})]})}const An={top:"tooltip-top",bottom:"tooltip-bottom",left:"tooltip-left",right:"tooltip-right"};function ne({text:t,children:s,position:n="top"}){return e.jsx("div",{className:`tooltip ${An[n]} [&::before]:bg-base-300 [&::before]:text-base-content`,"data-tip":t,children:s})}const Dn={success:{bg:"alert-success",icon:"lucide:check-circle",iconColor:"text-success-content"},error:{bg:"alert-error",icon:"lucide:x-circle",iconColor:"text-error-content"},info:{bg:"alert-info",icon:"lucide:info",iconColor:"text-info-content"},warning:{bg:"alert-warning",icon:"lucide:alert-triangle",iconColor:"text-warning-content"}};function _n({id:t,type:s,message:n,title:r,duration:a=5e3,dismissible:i=!0,onClick:o,onDismiss:l}){const[u,m]=c.useState(!1),{bg:d,icon:h,iconColor:f}=Dn[s];c.useEffect(()=>{if(a>0){const p=setTimeout(()=>{m(!0),setTimeout(()=>l(t),300)},a);return()=>clearTimeout(p)}},[a,t,l]);const b=()=>{m(!0),setTimeout(()=>l(t),300)};return e.jsxs("div",{role:"alert",className:`alert ${d} shadow-lg transition-all duration-300 ${u?"opacity-0 translate-x-4":"opacity-100 translate-x-0"} ${o?"cursor-pointer hover:scale-[1.02]":""}`,onClick:o,children:[e.jsx(S,{icon:h,size:20,className:f}),e.jsxs("div",{className:"flex-1",children:[r&&e.jsx("h3",{className:"font-bold text-sm",children:r}),e.jsx("span",{className:"text-sm",children:n})]}),i&&e.jsx("button",{onClick:p=>{p.stopPropagation(),b()},className:"btn btn-ghost btn-sm btn-circle","aria-label":"Dismiss",children:e.jsx(S,{icon:"lucide:x",size:16})})]})}function Ln({toasts:t,onDismiss:s}){return t.length===0?null:e.jsx("div",{className:"toast toast-end toast-bottom z-50",children:t.map(n=>e.jsx(_n,{...n,onDismiss:s},n.id))})}function Ne({width:t="100%",height:s="1rem",className:n=""}){return e.jsx("div",{className:`animate-pulse bg-base-300/50 rounded ${n}`,style:{width:t,height:s}})}function $n({lines:t=3,className:s=""}){return e.jsx("div",{className:`space-y-2 ${s}`,children:Array.from({length:t}).map((n,r)=>e.jsx(Ne,{width:r===t-1?"60%":"100%",height:"0.75rem"},r))})}function Mn({className:t=""}){return e.jsx("div",{className:`card bg-base-100 border border-base-200 shadow-sm ${t}`,children:e.jsxs("div",{className:"card-body animate-pulse",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-base-300/50 rounded-lg"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(Ne,{width:"40%",height:"0.75rem"}),e.jsx(Ne,{width:"70%",height:"1.25rem"})]})]}),e.jsx($n,{lines:2})]})})}function le(){return e.jsxs("div",{className:"space-y-6 animate-pulse",children:[e.jsxs("div",{children:[e.jsx(Ne,{width:"12rem",height:"1.75rem"}),e.jsx(Ne,{width:"20rem",height:"0.875rem",className:"mt-2"})]}),e.jsx("div",{className:"space-y-3",children:Array.from({length:5}).map((t,s)=>e.jsx(Mn,{},s))})]})}function On({icon:t,label:s,href:n,active:r=!1,badge:a,collapsed:i=!1}){const o=e.jsxs("a",{href:n,className:`nav-item flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all ${r?"active":""} ${i?"justify-center":""}`,children:[e.jsx(S,{icon:t,size:20}),!i&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"flex-1",children:s}),a!==void 0&&e.jsx("span",{className:`badge badge-sm ${r?"badge-primary-content":"badge-ghost"}`,children:a})]})]});return i?e.jsx(ne,{text:s,position:"right",children:o}):o}const zn=[{icon:"lucide:layout-dashboard",label:"Dashboard",href:"#/"},{icon:"lucide:history",label:"Sessions",href:"#/sessions"},{icon:"lucide:brain",label:"Memories",href:"#/memories"},{icon:"lucide:lightbulb",label:"Requirements",href:"#/requirements"},{icon:"lucide:scroll",label:"Specifications",href:"#/spec"},{icon:"lucide:puzzle",label:"Extensions",href:"#/extensions"},{icon:"lucide:git-compare",label:"Changes",href:"#/changes"},{icon:"lucide:bar-chart-3",label:"Usage",href:"#/usage"},{icon:"lucide:book-open",label:"Help",href:"#/help"},{icon:"lucide:settings",label:"Settings",href:"#/settings"}];function Fn(t,s){return t===s||t.startsWith(s+"/")}function Un({currentPath:t,collapsed:s=!1}){return e.jsx("nav",{className:"py-4 space-y-1 px-2",children:zn.map(n=>e.jsx(On,{icon:n.icon,label:n.label,href:n.href,active:Fn(t,n.href),collapsed:s},n.href))})}const qn={solo:{label:"Solo",variant:"primary"},team:{label:"Team",variant:"accent"},trial:{label:"Trial",variant:"warning"}};function pt(t){return t.isExpired||t.tier==="trial"}function Hn({license:t,isLoading:s,onClick:n}){if(s||!t||!t.tier)return null;const a=pt(t)&&!!n?{onClick:n,role:"button",className:"cursor-pointer"}:{};if(t.isExpired)return e.jsx("span",{...a,children:e.jsx(B,{variant:"error",size:"xs",children:"Expired"})});const i=qn[t.tier];if(!i)return null;let o=i.label;t.tier==="trial"&&t.daysRemaining!=null&&(o=`${i.label} · ${t.daysRemaining}d left`);const l=!pt(t)&&t.email;return e.jsxs("span",{...a,className:`${a.className??""} inline-flex items-center gap-1.5`,children:[e.jsx(B,{variant:i.variant,size:"xs",children:o}),l&&e.jsx("span",{className:"text-base-content/50",children:t.email})]})}function Gn({open:t,onClose:s,onActivated:n}){const[r,a]=c.useState(""),[i,o]=c.useState(null),[l,u]=c.useState(!1),m=c.useCallback(async()=>{const h=r.trim();if(h){o(null),u(!0);try{const b=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:h})})).json();b.success?(a(""),n(),s()):o(b.error??"Activation failed")}catch{o("Connection failed")}finally{u(!1)}}},[r,n,s]),d=c.useCallback(h=>{h.key==="Enter"&&!l&&m()},[m,l]);return e.jsxs(ye,{open:t,onClose:s,title:"Activate License",children:[e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("input",{id:"license-key-input",type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:r,onChange:h=>{a(h.target.value),o(null)},onKeyDown:d,disabled:l,autoFocus:!0}),i&&e.jsx("p",{className:"text-error text-sm",children:i}),e.jsx("div",{className:"bg-base-200/50 rounded-lg p-3 space-y-1.5",children:e.jsxs("p",{className:"text-xs text-base-content/60",children:["Don't have a key? Get one at"," ",e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"pilot-shell.com"})]})})]}),e.jsxs("div",{className:"modal-action",children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:s,disabled:l,children:"Cancel"}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:m,disabled:l||!r.trim(),children:l?"Activating...":"Activate"})]})]})}const Ve="pilot-license-cache",Bn=10080*60*1e3;function bt(){try{const t=localStorage.getItem(Ve);if(!t)return null;const s=JSON.parse(t);return!s||typeof s.cachedAt!="number"||!s.license||Date.now()-s.cachedAt>Bn||!s.license.valid||s.license.isExpired?null:s.license}catch{return null}}function Vn(t){try{t&&t.valid&&!t.isExpired?localStorage.setItem(Ve,JSON.stringify({cachedAt:Date.now(),license:t})):localStorage.removeItem(Ve)}catch{}}function Xt(){const[t,s]=c.useState(()=>bt()),[n,r]=c.useState(()=>bt()===null),a=c.useCallback((o=!1)=>{fetch(o?"/api/license?refresh=1":"/api/license").then(u=>u.json()).then(u=>{s(u),Vn(u),r(!1)}).catch(()=>{r(!1)})},[]);c.useEffect(()=>{a();const o=setInterval(()=>a(!0),6e4),l=()=>{document.visibilityState==="visible"&&a(!0)};return document.addEventListener("visibilitychange",l),()=>{clearInterval(o),document.removeEventListener("visibilitychange",l)}},[a]);const i=c.useCallback(()=>a(!0),[a]);return{license:t,isLoading:n,refetch:i}}const Kn={online:{color:"bg-success",label:"Online"},processing:{color:"bg-warning animate-pulse",label:"Processing"},offline:{color:"bg-error",label:"Offline"}};function Wn({version:t,workerStatus:s="offline",queueDepth:n=0,collapsed:r=!1}){const a=Kn[s],{license:i,isLoading:o,refetch:l}=Xt(),[u,m]=c.useState(!1),d=t?`v${t}`:null;return r?e.jsx("div",{className:"p-3 border-t border-base-300/50 space-y-3",children:e.jsx(ne,{text:`Worker ${a.label}${n>0?` · ${n} queued`:""}`,position:"right",children:e.jsx("div",{className:"flex justify-center",children:e.jsx("span",{className:`inline-block w-2.5 h-2.5 rounded-full ${a.color}`})})})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"p-4 border-t border-base-300/50 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`inline-block w-2 h-2 rounded-full ${a.color}`}),e.jsxs("span",{className:"text-base-content/60",children:["Worker ",a.label]}),n>0&&e.jsxs("span",{className:"text-base-content/50",children:["· ",n," queued"]})]}),d&&e.jsx("span",{className:"text-base-content/40",children:d})]}),!o&&(i==null?void 0:i.tier)&&e.jsx("div",{className:"flex items-center gap-2 text-xs",children:e.jsx(Hn,{license:i,isLoading:o,onClick:()=>m(!0)})}),!o&&(!i||!i.tier||i.tier==="trial"||i.isExpired)&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary/70 hover:text-primary transition-colors",children:"Get a license"}),e.jsxs("button",{onClick:()=>m(!0),className:"btn btn-primary btn-xs gap-1",children:[e.jsx(S,{icon:"lucide:key",size:10}),"Activate"]})]})]}),e.jsx(Gn,{open:u,onClose:()=>m(!1),onActivated:l})]})}function Qn({currentPath:t,version:s,workerStatus:n,queueDepth:r,collapsed:a,onToggleCollapse:i}){return e.jsxs("aside",{className:`dashboard-sidebar flex flex-col border-r border-base-300 transition-all duration-300 h-screen sticky top-0 ${a?"w-[72px]":"w-64"}`,children:[e.jsxs("div",{className:"flex-shrink-0 flex items-center justify-between p-4 border-b border-base-300/50",children:[!a&&e.jsx(ws,{}),e.jsx("button",{onClick:i,className:"btn btn-ghost btn-sm btn-square",title:a?"Expand sidebar":"Collapse sidebar",children:e.jsx(S,{icon:a?"lucide:panel-left-open":"lucide:panel-left-close",size:18})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsx(Un,{currentPath:t,collapsed:a})}),e.jsx("div",{className:"flex-shrink-0",children:e.jsx(Wn,{version:s,workerStatus:n,queueDepth:r,collapsed:a})})]})}function Jn(t){const s=t.endsWith("Z")?t:t+"Z",n=Date.now()-new Date(s).getTime();return n<6e4?"just now":n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`}const Yn={plan_approval:"lucide:file-check",verification_complete:"lucide:check-circle",attention_needed:"lucide:alert-circle"};function Xn(t){const s=t.indexOf("/docs/plans/");if(s===-1)return;const n=t.slice(0,s),r=n.lastIndexOf("/");return r>=0?n.slice(r+1):n}function Zn(t){const s=t.split("/").pop();if(!s)return;let n=s.replace(/\.md$/,"");return/^\d{4}-\d{2}-\d{2}-/.test(n)&&(n=n.slice(11)),n}function ea({notifications:t,unreadCount:s,onMarkAsRead:n,onMarkAllAsRead:r,onClearAll:a,onNavigate:i}){const[o,l]=c.useState(!1),u=c.useRef(null),m=c.useCallback(h=>{u.current&&!u.current.contains(h.target)&&l(!1)},[]);c.useEffect(()=>{if(o)return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[o,m]);const d=c.useCallback(h=>{if(h.is_read===0&&n(h.id),l(!1),!!i)if(h.plan_path){const f=Xn(h.plan_path);i("/spec",f)}else h.session_id&&i(`/sessions?selected=${h.session_id}`)},[n,i]);return e.jsxs("div",{className:"relative",ref:u,children:[e.jsx(ne,{text:"Notifications",position:"bottom",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:()=>l(!o),children:e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:bell",size:18}),s>0&&e.jsx("span",{className:"absolute -top-1.5 -right-1.5 bg-error text-error-content text-[10px] font-bold rounded-full min-w-[16px] h-4 flex items-center justify-center px-0.5",children:s>99?"99+":s})]})})}),o&&e.jsxs("div",{className:"absolute right-0 top-full mt-2 w-80 max-h-96 overflow-y-auto rounded-xl border border-base-300 bg-base-100 shadow-xl z-50",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-base-300",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Notifications"}),e.jsxs("div",{className:"flex items-center gap-3",children:[s>0&&e.jsx("button",{className:"text-xs text-primary hover:underline",onClick:()=>r(),children:"Mark all read"}),t.length>0&&e.jsx("button",{className:"text-xs text-error/70 hover:text-error hover:underline",onClick:()=>{a(),l(!1)},children:"Clear all"})]})]}),t.length===0?e.jsx("div",{className:"px-4 py-8 text-center text-sm text-base-content/50",children:"No notifications"}):e.jsx("div",{className:"divide-y divide-base-300",children:t.map(h=>e.jsx("button",{className:`w-full text-left px-4 py-3 hover:bg-base-200/50 transition-colors ${h.is_read===0?"bg-primary/5":""}`,onClick:()=>d(h),children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(S,{icon:Yn[h.type]||"lucide:info",size:16,className:`mt-0.5 flex-shrink-0 ${h.is_read===0?"text-primary":"text-base-content/40"}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`text-sm truncate ${h.is_read===0?"font-medium":""}`,children:h.plan_path?Zn(h.plan_path)??h.title:h.title}),h.is_read===0&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-primary flex-shrink-0"})]}),e.jsx("p",{className:"text-xs text-base-content/60 mt-0.5 line-clamp-2",children:h.message}),e.jsx("span",{className:"text-[10px] text-base-content/40 mt-1 block",children:Jn(h.created_at)})]})]})},h.id))})]})]})}const Zt={SSE_RECONNECT_DELAY_MS:3e3,SPEC_REFRESH_INTERVAL_MS:5e3,GIT_REFRESH_INTERVAL_MS:1e4},Ze=c.createContext(null);function ta({children:t}){const[s,n]=c.useState(!1),r=c.useRef(new Map),a=c.useRef(new Set),i=c.useCallback((u,m)=>{let d=r.current.get(u);return d||(d=new Set,r.current.set(u,d)),d.add(m),()=>{const h=r.current.get(u);h&&(h.delete(m),h.size===0&&r.current.delete(u))}},[]),o=c.useCallback(u=>(a.current.add(u),()=>{a.current.delete(u)}),[]);c.useEffect(()=>{if(typeof EventSource>"u")return;let u=null,m=null,d=!1;const h=()=>{if(d)return;u==null||u.close();const f=new EventSource("/stream");u=f,f.onopen=()=>{n(!0),m!==null&&(clearTimeout(m),m=null);for(const b of a.current)try{b()}catch(p){console.error("[SSE] reconnect handler threw",p)}},f.onerror=()=>{n(!1),f.close(),!d&&m===null&&(m=setTimeout(()=>{m=null,h()},Zt.SSE_RECONNECT_DELAY_MS))},f.onmessage=b=>{let p;try{p=JSON.parse(String(b.data))}catch{return}const x=r.current.get(p.type);if(x)for(const y of x)try{y(p)}catch(v){console.error("[SSE] handler threw for type",p.type,v)}}};return h(),()=>{d=!0,m!==null&&clearTimeout(m),u==null||u.close()}},[]);const l=c.useMemo(()=>({isConnected:s,subscribe:i,onReconnect:o}),[s,i,o]);return e.jsx(Ze.Provider,{value:l,children:t})}function ae(t,s){const n=c.useContext(Ze),r=c.useRef(s);c.useEffect(()=>{r.current=s},[s]),c.useEffect(()=>{if(n)return n.subscribe(t,a=>r.current(a))},[n,t])}function sa(t){const s=c.useContext(Ze),n=c.useRef(t);c.useEffect(()=>{n.current=t},[t]),c.useEffect(()=>{if(s)return s.onReconnect(()=>n.current())},[s])}function na(){const[t,s]=c.useState([]),[n,r]=c.useState(0),a=c.useRef(!0),i=c.useCallback(async()=>{try{const m=await fetch("/api/notifications?limit=50&include_read=true");if(!m.ok)return;const d=await m.json();a.current&&(s(d),r(d.filter(h=>h.is_read===0).length))}catch{}},[]),o=c.useCallback(async m=>{s(d=>d.map(h=>h.id===m?{...h,is_read:1}:h)),r(d=>Math.max(0,d-1));try{(await fetch(`/api/notifications/${m}/read`,{method:"PATCH"})).ok||(s(h=>h.map(f=>f.id===m?{...f,is_read:0}:f)),r(h=>h+1))}catch{s(d=>d.map(h=>h.id===m?{...h,is_read:0}:h)),r(d=>d+1)}},[]),l=c.useCallback(async()=>{const m=t,d=n;s(h=>h.map(f=>({...f,is_read:1}))),r(0);try{(await fetch("/api/notifications/read-all",{method:"POST"})).ok||(s(m),r(d))}catch{s(m),r(d)}},[t,n]);c.useEffect(()=>(a.current=!0,i(),()=>{a.current=!1}),[i]),sa(i),ae("new_notification",m=>{if(!m.notification||!a.current)return;const d=m.notification;s(h=>h.some(f=>f.id===d.id)?h:[d,...h]),r(h=>h+1)});const u=c.useCallback(async()=>{s([]),r(0);try{await fetch("/api/notifications",{method:"DELETE"})}catch{i()}},[i]);return{notifications:t,unreadCount:n,markAsRead:o,markAllAsRead:l,clearAll:u,refresh:i}}const es="pilot-memory-theme";function aa(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function gt(){try{const t=localStorage.getItem(es);if(t==="system"||t==="light"||t==="dark")return t}catch(t){console.warn("Failed to read theme preference from localStorage:",t)}return"system"}function jt(t){return t==="system"?aa():t}function vt(t){return t==="dark"?"pilot-shell":"pilot-shell-light"}function ts(){const[t,s]=c.useState(gt),[n,r]=c.useState(()=>jt(gt()));return c.useEffect(()=>{const i=jt(t);r(i),document.documentElement.setAttribute("data-theme",vt(i))},[t]),c.useEffect(()=>{if(t!=="system")return;const i=window.matchMedia("(prefers-color-scheme: dark)"),o=l=>{const u=l.matches?"dark":"light";r(u),document.documentElement.setAttribute("data-theme",vt(u))};return i.addEventListener("change",o),()=>i.removeEventListener("change",o)},[t]),{preference:t,resolvedTheme:n,setThemePreference:i=>{try{localStorage.setItem(es,i),s(i)}catch(o){console.warn("Failed to save theme preference to localStorage:",o),s(i)}}}}const ss=c.createContext(null);let ra=0;function ia({children:t}){const[s,n]=c.useState([]),r=c.useCallback(d=>{const h=`toast-${++ra}`;return n(f=>[...f,{...d,id:h}]),h},[]),a=c.useCallback(d=>{n(h=>h.filter(f=>f.id!==d))},[]),i=c.useCallback(()=>{n([])},[]),o=c.useCallback((d,h)=>r({type:"success",message:d,title:h}),[r]),l=c.useCallback((d,h)=>r({type:"error",message:d,title:h,duration:8e3}),[r]),u=c.useCallback((d,h)=>r({type:"info",message:d,title:h}),[r]),m=c.useCallback((d,h)=>r({type:"warning",message:d,title:h,duration:7e3}),[r]);return e.jsxs(ss.Provider,{value:{addToast:r,removeToast:a,clearAll:i,success:o,error:l,info:u,warning:m},children:[t,e.jsx(Ln,{toasts:s,onDismiss:a})]})}function ns(){const t=c.useContext(ss);if(!t)throw new Error("useToast must be used within a ToastProvider");return t}const fe="pilot-memory-selected-project",oa={selectedProject:null,projects:[],setSelectedProject:()=>{},setProjects:()=>{},refreshProjects:async()=>{}},as=c.createContext(oa);function ca({children:t}){const[s,n]=c.useState(()=>{try{return localStorage.getItem(fe)||null}catch{return null}}),[r,a]=c.useState([]),i=c.useCallback(u=>{n(u);try{u?localStorage.setItem(fe,u):localStorage.removeItem(fe)}catch{}},[]),o=c.useCallback(u=>{a(u)},[]),l=c.useCallback(async()=>{try{const m=await(await fetch("/api/projects")).json(),d=m.projects||[],h=m.workspaceProject;a(d),n(f=>{if(f&&d.includes(f))return f;if(h&&d.includes(h)){try{localStorage.setItem(fe,h)}catch{}return h}if(d.length>0){try{localStorage.setItem(fe,d[0])}catch{}return d[0]}return f})}catch{}},[]);return c.useEffect(()=>{l()},[l]),c.useEffect(()=>{if(s&&r.length>0&&!r.includes(s)){const u=r[0]||null;i(u)}},[r,s,i]),e.jsx(as.Provider,{value:{selectedProject:s,projects:r,setSelectedProject:i,setProjects:o,refreshProjects:l},children:t})}function ie(){return c.useContext(as)}function oe(){const[t,s]=c.useState(()=>typeof window<"u"?yt(window.location.hash):{path:"/",params:{}});c.useEffect(()=>{if(typeof window>"u")return;const r=()=>{s(yt(window.location.hash))};return window.addEventListener("hashchange",r),()=>window.removeEventListener("hashchange",r)},[]);const n=c.useCallback(r=>{window.location.hash=r},[]);return{path:t.path,params:t.params,navigate:n}}function yt(t){const s=t.replace(/^#/,"")||"/",n={},[r,a]=s.split("?");return a&&new URLSearchParams(a).forEach((o,l)=>{n[l]=o}),{path:r,params:n}}function la({onToggleTheme:t,onToggleLogs:s}){const{resolvedTheme:n}=ts(),[r,a]=c.useState(!1),[i,o]=c.useState(!1),{setSelectedProject:l,projects:u}=ie(),{navigate:m}=oe(),{notifications:d,unreadCount:h,markAsRead:f,markAllAsRead:b,clearAll:p}=na(),x=c.useCallback((v,j)=>{j&&u.includes(j)&&l(j),m(v)},[m,l,u]);c.useEffect(()=>{fetch("/api/auth/status").then(v=>v.json()).then(v=>{a(v.authRequired)}).catch(()=>{a(!1)})},[]);const y=async()=>{o(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{o(!1)}};return e.jsxs("div",{className:"flex items-center gap-2",children:[s&&e.jsx(ne,{text:"Toggle console logs",position:"bottom",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:s,children:e.jsx(S,{icon:"lucide:terminal",size:18})})}),e.jsx(ne,{text:`Switch to ${n==="light"?"dark":"light"} mode`,position:"bottom",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:t,children:e.jsx(S,{icon:n==="light"?"lucide:moon":"lucide:sun",size:18})})}),e.jsx(ne,{text:"Repository",position:"bottom",children:e.jsx("a",{href:"https://github.com/maxritter/pilot-shell",target:"_blank",rel:"noopener noreferrer",className:"btn btn-ghost btn-sm",children:e.jsx(S,{icon:"lucide:git-branch",size:18})})}),r&&e.jsx(ne,{text:"Logout",position:"bottom",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:y,disabled:i,children:e.jsx(S,{icon:"lucide:log-out",size:18})})}),e.jsx(ea,{notifications:d,unreadCount:h,onMarkAsRead:f,onMarkAllAsRead:b,onClearAll:p,onNavigate:x})]})}const da=10080*60*1e3,wt=3,ua={plan:"Plan",implement:"Impl",verify:"Verify"},ha={plan:"text-info",implement:"text-warning",verify:"text-accent"};function ma(t){const s=[],n=/^- \[(x| )\] Task (\d+):\s*(.+)$/gm;let r;for(;(r=n.exec(t))!==null;)s.push({number:parseInt(r[2],10),title:r[3],completed:r[1]==="x"});if(s.length===0){const a=/^### Task (\d+):\s*(.+)$/gm;let i;for(;(i=a.exec(t))!==null;)s.push({number:parseInt(i[1],10),title:i[2],completed:!1})}return s}function fa({spec:t,tasks:s,loading:n}){const r=s?s.findIndex(a=>!a.completed):-1;return e.jsxs("div",{className:"absolute top-full left-0 mt-1 z-50 w-72 rounded-lg border border-base-300 bg-base-100 shadow-xl p-3 text-xs invisible opacity-0 group-hover:visible group-hover:opacity-100 transition-opacity pointer-events-none",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-2 pb-2 border-b border-base-300/50",children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info"}),e.jsx("span",{className:"font-semibold truncate",children:t.name}),t.project&&e.jsxs("span",{className:"text-base-content/50 truncate",children:["· ",t.project]})]}),n&&!s&&e.jsx("div",{className:"text-base-content/50 italic",children:"Loading tasks…"}),s&&s.length===0&&e.jsx("div",{className:"text-base-content/50 italic",children:"No tasks yet"}),s&&s.length>0&&e.jsx("ul",{className:"space-y-1 max-h-60 overflow-y-auto",children:s.map((a,i)=>{const o=i===r;return e.jsxs("li",{className:`flex items-start gap-1.5 ${a.completed?"text-base-content/40 line-through":o?"text-primary font-medium":"text-base-content/80"}`,children:[e.jsx(S,{icon:a.completed?"lucide:check-circle":o?"lucide:play-circle":"lucide:circle",size:11,className:"flex-shrink-0 mt-0.5"}),e.jsxs("span",{className:"truncate",children:[a.number,". ",a.title]})]},a.number)})})]})}function xa({spec:t,onClick:s,onRequestTasks:n,tasks:r,loadingTasks:a}){const i=t.status==="PENDING"&&!t.approved;return e.jsxs("div",{className:"relative group",onMouseEnter:n,onFocus:n,children:[e.jsxs("button",{onClick:s,className:`flex items-center gap-1.5 px-2.5 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs cursor-pointer whitespace-nowrap ${i?"animate-pulse":""}`,"aria-label":`${t.name}${t.specType?` (${t.specType})`:""}`,children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info","aria-label":t.specType}),t.project&&e.jsx("span",{className:"text-base-content/40 font-medium truncate max-w-20",children:t.project}),e.jsx("span",{className:"font-medium truncate max-w-28",children:t.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[t.completed,"/",t.total]}),e.jsx("span",{className:`font-medium ${ha[t.phase]||""}`,children:ua[t.phase]||t.phase})]}),e.jsx(fa,{spec:t,tasks:r,loading:a})]})}function pa({specs:t,onPick:s}){return e.jsxs("div",{className:"dropdown dropdown-end dropdown-bottom",children:[e.jsxs("div",{tabIndex:0,role:"button",className:"px-2 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs font-medium cursor-pointer","aria-label":`${t.length} more specs`,children:["+",t.length]}),e.jsx("ul",{tabIndex:0,className:"dropdown-content menu bg-base-100 rounded-box z-50 w-72 p-2 shadow-lg border border-base-200 mt-1",children:t.map(n=>e.jsx("li",{children:e.jsxs("button",{onClick:()=>s(n),className:"flex items-center gap-2 text-xs",children:[n.specType&&e.jsx(S,{icon:n.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:n.specType==="Bugfix"?"text-error":"text-info"}),n.project&&e.jsx("span",{className:"text-base-content/40 truncate max-w-20",children:n.project}),e.jsx("span",{className:"font-medium truncate flex-1",children:n.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[n.completed,"/",n.total]})]})},n.filePath))})]})}function ba(){const[t,s]=c.useState([]),[n,r]=c.useState({}),[a,i]=c.useState({}),{setSelectedProject:o,projects:l}=ie(),{navigate:u}=oe(),m=c.useRef(),d=c.useCallback(async()=>{try{const x=await fetch("/api/plans/active/all");if(!x.ok)return;const v=(await x.json()).specs||[],j=Date.now();s(v.filter(k=>k.status!=="VERIFIED"&&j-new Date(k.modifiedAt).getTime()(d(),m.current=setInterval(d,1e4),()=>clearInterval(m.current)),[d]);const h=c.useCallback(async x=>{const y=n[x.filePath];if(!(y&&y.modifiedAt===x.modifiedAt)&&!a[x.filePath]){i(v=>({...v,[x.filePath]:!0}));try{const v=x.project?`&project=${encodeURIComponent(x.project)}`:"",j=await fetch(`/api/plan/content?path=${encodeURIComponent(x.filePath)}${v}`);if(!j.ok)return;const k=await j.json(),w=ma(k.content||"");r(C=>({...C,[x.filePath]:{modifiedAt:x.modifiedAt,tasks:w}}))}catch{}finally{i(v=>({...v,[x.filePath]:!1}))}}},[n,a]),f=c.useCallback(x=>{x.project&&l.includes(x.project)&&o(x.project);const y=encodeURIComponent(x.filePath);u(`/spec?path=${y}`)},[u,o,l]);if(t.length===0)return null;const b=t.slice(0,wt),p=t.slice(wt);return e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[b.map(x=>{var y;return e.jsx(xa,{spec:x,onClick:()=>f(x),onRequestTasks:()=>h(x),tasks:((y=n[x.filePath])==null?void 0:y.tasks)||null,loadingTasks:!!a[x.filePath]},x.filePath)}),p.length>0&&e.jsx(pa,{specs:p,onPick:f})]})}function ga({onToggleTheme:t,onToggleLogs:s}){return e.jsxs("header",{className:"h-14 bg-base-100 border-b border-base-300/50 flex items-center px-6 gap-4",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(ba,{})}),e.jsx(la,{onToggleTheme:t,onToggleLogs:s})]})}function ja({children:t,currentPath:s,version:n,workerStatus:r,queueDepth:a,onToggleTheme:i,onToggleLogs:o,sidebarCollapsed:l,onToggleSidebar:u}){return e.jsxs("div",{className:"dashboard-layout flex h-screen",children:[e.jsx(Qn,{currentPath:s,version:n,workerStatus:r,queueDepth:a,collapsed:l,onToggleCollapse:u}),e.jsxs("div",{className:"flex-1 flex flex-col min-w-0 min-h-0",children:[e.jsx(ga,{onToggleTheme:i,onToggleLogs:o}),e.jsx("main",{className:"flex-1 p-6 overflow-y-auto min-h-0",children:t})]})]})}function va({routes:t,fallback:s}){const{path:n}=oe();for(const r of t){const a=ya(r.path,n);if(a){const i=r.component;return e.jsx(i,{...a.params})}}return s?e.jsx(e.Fragment,{children:s}):null}function ya(t,s){if(t===s)return{params:{}};const n=t.split("/"),r=s.split("/");if(n.length!==r.length)return null;const a={};for(let i=0;i{const a=setTimeout(()=>{r.current||s(!0)},8e3);return()=>clearTimeout(a)},[]),e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Documentation"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Pilot Shell technical reference"})]}),e.jsxs("a",{href:Me,target:"_blank",rel:"noopener noreferrer",className:"btn btn-sm btn-ghost gap-1.5",children:[e.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})}),"Open in browser"]})]}),t?e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center space-y-3",children:[e.jsx("div",{className:"text-4xl",children:"📡"}),e.jsx("p",{className:"text-base-content/60 text-sm",children:"Could not load documentation."}),e.jsx("a",{href:Me,target:"_blank",rel:"noopener noreferrer",className:"btn btn-primary btn-sm",children:"Open docs in browser"})]})}):e.jsx("iframe",{ref:n,src:Me,title:"Pilot Shell Documentation",className:"flex-1 w-full rounded-xl border border-base-300 bg-base-100",style:{minHeight:"calc(100vh - 10rem)"},onLoad:()=>{var a;r.current=!0;try{const i=n.current;((a=i==null?void 0:i.contentDocument)==null?void 0:a.title)===""&&s(!0)}catch{}}})]})}const Na={observation:{icon:"lucide:brain",variant:"info",color:"text-info"},summary:{icon:"lucide:file-text",variant:"warning",color:"text-warning"},prompt:{icon:"lucide:message-square",variant:"secondary",color:"text-secondary"},bugfix:{icon:"lucide:bug",variant:"error",color:"text-error"},feature:{icon:"lucide:sparkles",variant:"ghost",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",variant:"accent",color:"text-accent"},discovery:{icon:"lucide:search",variant:"info",color:"text-info"},decision:{icon:"lucide:git-branch",variant:"warning",color:"text-warning"},change:{icon:"lucide:pencil",variant:"secondary",color:"text-secondary"}},Sa={icon:"lucide:circle",variant:"secondary",color:"text-secondary"};function ka(t,s=50){return t.length<=s?t:t.slice(0,s)+"…"}function Ca({memory:t,viewMode:s,onView:n,selectionMode:r,isSelected:a,onToggleSelection:i}){const o=Na[t.type]||Sa,l=s==="grid",u=()=>{r?i==null||i(t.id):n==null||n(t.id)},m=d=>{d.stopPropagation(),t.sessionDbId&&(window.location.hash=`/sessions?selected=${t.sessionDbId}`)};return e.jsx(Z,{className:`hover:shadow-md transition-shadow cursor-pointer ${l?"":"flex flex-row"} ${a?"ring-2 ring-primary":""}`,onClick:u,children:e.jsx(ee,{className:l?"p-4":"flex flex-row items-start gap-4 flex-1 p-4",children:e.jsxs("div",{className:`flex items-start gap-3 ${l?"":"flex-1"}`,children:[r?e.jsx("div",{className:"flex items-center justify-center w-8 h-8 flex-shrink-0",children:e.jsx("input",{type:"checkbox",className:"checkbox checkbox-primary",checked:a,onChange:()=>i==null?void 0:i(t.id),onClick:d=>d.stopPropagation()})}):e.jsx("div",{className:`p-2 rounded-lg bg-base-200 ${o.color} shrink-0`,children:e.jsx(S,{icon:o.icon,size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[e.jsx(B,{variant:o.variant,size:"xs",children:t.type}),e.jsx("span",{className:"text-xs text-base-content/40 shrink-0",children:t.timestamp})]}),e.jsx("h3",{className:"font-medium text-sm line-clamp-2",children:t.title}),e.jsx("div",{className:"mt-1.5",children:t.sessionPrompt&&t.sessionDbId?e.jsxs("button",{onClick:m,className:"text-xs text-primary/70 hover:text-primary hover:underline truncate max-w-full block text-left transition-colors",title:`Session: ${t.sessionPrompt}`,children:[e.jsx(S,{icon:"lucide:terminal",size:11,className:"inline mr-1 -mt-0.5"}),ka(t.sessionPrompt)]}):e.jsx("span",{className:"text-xs text-base-content/30",children:"no session"})})]})]})})})}const Ea={observation:{icon:"lucide:brain",variant:"info"},summary:{icon:"lucide:file-text",variant:"warning"},prompt:{icon:"lucide:message-square",variant:"secondary"},bugfix:{icon:"lucide:bug",variant:"error"},feature:{icon:"lucide:sparkles",variant:"success"},refactor:{icon:"lucide:refresh-cw",variant:"accent"},discovery:{icon:"lucide:search",variant:"info"},decision:{icon:"lucide:git-branch",variant:"warning"},change:{icon:"lucide:pencil",variant:"secondary"}};function Ra({memory:t,onClose:s}){const n=t?Ea[t.type]||{icon:"lucide:circle",variant:"secondary"}:{icon:"lucide:circle",variant:"secondary"};return e.jsx(ye,{open:!!t,onClose:s,title:"Memory Details",children:t&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-2.5 rounded-lg bg-base-200 text-${n.variant}`,children:e.jsx(S,{icon:n.icon,size:20})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-base font-semibold leading-tight",children:t.title}),e.jsxs("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[e.jsx(B,{variant:n.variant,size:"sm",children:t.type}),e.jsxs("span",{className:"text-xs text-base-content/50 flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:11}),t.project]}),e.jsx("span",{className:"text-xs text-base-content/40",children:t.timestamp}),e.jsxs("span",{className:"text-xs text-base-content/40 font-mono",children:["#",t.id]})]}),t.concepts&&t.concepts.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 mt-2",children:t.concepts.map(r=>e.jsx(B,{variant:"ghost",size:"xs",children:r},r))})]})]}),e.jsx("div",{className:"bg-base-200 rounded-lg p-4 max-h-96 overflow-y-auto",children:t.facts&&t.facts.length>0?e.jsx("ul",{className:"text-sm space-y-2 list-disc list-inside",children:t.facts.map((r,a)=>e.jsx("li",{children:r},a))}):e.jsx("pre",{className:"text-sm whitespace-pre-wrap break-words",children:t.content||"No content available"})})]})})}function Pa({onSearch:t,isSearching:s,placeholder:n="Search your memories semantically..."}){const[r,a]=c.useState(""),i=o=>{o.preventDefault(),r.trim()&&t(r.trim())};return e.jsxs("form",{onSubmit:i,className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:n,value:r,onChange:o=>a(o.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),e.jsx(te,{type:"submit",loading:s,disabled:!r.trim(),children:"Search"})]})}const Ia={observation:{icon:"lucide:brain",variant:"info",label:"Observation"},summary:{icon:"lucide:file-text",variant:"warning",label:"Summary"},prompt:{icon:"lucide:message-square",variant:"secondary",label:"Prompt"},bugfix:{icon:"lucide:bug",variant:"error",label:"Bug Fix"},feature:{icon:"lucide:sparkles",variant:"success",label:"Feature"},refactor:{icon:"lucide:refresh-cw",variant:"accent",label:"Refactor"},discovery:{icon:"lucide:search",variant:"info",label:"Discovery"},decision:{icon:"lucide:git-branch",variant:"warning",label:"Decision"},change:{icon:"lucide:pencil",variant:"secondary",label:"Change"}},Ta={icon:"lucide:circle",variant:"secondary",label:"Unknown"};function Aa(t){try{return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}function Da({result:t}){const s=t.obsType||t.type,n=Ia[s]||Ta,r=Math.round(t.score*100),a=i=>i>=.7?"text-success":i>=.4?"text-warning":"text-base-content/50";return e.jsx(Z,{className:"hover:shadow-md transition-shadow",children:e.jsx(ee,{children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:n.icon,size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(B,{variant:n.variant,size:"xs",children:n.label}),e.jsxs("span",{className:"text-xs text-base-content/50",children:["#",t.id]}),t.score>0&&e.jsxs("span",{className:`ml-auto text-xs font-mono ${a(t.score)}`,children:[r,"% match"]})]}),e.jsx("h3",{className:"font-medium truncate",children:t.title}),e.jsx("p",{className:"text-sm text-base-content/60 mt-1 line-clamp-2",children:t.content}),e.jsxs("div",{className:"flex items-center gap-4 mt-3 text-xs text-base-content/50",children:[t.project&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:12}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:clock",size:12}),Aa(t.timestamp)]})]})]}),t.score>0&&e.jsxs("div",{className:"w-16 shrink-0 hidden sm:block",children:[e.jsx("div",{className:"h-2 bg-base-200 rounded-full overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full transition-all ${t.score>=.7?"bg-success":t.score>=.4?"bg-warning":"bg-base-content/30"}`,style:{width:`${r}%`}})}),e.jsx("div",{className:"text-[10px] text-center mt-1 text-base-content/50",children:"similarity"})]})]})})})}function Ae(){const{selectedProject:t,projects:s,setSelectedProject:n}=ie();return e.jsxs("div",{className:"relative inline-flex items-center",children:[e.jsx("select",{value:t??s[0]??"",onChange:r=>n(r.target.value),className:"select select-bordered select-sm text-xs font-normal pl-7 pr-8 min-w-[140px] max-w-[200px]",children:s.map(r=>e.jsx("option",{value:r,children:r},r))}),e.jsx(S,{icon:"lucide:folder",size:13,className:"absolute left-2.5 pointer-events-none text-base-content/40"})]})}const _a=12e4;function La(){const{selectedProject:t}=ie(),[s,n]=c.useState(!1),[r,a]=c.useState([]),[i,o]=c.useState(!1),[l,u]=c.useState(null),[m,d]=c.useState(null),h=c.useRef(null),f=c.useRef(!1),b=c.useCallback(async x=>{var j;(j=h.current)==null||j.abort(),f.current=!1;const y=new AbortController;h.current=y;const v=setTimeout(()=>y.abort(),_a);o(!0),n(!0),u(null);try{const k=new URLSearchParams({query:x,limit:"30"});t&&k.set("project",t);const w=await fetch(`/api/search/semantic?${k}`,{signal:y.signal});if(!w.ok)throw new Error(`Search failed with status ${w.status}`);const C=await w.json();a(C.results||[]),d({usedSemantic:C.usedSemantic,vectorDbAvailable:C.vectorDbAvailable})}catch(k){if(f.current)return;k.name==="AbortError"?u("Search timed out. Please try again."):u("Search failed. Please try again."),a([]),d(null)}finally{clearTimeout(v),f.current||o(!1)}},[t]),p=c.useCallback(()=>{var x;f.current=!0,(x=h.current)==null||x.abort(),n(!1),a([]),d(null),u(null),o(!1)},[]);return c.useEffect(()=>()=>{var x;(x=h.current)==null||x.abort()},[]),{isSearchMode:s,searchResults:r,isSearching:i,searchError:l,searchMeta:m,handleSearch:b,handleClearSearch:p}}function Nt(){var C;const{params:t}=oe(),[s,n]=c.useState([]),[r,a]=c.useState(!0),[i,o]=c.useState(null),l=t.id?Number(t.id):null,u=c.useRef(!1),{selectedProject:m}=ie(),{isSearchMode:d,searchResults:h,isSearching:f,searchError:b,searchMeta:p,handleSearch:x,handleClearSearch:y}=La(),v=c.useCallback(async g=>{await x(g)},[x]),j=c.useCallback(async()=>{a(!0);try{const g=new URLSearchParams;m&&g.set("project",m),g.set("limit","50");const $=await(await fetch(`/api/observations?${g}`)).json(),R=$.items||$.observations||[];n(R.map(E=>({id:E.id,type:E.type||"observation",title:E.title||"Untitled",content:E.narrative||E.content||"",facts:E.facts?typeof E.facts=="string"?JSON.parse(E.facts):E.facts:[],project:E.project||"unknown",timestamp:k(E.created_at),concepts:E.concepts?typeof E.concepts=="string"?JSON.parse(E.concepts):E.concepts:[],sessionDbId:E.session_db_id??void 0,sessionPrompt:E.session_prompt??void 0})))}catch(g){console.error("Failed to fetch memories:",g)}finally{a(!1)}},[m]);function k(g){if(!g)return"";const P=new Date(g),R=new Date().getTime()-P.getTime();return R<6e4?"just now":R<36e5?`${Math.floor(R/6e4)}m ago`:R<864e5?`${Math.floor(R/36e5)}h ago`:P.toLocaleDateString()}c.useEffect(()=>{j()},[j]),c.useEffect(()=>{if(l&&!u.current&&!r&&s.length>0){const g=s.find(P=>P.id===l);g&&(u.current=!0,o(g))}},[l,r,s]);const w=g=>{const P=s.find($=>$.id===g);P&&o(P)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Memories"}),e.jsx(Ae,{}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Decisions, discoveries, and patterns from past sessions"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[d&&e.jsxs(te,{variant:"ghost",size:"sm",onClick:y,children:[e.jsx(S,{icon:"lucide:x",size:16,className:"mr-1"}),"Clear"]}),!d&&e.jsx(te,{variant:"ghost",size:"sm",onClick:j,children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})]})]}),!d&&e.jsxs("div",{className:"bg-base-200/40 rounded-xl p-4 space-y-2",children:[e.jsx("p",{className:"text-xs font-semibold text-base-content/50 uppercase tracking-wider",children:"How Memories Work"}),e.jsxs("div",{className:"grid sm:grid-cols-3 gap-3 text-sm text-base-content/60",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:scan",size:14,className:"text-violet-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Capture"})," — hooks observe each session and send events to a background Haiku model that extracts decisions, discoveries, and patterns"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:database",size:14,className:"text-sky-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Store"})," — observations are persisted in a local SQLite database with full-text and semantic search"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:rotate-cw",size:14,className:"text-emerald-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Re-inject"})," — at session start, relevant memories are loaded back into context so Claude remembers your conventions and past decisions"]})]})]})]}),e.jsx(Pa,{onSearch:v,isSearching:f,placeholder:"Search memories semantically..."}),b&&!f&&e.jsxs("div",{className:"alert alert-error",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{children:b})]}),d?f?e.jsx(le,{}):b?null:h.length===0?e.jsx(Be,{icon:"lucide:search-x",title:"No results found",description:"Try a different query"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"text-sm text-base-content/60",children:[h.length," results",(p==null?void 0:p.usedSemantic)&&((C=h[0])==null?void 0:C.score)>0&&e.jsxs("span",{className:"ml-2",children:["(best match: ",Math.round(h[0].score*100),"% similarity)"]})]}),h.map(g=>e.jsx(Da,{result:g},`${g.type}-${g.id}`))]}):r?e.jsx(le,{}):s.length===0?e.jsx(Be,{icon:"lucide:brain",title:"No memories yet",description:"Memories are created automatically as you use Claude Code — decisions, discoveries, and patterns are captured in the background."}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:s.map(g=>e.jsx(Ca,{memory:g,viewMode:"grid",onView:w,selectionMode:!1,isSelected:!1,onToggleSelection:()=>{}},g.id))}),e.jsx(Ra,{memory:i,onClose:()=>o(null)})]})}const St={active:{variant:"warning",icon:"lucide:play"},completed:{variant:"success",icon:"lucide:check"}};function $a(t){return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Ma({sessionId:t}){const[s,n]=c.useState(!1),r=a=>{a.stopPropagation(),navigator.clipboard.writeText(t).then(()=>{n(!0),setTimeout(()=>n(!1),2e3)})};return e.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-2 py-0.5 rounded bg-base-200 hover:bg-base-300 transition-colors text-xs font-mono text-base-content/60 group",title:"Copy session ID for /resume",children:[e.jsx("span",{className:"truncate max-w-32",children:t}),e.jsx(S,{icon:s?"lucide:check":"lucide:copy",size:12,className:s?"text-success":"text-base-content/40 group-hover:text-base-content/70"})]})}function Oe({icon:t,value:s,label:n}){return e.jsxs("div",{className:"flex flex-col items-center min-w-[4.5rem]",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:t,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"font-semibold text-sm tabular-nums",children:s})]}),e.jsx("span",{className:"text-[10px] text-base-content/40 uppercase tracking-wider",children:n})]})}function Oa(t){return t<.01?"<$0.01":t<1?`$${t.toFixed(2)}`:`$${t.toFixed(2)}`}function za({session:t,isExpanded:s,onToggle:n,isResumed:r,costUsd:a}){const i=St[t.status]||St.active;return e.jsx(Z,{className:`cursor-pointer hover:shadow-md transition-shadow ${s?"ring-2 ring-primary":""} ${t.status==="active"?"border-l-4 border-l-warning":""}`,onClick:n,children:e.jsx(ee,{children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:i.icon,size:20,className:`text-${i.variant}`})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(B,{variant:i.variant,size:"sm",children:t.status}),r&&e.jsx(B,{variant:"info",size:"sm",children:"resumed"}),t.content_session_id&&e.jsx(Ma,{sessionId:t.content_session_id})]}),e.jsx("h3",{className:"font-medium line-clamp-1",children:t.user_prompt||t.project||"Untitled Session"}),e.jsxs("div",{className:"flex items-center gap-4 mt-2 text-sm text-base-content/60",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:14}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:14}),$a(t.started_at)]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsx(Oe,{icon:"lucide:dollar-sign",value:a!=null?Oa(a):"—",label:"Cost"}),e.jsx(Oe,{icon:"lucide:messages-square",value:t.observation_count+t.prompt_count,label:"Messages"}),e.jsx(Oe,{icon:"lucide:message-square",value:t.prompt_count,label:"Prompts"}),e.jsx(S,{icon:s?"lucide:chevron-up":"lucide:chevron-down",size:20,className:"text-base-content/50 ml-1"})]})]})})})}const ze={prompt:{icon:"lucide:message-square",color:"text-primary"},observation:{icon:"lucide:brain",color:"text-info"},bugfix:{icon:"lucide:bug",color:"text-error"},feature:{icon:"lucide:sparkles",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",color:"text-accent"},discovery:{icon:"lucide:search",color:"text-info"},decision:{icon:"lucide:git-branch",color:"text-warning"},change:{icon:"lucide:pencil",color:"text-secondary"}};function Fa(t){return new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}function Ua({sessionId:t,skipHeader:s}){const[n,r]=c.useState(null),[a,i]=c.useState(!0),[o,l]=c.useState(new Set);c.useEffect(()=>{async function d(){i(!0);try{const f=await(await fetch(`/api/sessions/${t}/timeline`)).json();r(f)}catch(h){console.error("Failed to fetch timeline:",h)}finally{i(!1)}}d()},[t]);const u=d=>{l(h=>{const f=new Set(h);return f.has(d)?f.delete(d):f.add(d),f})};if(a)return e.jsx("div",{className:"space-y-3 animate-pulse py-4",children:Array.from({length:3}).map((d,h)=>e.jsx("div",{className:"h-16 bg-base-300/50 rounded-lg"},h))});if(!n)return e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"Failed to load timeline"});const m={active:"badge-success",completed:"badge-info",failed:"badge-error"};return e.jsxs("div",{className:"mt-4 space-y-4",children:[!s&&e.jsxs(e.Fragment,{children:[e.jsx(Z,{className:"bg-base-200/50",children:e.jsxs(ee,{className:"py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[e.jsx(B,{variant:"ghost",size:"sm",className:m[n.session.status]||"",children:n.session.status}),e.jsx("span",{className:"text-sm text-base-content/60",children:new Date(n.session.started_at).toLocaleString()}),n.session.completed_at&&e.jsxs("span",{className:"text-sm text-base-content/60",children:["→ ",new Date(n.session.completed_at).toLocaleString()]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:message-square",size:14,className:"text-primary"}),e.jsx("span",{className:"font-medium",children:n.stats.prompts}),e.jsx("span",{className:"text-base-content/60",children:"prompts"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:brain",size:14,className:"text-info"}),e.jsx("span",{className:"font-medium",children:n.stats.observations}),e.jsx("span",{className:"text-base-content/60",children:"observations"})]})]})]})}),n.session.user_prompt&&e.jsx(Z,{className:"bg-primary/10 border-primary/30",children:e.jsxs(ee,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:16,className:"text-primary"}),e.jsx("span",{className:"font-medium text-sm",children:"Prompt"})]}),e.jsx("p",{className:"text-sm text-base-content/80 whitespace-pre-wrap",children:n.session.user_prompt})]})}),n.summary&&e.jsx(Z,{className:"bg-warning/10 border-warning/30",children:e.jsxs(ee,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:file-text",size:16,className:"text-warning"}),e.jsx("span",{className:"font-medium text-sm",children:"Session Summary"}),e.jsx("span",{className:"text-xs text-base-content/50",children:new Date(n.summary.created_at).toLocaleTimeString()})]}),e.jsxs("div",{className:"space-y-3 text-sm",children:[n.summary.request&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-warning mb-1",children:"Request"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.request})]}),n.summary.investigated&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-info mb-1",children:"Investigated"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.investigated})]}),n.summary.learned&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-success mb-1",children:"Learned"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.learned})]}),n.summary.completed&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-primary mb-1",children:"Completed"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.completed})]}),n.summary.next_steps&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-accent mb-1",children:"Next Steps"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.next_steps})]})]})]})})]}),e.jsxs("div",{className:"ml-8 border-l-2 border-base-300 pl-6 space-y-4",children:[[...n.timeline].reverse().map((d,h)=>{var y,v;const f=`${d.type}-${d.id}`,b=o.has(f),p=d.type==="prompt"?ze.prompt:ze[d.data.type]||ze.observation;let x=[];if(d.type==="observation"&&d.data.concepts)try{x=JSON.parse(d.data.concepts)}catch{}return e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:`absolute -left-9 top-3 w-4 h-4 rounded-full border-2 border-base-100 ${d.type==="prompt"?"bg-primary":"bg-info"}`}),e.jsx(Z,{className:"cursor-pointer hover:shadow-sm transition-shadow",onClick:j=>{j.stopPropagation(),u(f)},children:e.jsx(ee,{className:"py-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-1.5 rounded bg-base-200 ${p.color}`,children:e.jsx(S,{icon:p.icon,size:14})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[e.jsx(B,{variant:d.type==="prompt"?"primary":"info",size:"xs",children:d.type==="prompt"?`prompt #${d.data.prompt_number||"?"}`:d.data.type||"observation"}),e.jsx("span",{className:"text-xs text-base-content/50",children:Fa(d.timestamp)}),e.jsxs("span",{className:"text-xs text-base-content/40",children:["#",d.id]}),x.length>0&&x.map(j=>e.jsx(B,{variant:"ghost",size:"xs",className:"text-base-content/50",children:j},j))]}),e.jsx("p",{className:"text-sm font-medium",children:d.type==="prompt"?((y=d.data.prompt_text)==null?void 0:y.length)>100?d.data.prompt_text.substring(0,100)+"...":d.data.prompt_text:d.data.title||"Untitled"}),d.type==="observation"&&d.data.narrative&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${b?"":"line-clamp-3"}`,children:d.data.narrative}),d.type==="prompt"&&((v=d.data.prompt_text)==null?void 0:v.length)>100&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${b?"whitespace-pre-wrap":"line-clamp-3"}`,children:b?d.data.prompt_text:d.data.prompt_text.substring(100)}),d.type==="observation"&&(d.data.files_read||d.data.files_modified)&&e.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[d.data.files_read&&(()=>{try{const j=JSON.parse(d.data.files_read);if(j.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:file",size:12,className:"inline mr-1"}),j.length," read"]})}catch{return null}})(),d.data.files_modified&&(()=>{try{const j=JSON.parse(d.data.files_modified);if(j.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:pencil",size:12,className:"inline mr-1"}),j.length," modified"]})}catch{return null}})()]}),b&&d.type==="observation"&&d.data.text&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-base-200",children:[e.jsx("p",{className:"text-sm text-base-content/70 whitespace-pre-wrap",children:d.data.text}),(d.data.files_read||d.data.files_modified)&&e.jsxs("div",{className:"mt-3 space-y-1",children:[d.data.files_read&&(()=>{try{const j=JSON.parse(d.data.files_read);if(j.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Read:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:j.map((k,w)=>e.jsx("div",{className:"truncate",children:k},w))})]})}catch{return null}})(),d.data.files_modified&&(()=>{try{const j=JSON.parse(d.data.files_modified);if(j.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Modified:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:j.map((k,w)=>e.jsx("div",{className:"truncate",children:k},w))})]})}catch{return null}})()]})]})]}),e.jsx(S,{icon:b?"lucide:chevron-up":"lucide:chevron-down",size:16,className:"text-base-content/40"})]})})})]},f)}),n.timeline.length===0&&e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No activity in this session"})]})]})}function qa(t){return t<.01?"<$0.01":`$${t.toFixed(2)}`}const Ha={Read:"lucide:file",Write:"lucide:file-plus",Edit:"lucide:file-edit",Bash:"lucide:terminal",Glob:"lucide:folder-search",Grep:"lucide:search",Agent:"lucide:bot",WebSearch:"lucide:globe",WebFetch:"lucide:download",AskUserQuestion:"lucide:message-circle",TaskCreate:"lucide:list-plus",TaskUpdate:"lucide:list-checks"};function Ee({label:t,value:s,icon:n}){return e.jsxs("div",{className:"bg-base-200/50 rounded-lg px-3 py-2.5 text-center",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1.5 mb-0.5",children:[e.jsx(S,{icon:n,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"text-[10px] text-base-content/50 uppercase tracking-wider",children:t})]}),e.jsx("div",{className:"text-base font-semibold tabular-nums",children:s})]})}function Ga({tools:t}){const s=Object.entries(t);if(s.length===0)return e.jsx(e.Fragment,{});const n=Math.max(...s.map(([,u])=>u)),r=s.slice(0,20),a=Math.ceil(r.length/2),i=r.slice(0,a),o=r.slice(a),l=([u,m])=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(S,{icon:Ha[u]||"lucide:wrench",size:13,className:"text-base-content/40 shrink-0"}),e.jsx("span",{className:"text-sm w-28 truncate",title:u,children:u}),e.jsx("div",{className:"flex-1 h-1.5 bg-base-300 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-info rounded-full transition-all",style:{width:`${m/n*100}%`}})}),e.jsx("span",{className:"text-xs tabular-nums text-base-content/50 w-8 text-right",children:m})]},u);return e.jsxs("div",{className:"grid grid-cols-2 gap-x-6 gap-y-1.5",children:[e.jsx("div",{className:"space-y-1.5",children:i.map(l)}),e.jsx("div",{className:"space-y-1.5",children:o.map(l)}),s.length>20&&e.jsxs("span",{className:"col-span-2 text-xs text-base-content/40 mt-1",children:["+ ",s.length-20," more tools"]})]})}function Ba({session:t,open:s,onClose:n,onResumedDetected:r}){const[a,i]=c.useState(null),[o,l]=c.useState(null),[u,m]=c.useState(!0),[d,h]=c.useState(!0),f=c.useRef(r);f.current=r,c.useEffect(()=>{if(!s)return;let x=!1;async function y(){var v;m(!0);try{const[j,k]=await Promise.all([fetch(`/api/sessions/${t.id}/stats`),fetch(`/api/sessions/${t.id}/timeline`)]);if(!x){if(j.ok){const w=await j.json();w.stats?(i(w.stats),h(!0),(v=f.current)==null||v.call(f,w.stats.is_resumed)):h(!1)}else h(!1);if(k.ok){const w=await k.json();l(w.session??null)}}}catch{x||h(!1)}finally{x||m(!1)}}return y(),()=>{x=!0}},[t.id,s]);const b=a?Object.entries(a.models):[],p=(o==null?void 0:o.status)==="active"||t.status==="active";return e.jsx(ye,{open:s,onClose:n,title:"Session Details",size:"wide",children:e.jsxs("div",{className:"max-h-[70vh] overflow-y-auto space-y-4 pr-1",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap text-sm",children:[e.jsx(B,{variant:p?"warning":"success",size:"sm",children:p?"active":"completed"}),(a==null?void 0:a.is_resumed)&&e.jsx(B,{variant:"info",size:"sm",children:"resumed"}),e.jsx("span",{className:"text-base-content/50",children:o?new Date(o.started_at).toLocaleString():new Date(t.started_at).toLocaleString()}),(o==null?void 0:o.completed_at)&&e.jsxs("span",{className:"text-base-content/40",children:["→ ",new Date(o.completed_at).toLocaleString()]}),b.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-base-content/20",children:"|"}),b.map(([x,y])=>e.jsxs(B,{variant:"ghost",size:"sm",children:[x.replace("claude-","").replace(/-\d{8}$/,"")," (",y,")"]},x))]})]}),u?e.jsx("div",{className:"grid grid-cols-4 gap-3 animate-pulse",children:Array.from({length:4}).map((x,y)=>e.jsx("div",{className:"bg-base-300/50 rounded-lg h-14"},y))}):a?e.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[e.jsx(Ee,{label:"Cost",value:qa(a.cost_usd),icon:"lucide:dollar-sign"}),e.jsx(Ee,{label:"Messages",value:String(a.turns),icon:"lucide:messages-square"}),e.jsx(Ee,{label:"Observations",value:String(t.observation_count),icon:"lucide:brain"}),e.jsx(Ee,{label:"Prompts",value:String(t.prompt_count),icon:"lucide:message-square"})]}):d?null:e.jsxs("div",{className:"text-sm text-base-content/40 text-center py-2",children:[e.jsx(S,{icon:"lucide:file-x",size:16,className:"inline mr-2"}),"JSONL file not available — showing timeline data only"]}),t.user_prompt&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:14,className:"text-primary"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Prompt"})]}),e.jsx("p",{className:"text-sm whitespace-pre-wrap break-words text-base-content/80",children:t.user_prompt})]}),a&&Object.keys(a.tools).length>0&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:wrench",size:14,className:"text-info"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Tool Usage"})]}),e.jsx(Ga,{tools:a.tools})]}),e.jsx(Ua,{sessionId:t.id,skipHeader:!0})]})})}const Va=[{key:"date",label:"Date",icon:"lucide:calendar"},{key:"cost",label:"Cost",icon:"lucide:dollar-sign"},{key:"messages",label:"Messages",icon:"lucide:messages-square"},{key:"prompts",label:"Prompts",icon:"lucide:message-square"}];function kt(t,s,n){switch(s){case"date":return t.started_at_epoch;case"cost":return n[t.id]??0;case"messages":return t.observation_count+t.prompt_count;case"prompts":return t.prompt_count}}function Ka(){const{params:t}=oe(),[s,n]=c.useState([]),[r,a]=c.useState(!0),[i,o]=c.useState(null),[l,u]=c.useState(""),[m,d]=c.useState("date"),[h,f]=c.useState("desc"),[b,p]=c.useState({}),{selectedProject:x,setSelectedProject:y}=ie(),v=c.useRef(null),[j,k]=c.useState(new Set),w=c.useCallback(async R=>{a(!0);try{const E=new URLSearchParams;E.set("limit","50"),x&&E.set("project",x),R&&E.set("search",R);const _=(await(await fetch(`/api/sessions?${E}`)).json()).items||[];if(n(_),_.length>0){const F=_.map(q=>q.id);fetch("/api/sessions/costs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:F})}).then(q=>q.json()).then(q=>p(q.costs||{})).catch(()=>{})}}catch(E){console.error("Failed to fetch sessions:",E)}finally{a(!1)}},[x]);c.useEffect(()=>{w(l||void 0)},[w,l]),c.useEffect(()=>{if(!t.selected||r)return;const R=Number(t.selected),E=s.find(T=>T.id===R);E?(o(E),x&&E.project!==x&&y(E.project)):x&&s.length>0&&y(null)},[t.selected,r,s,x,y]);const C=R=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{u(R)},300)},g=c.useCallback(R=>{k(E=>{if(!i||E.has(i.id)||!R)return E;const T=new Set(E);return T.add(i.id),T})},[i]),P=R=>{m===R?f(E=>E==="desc"?"asc":"desc"):(d(R),f("desc"))},$=c.useMemo(()=>{const R=[],E=[];for(const _ of s)_.status==="active"?R.push(_):E.push(_);const T=h==="desc"?-1:1,I=(_,F)=>T*(kt(_,m,b)-kt(F,m,b));return R.sort(I),E.sort(I),[...R,...E]},[s,m,h,b]);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Sessions"}),e.jsx(Ae,{}),e.jsxs("span",{className:"text-xs text-base-content/50",children:[s.length," session",s.length!==1?"s":""]}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Browse past sessions · copy session ID to resume"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:()=>w(l||void 0),children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})})]}),e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:"Search sessions by prompt, project, or session ID...",onChange:R=>C(R.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),r?e.jsx(le,{}):s.length===0?e.jsx(Be,{icon:"lucide:history",title:l?"No matching sessions":"No sessions found",description:l?"Try a different search query":"Sessions will appear here as you use Claude Code"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-end gap-1 pr-2",children:[e.jsx("span",{className:"text-xs text-base-content/40 mr-2",children:"Sort by:"}),Va.map(({key:R,label:E,icon:T})=>{const I=m===R;return e.jsxs("button",{onClick:()=>P(R),className:`flex items-center gap-1 px-2.5 py-1 rounded text-xs transition-colors ${I?"bg-primary/10 text-primary font-medium":"text-base-content/50 hover:text-base-content/80 hover:bg-base-200"}`,children:[e.jsx(S,{icon:T,size:12}),E,I&&e.jsx(S,{icon:h==="desc"?"lucide:arrow-down":"lucide:arrow-up",size:12})]},R)})]}),$.map(R=>e.jsx("div",{id:`session-${R.id}`,children:e.jsx(za,{session:R,isExpanded:(i==null?void 0:i.id)===R.id,onToggle:()=>o((i==null?void 0:i.id)===R.id?null:R),isResumed:j.has(R.id),costUsd:b[R.id]})},R.id))]}),i&&e.jsx(Ba,{session:i,open:!!i,onClose:()=>o(null),onResumedDetected:g})]})}const Se=["sonnet","opus"],rs={sonnet:"Sonnet 4.6",opus:"Opus 4.7"},is=/^claude-[a-z0-9][a-z0-9.\-]*$/;function Ct(t,s=!0){if(typeof t!="string"||t.length===0)return!1;const n=t.endsWith("[1m]");if(n&&!s)return!1;const r=n?t.slice(0,-4):t;return r?Se.includes(r)?!0:is.test(r):!1}function De(t){const s=t.endsWith("[1m]")?t.slice(0,-4):t;return!Se.includes(s)&&is.test(s)}const W={model:"opus",extendedContext:!0,extendedContextOverrides:{},skills:{spec:"opus","spec-plan":"opus","spec-implement":"sonnet","spec-verify":"sonnet",fix:"opus","setup-rules":"opus","create-skill":"opus",prd:"opus",benchmark:"opus"},agents:{"spec-review":"sonnet","changes-review":"sonnet"},reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{branchIsolation:!0,askQuestionsDuringPlanning:!0,planApproval:!0},securityScanner:{credentialScanner:!0}};function Wa(){const[t,s]=c.useState(W),[n,r]=c.useState(!0),[a,i]=c.useState(null),[o,l]=c.useState(!1),[u,m]=c.useState(!1);c.useEffect(()=>{fetch("/api/settings").then(w=>{if(!w.ok)throw new Error(`API error: ${w.status}`);return w.json()}).then(w=>{s({...W,...w}),r(!1)}).catch(w=>{i(w.message||"Failed to load settings"),r(!1)})},[]);const d=c.useCallback(w=>{s(C=>({...C,model:w})),l(!0),m(!1)},[]),h=c.useCallback(w=>{s(C=>({...C,extendedContext:w})),l(!0),m(!1)},[]),f=c.useCallback((w,C)=>{s(g=>({...g,extendedContextOverrides:{...g.extendedContextOverrides,[w]:C}})),l(!0),m(!1)},[]),b=c.useCallback((w,C)=>{s(g=>({...g,skills:{...g.skills,[w]:C}})),l(!0),m(!1)},[]),p=c.useCallback((w,C)=>{s(g=>({...g,agents:{...g.agents,[w]:C}})),l(!0),m(!1)},[]),x=c.useCallback((w,C)=>{s(g=>({...g,reviewerAgents:{...g.reviewerAgents,[w]:C}})),l(!0),m(!1)},[]),y=c.useCallback((w,C)=>{s(g=>({...g,codexReviewers:{...g.codexReviewers,[w]:C}})),l(!0),m(!1)},[]),v=c.useCallback((w,C)=>{s(g=>({...g,specWorkflow:{...g.specWorkflow,[w]:C}})),l(!0),m(!1)},[]),j=c.useCallback((w,C)=>{s(g=>({...g,securityScanner:{...g.securityScanner,[w]:C}})),l(!0),m(!1)},[]),k=c.useCallback(async()=>{await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(w=>{if(!w.ok)throw new Error(`Save failed: ${w.status}`);return w.json()}).then(w=>{s(w),l(!1),m(!0)})},[t]);return{settings:t,isLoading:n,error:a,isDirty:o,saved:u,updateModel:d,updateExtendedContext:h,updateExtendedContextOverride:f,updateSkill:b,updateAgent:p,updateReviewerAgent:x,updateCodexReviewer:y,updateSpecWorkflow:v,updateSecurityScanner:j,save:k}}function Et(t,s,n){return De(t)?t.endsWith("[1m]"):s??n}const Qa=[{key:"main",label:"Main Session",sub:"Quick mode / direct chat — used for any prompt outside a workflow command"},{key:"fix",label:"Bugfix (/fix)",sub:"Investigate, write a failing test, fix at the root cause, audit — no plan file"},{key:"prd",label:"Product Requirements (/prd)",sub:"Brainstorm a vague idea into a concrete PRD with optional deep research"},{key:"setup-rules",label:"Project Rules (/setup-rules)",sub:"Auto-generate modular Claude rules from your codebase"},{key:"create-skill",label:"Create Skill (/create-skill)",sub:"Build a new reusable skill from a topic or capture one from this session"},{key:"benchmark",label:"Benchmark (/benchmark)",sub:"Quantitative before/after evals for rules, skills, and workflows"}],Ja=[{key:"spec-plan",label:"Planning Phase",sub:"Explore codebase, design plan, ask clarifying questions, get approval"},{key:"spec-implement",label:"Implementation Phase",sub:"TDD loop for each task — RED, GREEN, REFACTOR with quality hooks on every edit"},{key:"spec-verify",label:"Verification Phase",sub:"Full suite, type checks, code review agent, structured E2E browser scenarios"}],Ya=[{key:"spec-review",label:"Spec Review",toggleKey:"specReview",description:"Validates plans before implementation. Checks alignment with requirements and flags risky assumptions. Runs in a separate context window."},{key:"changes-review",label:"Changes Review",toggleKey:"changesReview",description:"Reviews code after implementation. Checks compliance, security, test coverage, and goal achievement. Reads all changed files in a separate context window."}],Xa=[{key:"codex-spec-review",label:"Codex Spec Review",toggleKey:"specReview",description:"Adversarial plan review powered by OpenAI Codex. Provides an independent second opinion on plans."},{key:"codex-changes-review",label:"Codex Changes Review",toggleKey:"changesReview",description:"Adversarial code review powered by OpenAI Codex. Provides an independent second opinion on implementations."}],Za=[{key:"branch-isolation",label:"Branch Isolation",toggleKey:"branchIsolation",description:"Ask whether to isolate /spec changes (new branch or worktree). When off, /spec always works on the current branch without prompting."},{key:"ask-questions",label:"Ask Questions",toggleKey:"askQuestionsDuringPlanning",description:"Ask clarifying questions during planning. When off, planning runs fully autonomous."},{key:"plan-approval",label:"Plan Approval",toggleKey:"planApproval",description:"Require approval before implementation starts. When off, implementation begins automatically."}],er=[{key:"credential-scanner",label:"Credential Scanner",toggleKey:"credentialScanner",description:"Block credentials in prompts, file reads, bash commands, and git commits. Uses [allow-secret] / [allow-all] tags to bypass per-call."}];function et({children:t}){return e.jsx("h2",{className:"text-xs font-semibold uppercase tracking-wide text-base-content/50 mb-2",children:t})}function Rt({children:t}){return e.jsx("tr",{children:e.jsx("td",{colSpan:3,className:"font-medium text-xs text-base-content/50 uppercase tracking-wide pt-4 pb-1 px-0 border-b border-base-300",children:t})})}function Pt({model:t}){return e.jsx("span",{className:"text-xs text-base-content/40",children:rs[t]??t})}const xe=41777,je=1024,ve=65535,os=[{id:"models",label:"Models",icon:"lucide:cpu"},{id:"workflow",label:"Spec Workflow",icon:"lucide:scroll"},{id:"console",label:"Console",icon:"lucide:terminal"},{id:"security",label:"Security",icon:"lucide:shield"}];function tr(t){return os.some(s=>s.id===t)}const Fe="__custom__";function Ke({value:t,choices:s,onChange:n,disabled:r=!1,id:a,allow1m:i=!0}){const o=De(t),[l,u]=c.useState(o),[m,d]=c.useState(o?t:""),h=l||o?Fe:t,f=p=>{if(p===Fe){u(!0);return}u(!1),d(""),n(p)},b=()=>{const p=m.trim();Ct(p,i)&&n(p)};return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("select",{id:a,className:"select select-sm select-bordered w-full max-w-xs",value:h,onChange:p=>f(p.target.value),disabled:r,children:[s.map(p=>e.jsx("option",{value:p,children:rs[p]??p},p)),e.jsx("option",{value:Fe,children:"Custom…"})]}),(l||o)&&e.jsx("input",{type:"text",className:`input input-xs input-bordered w-full max-w-xs ${m&&!Ct(m.trim(),i)?"input-error":""}`,placeholder:"claude-opus-4-6",value:m||(o?t:""),onChange:p=>d(p.target.value),onBlur:b,onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),b())},disabled:r,"aria-label":"Custom model ID",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off"})]})}function It({settings:t,updateModel:s,updateExtendedContext:n,updateExtendedContextOverride:r,updateSkill:a}){return e.jsxs("section",{children:[e.jsx(et,{children:"Model Preferences"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsxs("table",{className:"table table-sm",children:[e.jsxs("colgroup",{children:[e.jsx("col",{className:"w-[42%]"}),e.jsx("col",{className:"w-[28%]"}),e.jsx("col",{className:"w-[15%]"}),e.jsx("col",{className:"w-[15%]"})]}),e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-xs",children:"Setting"}),e.jsx("th",{className:"text-xs",children:"Model"}),e.jsx("th",{className:"text-xs",children:"1M"}),e.jsx("th",{className:"text-xs text-base-content/40",children:"Default"})]})}),e.jsxs("tbody",{children:[e.jsx(Rt,{children:"General"}),Qa.map(i=>{var h;const o=i.key==="main",l=o?t.model:t.skills[i.key]??W.skills[i.key],u=o?W.model:W.skills[i.key],m=De(l),d=Et(l,(h=t.extendedContextOverrides)==null?void 0:h[i.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:i.label}),i.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:i.sub})]}),e.jsx("td",{children:e.jsx(Ke,{value:l,choices:Se,onChange:o?s:f=>a(i.key,f),id:o?"main-model":`cmd-${i.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:d,disabled:m,onChange:f=>r(i.key,f.target.checked),id:`ec-${i.key}`,"aria-label":`Enable 1M context for ${i.label}`,title:m?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Pt,{model:u})})]},i.key)}),e.jsx(Rt,{children:"Spec Phases"}),Ja.map(i=>{var m;const o=t.skills[i.key]??W.skills[i.key],l=De(o),u=Et(o,(m=t.extendedContextOverrides)==null?void 0:m[i.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:i.label}),i.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:i.sub})]}),e.jsx("td",{children:e.jsx(Ke,{value:o,choices:Se,onChange:d=>a(i.key,d),id:`cmd-${i.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:u,disabled:l,onChange:d=>r(i.key,d.target.checked),id:`ec-${i.key}`,"aria-label":`Enable 1M context for ${i.label}`,title:l?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Pt,{model:W.skills[i.key]})})]},i.key)})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mt-3",children:[e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm toggle-primary flex-shrink-0",checked:t.extendedContext,onChange:i=>n(i.target.checked),id:"toggle-extended-context","aria-label":"Enable 1M extended context"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:"Extended Context (1M) — default"}),e.jsx("div",{className:"text-xs text-base-content/50",children:"Default 1M state for rows above without a per-row override. Sonnet 1M is not included in Max plan — Max users must set all models to Opus for 1M."})]})]}),e.jsxs("div",{className:"px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight mb-1",children:"Pricing"}),e.jsxs("div",{className:"text-xs text-base-content/50 space-y-0.5",children:[e.jsx("div",{children:"Sonnet 4.6 — $3 / $15 per MTok (input / output)"}),e.jsx("div",{children:"Opus 4.7 — $5 / $25 per MTok (input / output)"})]})]})]})]})})]})}function sr({settings:t,updateAgent:s,updateReviewerAgent:n,updateCodexReviewer:r,updateSpecWorkflow:a}){return e.jsxs("section",{children:[e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Review Agents"}),e.jsx("div",{className:"grid grid-cols-2 gap-2 mb-4",children:Ya.map(i=>{var l;const o=((l=t.reviewerAgents)==null?void 0:l[i.toggleKey])??W.reviewerAgents[i.toggleKey];return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${o?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:o,onChange:u=>n(i.toggleKey,u.target.checked),id:`toggle-${i.key}`,"aria-label":`Enable ${i.label} agent`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:i.label}),e.jsx(Ke,{value:t.agents[i.key]??W.agents[i.key],choices:Se,onChange:u=>s(i.key,u),id:`agent-${i.key}`,disabled:!o,allow1m:!1})]}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:i.description})]})]})},i.key)})}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Codex Reviewers"}),e.jsx("div",{className:`grid grid-cols-2 gap-2 mb-4 ${t.codexAvailable?"":"opacity-50"}`,children:Xa.map(i=>{var l;const o=t.codexAvailable&&(((l=t.codexReviewers)==null?void 0:l[i.toggleKey])??W.codexReviewers[i.toggleKey]);return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${o?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:o,onChange:u=>r(i.toggleKey,u.target.checked),disabled:!t.codexAvailable,id:`toggle-${i.key}`,"aria-label":`Enable ${i.label}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:i.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:i.description})]})]})},i.key)})}),!t.codexAvailable&&e.jsxs("div",{className:"text-xs text-base-content/40 mb-4 pl-1",children:["Codex reviewers require the Codex plugin. Install:"," ",e.jsx("code",{className:"text-base-content/60",children:"claude plugin install @openai/codex"})," ","then run ",e.jsx("code",{className:"text-base-content/60",children:"/codex:setup"})," ","and restart Pilot."]}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Automation"}),e.jsx("div",{className:"grid grid-cols-3 gap-2 mb-4",children:Za.map(i=>{var l;const o=((l=t.specWorkflow)==null?void 0:l[i.toggleKey])??W.specWorkflow[i.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:o,onChange:u=>a(i.toggleKey,u.target.checked),id:`toggle-${i.key}`,"aria-label":i.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:i.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:i.description})]})]},i.key)})})]})}function nr({workerPort:t,consoleDefaultPort:s,isSavingConsole:n,consoleError:r,consoleSaved:a,isConsoleDirty:i,setWorkerPort:o,setConsoleSaved:l,setConsoleError:u,handleSaveConsole:m,handleResetConsolePort:d}){return e.jsxs("section",{className:"flex flex-col",children:[e.jsx(et,{children:"Console"}),e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex-1 flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("label",{htmlFor:"worker-port",className:"text-sm font-semibold whitespace-nowrap",title:"Port the Console worker, MCP server, status line, hooks, and installer all share.",children:"Worker Port"}),e.jsx("input",{id:"worker-port",type:"number",min:je,max:ve,step:1,className:"input input-bordered input-sm w-24",value:t,onChange:h=>{const f=parseInt(h.target.value,10);o(Number.isNaN(f)?0:f),l(!1),u(null)}}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-xs",onClick:d,disabled:t===s,title:`Reset to default (${s})`,children:"Reset"}),e.jsx("button",{className:`btn btn-primary btn-sm ml-auto ${n?"loading":""}`,onClick:m,disabled:n||!i||!Number.isInteger(t)||tve,children:n?"Saving...":"Save Port"})]}),e.jsxs("div",{className:"text-xs text-base-content/55 break-all",children:["→"," ",e.jsxs("code",{className:"px-1 py-0.5 rounded bg-base-100/70 text-base-content/75",children:["http://localhost:",Number.isInteger(t)&&t>0?t:"?"]})]}),e.jsxs("div",{className:"text-xs text-base-content/40",children:["Range ",je,"–",ve," · restart Pilot to apply"]}),r&&e.jsx("div",{className:"text-xs text-error",children:r}),a&&!i&&!r&&e.jsx("div",{className:"text-xs text-success",children:"✓ Saved — restart Pilot for the new port to take effect."})]})]})}function ar({settings:t,updateSecurityScanner:s}){return e.jsxs("section",{className:"flex flex-col",children:[e.jsx(et,{children:"Security"}),e.jsx("div",{className:"grid grid-cols-1 gap-2 flex-1",children:er.map(n=>{var a;const r=((a=t.securityScanner)==null?void 0:a[n.toggleKey])??W.securityScanner[n.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5 flex-1",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:r,onChange:i=>s(n.toggleKey,i.target.checked),id:`toggle-${n.key}`,"aria-label":n.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:n.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:n.description})]})]},n.key)})})]})}function rr(t){return t&&tr(t)?t:"models"}function Tt({tab:t}={}){const s=rr(t),{navigate:n}=oe(),{settings:r,isLoading:a,error:i,isDirty:o,updateModel:l,updateExtendedContext:u,updateExtendedContextOverride:m,updateSkill:d,updateAgent:h,updateReviewerAgent:f,updateCodexReviewer:b,updateSpecWorkflow:p,updateSecurityScanner:x,save:y}=Wa(),[v,j]=c.useState(null),[k,w]=c.useState(!1),[C,g]=c.useState(!1),[P,$]=c.useState(!1),[R,E]=c.useState(null),[T,I]=c.useState(xe),[_,F]=c.useState(xe),[q,L]=c.useState(xe),[O,z]=c.useState(!1),[H,U]=c.useState(null),[Q,V]=c.useState(!1);c.useEffect(()=>{fetch("/api/console-settings").then(D=>D.ok?D.json():null).then(D=>{if(!D)return;const G=typeof D.workerPort=="number"?D.workerPort:xe,Y=typeof D.defaultPort=="number"?D.defaultPort:xe;I(G),F(G),L(Y)}).catch(()=>{})},[]),c.useEffect(()=>{t||(history.replaceState(null,"","#/settings/models"),window.dispatchEvent(new HashChangeEvent("hashchange")))},[t]);const N=T!==_,A=async()=>{if(U(null),V(!1),!Number.isInteger(T)||Tve){U(`Port must be an integer between ${je} and ${ve}`);return}z(!0);try{const D=await fetch("/api/console-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({workerPort:T})});if(!D.ok){const X=await D.json().catch(()=>null);throw new Error((X==null?void 0:X.error)??`Save failed: ${D.status}`)}const G=await D.json(),Y=typeof G.workerPort=="number"?G.workerPort:T;F(Y),I(Y),V(!0),g(!0)}catch(D){U(D instanceof Error?D.message:"Failed to save")}finally{z(!1)}},M=()=>{I(q),V(!1),U(null)},K=c.useRef(!1),J=c.useRef(!1);c.useEffect(()=>{K.current=o||N},[o,N]);const ce=async()=>{w(!0),j(null);try{await y(),g(!0)}catch(D){j(D instanceof Error?D.message:"Failed to save")}finally{w(!1)}};c.useEffect(()=>{const D=G=>{K.current&&G.preventDefault()};return window.addEventListener("beforeunload",D),()=>window.removeEventListener("beforeunload",D)},[]),c.useEffect(()=>{const D=()=>{if(J.current){J.current=!1;return}if(!K.current)return;const G=(window.location.hash.replace(/^#/,"")||"/").split("?")[0];if(!G.startsWith("/settings")){J.current=!0;const Y="#/settings/"+s;history.replaceState(null,"",Y),window.dispatchEvent(new HashChangeEvent("hashchange")),E("#"+G),$(!0)}};return window.addEventListener("hashchange",D),()=>window.removeEventListener("hashchange",D)},[s]);const se=()=>{$(!1),K.current=!1,R&&(window.location.hash=R)},ue=()=>{$(!1),E(null)};if(a)return e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"card bg-base-200 animate-pulse",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-3"}),e.jsx("div",{className:"h-8 bg-base-300 rounded w-48"})]})})]});if(i)return e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"alert alert-error",children:e.jsxs("span",{children:["Failed to load settings: ",i]})})]});const ke=()=>{switch(s){case"models":return e.jsx(It,{settings:r,updateModel:l,updateExtendedContext:u,updateExtendedContextOverride:m,updateSkill:d});case"workflow":return e.jsx(sr,{settings:r,updateAgent:h,updateReviewerAgent:f,updateCodexReviewer:b,updateSpecWorkflow:p});case"console":return e.jsx(nr,{workerPort:T,consoleDefaultPort:q,isSavingConsole:O,consoleError:H,consoleSaved:Q,isConsoleDirty:N,setWorkerPort:I,setConsoleSaved:V,setConsoleError:U,handleSaveConsole:A,handleResetConsolePort:M});case"security":return e.jsx(ar,{settings:r,updateSecurityScanner:x});default:return e.jsx(It,{settings:r,updateModel:l,updateExtendedContext:u,updateExtendedContextOverride:m,updateSkill:d})}};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Model preferences, workflow, and automation"})]}),e.jsx("button",{className:`btn btn-primary btn-sm flex-shrink-0 ${k?"loading":""}`,onClick:ce,disabled:k||!o,children:k?"Saving...":o?"Save Changes":"Saved"})]}),v&&e.jsx("div",{className:"alert alert-error py-2",children:e.jsx("span",{children:v})}),e.jsxs("div",{className:"flex gap-6",children:[e.jsx("nav",{className:"w-48 flex-shrink-0",children:e.jsx("ul",{className:"menu menu-sm bg-base-200 rounded-box sticky top-4 p-2",children:os.map(D=>{const G=s===D.id;return e.jsx("li",{children:e.jsxs("a",{href:`#/settings/${D.id}`,onClick:Y=>{Y.preventDefault(),n(`/settings/${D.id}`)},className:G?"menu-active":"","aria-current":G?"page":void 0,children:[e.jsx(S,{icon:D.icon,size:16}),e.jsx("span",{children:D.label})]})},D.id)})})}),e.jsx("div",{className:"flex-1 min-w-0",children:ke()})]}),e.jsxs(ye,{open:C,onClose:()=>g(!1),title:"Settings Saved",actions:e.jsx("button",{className:"btn btn-primary btn-sm",onClick:()=>g(!1),children:"Got it"}),children:[e.jsx("p",{children:"Your settings have been saved successfully."}),e.jsx("p",{className:"mt-2 font-medium text-warning",children:"Please restart Claude Code for changes to take effect."})]}),e.jsx(ye,{open:P,onClose:ue,title:"Unsaved Changes",actions:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:ue,children:"Stay"}),e.jsx("button",{className:"btn btn-error btn-sm",onClick:se,children:"Leave"})]}),children:e.jsx("p",{children:"You have unsaved settings changes. Are you sure you want to leave this page?"})})]})}const cs=/^[A-Za-z0-9]{8}$/,ir="https://pilot-shell.com",or="https://pilot-shell.com/s";async function cr(t){const s=`/api/annotations?path=${encodeURIComponent(t.planPath)}${t.projectParam}`;let n;try{n=await t.fetcher(s)}catch{return null}if(!n.ok)return null;let r;try{r=await n.json()}catch{return null}return typeof r.shareId!="string"||!cs.test(r.shareId)||typeof r.shareCreatedAt!="number"?null:{shareId:r.shareId,shareCreatedAt:r.shareCreatedAt}}async function lr(t){const s=`/api/annotations/set-share-id?path=${encodeURIComponent(t.planPath)}${t.projectParam}`;try{await t.fetcher(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({shareId:t.shareId,shareCreatedAt:t.shareCreatedAt})})}catch{}}async function dr(t){const s=await t.fetcher(`${ir}/api/share`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:t.data})});if(!s.ok)throw new Error(`mint failed: HTTP ${s.status}`);const n=await s.json();if(typeof n.id!="string"||!cs.test(n.id))throw new Error("mint failed: invalid id in response");return{shareId:n.id,shareCreatedAt:Date.now()}}const Re=new Map;async function ur(t){const s=`${t.planPath}${t.projectParam}`,n=Re.get(s);if(n)return n;const r=(async()=>{const a=await cr({planPath:t.planPath,projectParam:t.projectParam,fetcher:t.fetcher});if(a)return a;const i=await t.buildSharePayload();if(!i)throw new Error("buildSharePayload returned no data");const o=await dr({data:i,fetcher:t.fetcher});return await lr({planPath:t.planPath,projectParam:t.projectParam,shareId:o.shareId,shareCreatedAt:o.shareCreatedAt,fetcher:t.fetcher}),o})();return Re.set(s,r),r.catch(()=>{Re.get(s)===r&&Re.delete(s)}),await r}function hr(t){return`${or}/${t}`}const At={shareUrl:null,isLoading:!1,error:null};function mr({isOpen:t,onClose:s,specContent:n,annotations:r,planPath:a,projectParam:i="",contentType:o="specification",onCopied:l,onPersisted:u}){const{success:m,error:d}=ns(),[h,f]=c.useState(At),b=c.useRef(null),p=c.useRef(null);c.useEffect(()=>{if(!t){f(At);return}let v=!1;return f({shareUrl:null,isLoading:!0,error:null}),(async()=>{try{const j=await ur({planPath:a,projectParam:i,fetcher:((...k)=>fetch(...k)),buildSharePayload:async()=>{if(typeof CompressionStream>"u")throw new Error("Browser missing CompressionStream — upgrade Chrome/Firefox/Safari.");const k=await fr(),w={specContent:n,annotations:r.map(g=>({id:g.id,blockId:g.blockId,originalText:g.originalText,text:g.text,createdAt:g.createdAt})),author:k,planPath:a,...o!=="specification"?{contentType:o}:{},createdAt:Date.now()},{compress:C}=await re(async()=>{const{compress:g}=await import("./compress.js");return{compress:g}},[],import.meta.url);return await C(JSON.stringify(w))}});if(v)return;f({shareUrl:hr(j.shareId),isLoading:!1,error:null}),u==null||u(j.shareId,j.shareCreatedAt)}catch(j){if(v)return;f({shareUrl:null,isLoading:!1,error:j.message||"Failed to prepare share link."})}})(),()=>{v=!0}},[t]),c.useEffect(()=>{var j,k;const v=b.current;v&&(t?(j=v.showModal)==null||j.call(v):(k=v.close)==null||k.call(v))},[t]);const x=async()=>{if(h.shareUrl)try{await navigator.clipboard.writeText(h.shareUrl),m("Share link copied to clipboard"),l?l():s()}catch{d("Failed to copy to clipboard")}},y=v=>{v.key==="Escape"&&s()};return e.jsx("dialog",{ref:b,className:"modal",onKeyDown:y,onClick:v=>{v.target===b.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(S,{icon:"lucide:share-2",size:18,className:"text-primary"}),e.jsxs("h3",{className:"text-lg font-semibold",children:["Share ",o==="requirement"?"Requirement":"Specification"," for Feedback"]}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(S,{icon:"lucide:x",size:16})})]}),h.isLoading&&e.jsxs("div",{className:"flex items-center gap-3 py-6 justify-center",children:[e.jsx("span",{className:"loading loading-spinner loading-sm text-primary"}),e.jsx("span",{className:"text-sm text-base-content/60",children:"Preparing share link…"})]}),!h.isLoading&&h.error&&e.jsxs("div",{className:"alert alert-error mb-4",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{className:"text-sm",children:h.error})]}),!h.isLoading&&h.shareUrl&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Persistent share link"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:p,type:"text",readOnly:!0,value:h.shareUrl,className:"input input-bordered input-sm flex-1 font-mono text-xs",onClick:()=>{var v;return(v=p.current)==null?void 0:v.select()}}),e.jsxs("button",{className:"btn btn-primary btn-sm gap-1",onClick:()=>void x(),children:[e.jsx(S,{icon:"lucide:copy",size:14}),"Copy"]})]}),e.jsx("p",{className:"text-[10px] text-base-content/50 mt-2",children:"This link stays the same for this spec — every teammate sends their feedback back to the same address, and your Console picks it up automatically."})]}),e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(S,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Compressed markdown is stored on pilot-shell.com for up to a week. Anyone with the link can view — no Pilot Shell install required."})]})]})]})})}async function fr(){try{const t=await fetch("/api/license");if(t.ok){const s=await t.json();if(s.email)return s.email}}catch{}return"Anonymous"}const xr=10080*60*1e3,pr="https://pilot-shell.com/s";function br(t,s){const n=s-t,r=xr-n;return r<=0?0:Math.floor(r/864e5)}function gr(t){const s=t.filter(i=>!!i.author),n=new Map;for(const i of s)n.set(i.author,(n.get(i.author)??0)+1);const r=Array.from(n.keys()),a=r.map(i=>({author:i,count:n.get(i)})).sort((i,o)=>o.count-i.count);return{reviewers:r,reviewerCount:r.length,annotationCount:s.length,perAuthor:a}}function jr({planPath:t,specContent:s,annotations:n,contentType:r="specification",projectParam:a="",layout:i="inline"}){const[o,l]=c.useState({loaded:!1,planAnnotations:[]}),[u,m]=c.useState(!1),[d,h]=c.useState(!1),{success:f,error:b,info:p}=ns(),x=c.useCallback(async()=>{try{const P=await fetch(`/api/annotations?path=${encodeURIComponent(t)}${a}`);if(!P.ok){l(R=>({...R,loaded:!0}));return}const $=await P.json();l({shareId:$.shareId,shareCreatedAt:$.shareCreatedAt,planAnnotations:$.planAnnotations??[],loaded:!0})}catch{l(P=>({...P,loaded:!0}))}},[t,a]);c.useEffect(()=>{let P=!1;return x().then(()=>{}),()=>{P=!0}},[x]),ae("feedback_appended",P=>{P.plan_path===t&&x()}),ae("share_expired",P=>{P.plan_path===t&&(l({loaded:!0,planAnnotations:[]}),p("Share link expired — generate a new one to keep collecting feedback."))});const y=c.useCallback((P,$)=>{l(R=>({...R,shareId:P,shareCreatedAt:$,loaded:!0}))},[]);if(!o.loaded)return null;if(!o.shareId||!o.shareCreatedAt)return e.jsxs("div",{className:"flex items-center justify-end w-full",children:[e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>m(!0),title:"Share spec with teammates for feedback",children:[e.jsx(S,{icon:"lucide:send",size:12}),e.jsx("span",{children:"Share with Teammates for Feedback"})]}),e.jsx(mr,{isOpen:u,onClose:()=>m(!1),specContent:s,annotations:n,planPath:t,projectParam:a,contentType:r,onPersisted:y})]});const v=`${pr}/${o.shareId}`,j=br(o.shareCreatedAt,Date.now()),k=gr(o.planAnnotations),w=P=>{x(),P>0?f(`Fetched ${P} new annotation${P===1?"":"s"}`):p("No new feedback yet — teammates haven't submitted since the last poll.")},C=e.jsxs("span",{className:"badge badge-ghost badge-xs text-[9px] gap-0.5 flex-shrink-0 whitespace-nowrap",title:"Share links expire 7 days after creation",children:[e.jsx(S,{icon:"lucide:clock",size:9}),j===0?"expires today":`${j}d left`]}),g=k.reviewerCount>0?e.jsxs("div",{className:"relative flex items-center gap-1 flex-shrink-0",onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),children:[e.jsxs("span",{className:"badge badge-info badge-xs text-[9px] gap-0.5 whitespace-nowrap",title:"Reviewers who submitted feedback",children:[e.jsx(S,{icon:"lucide:users",size:9}),k.reviewerCount]}),e.jsxs("span",{className:"badge badge-primary badge-xs text-[9px] gap-0.5 whitespace-nowrap",title:"Total teammate annotations",children:[e.jsx(S,{icon:"lucide:message-square",size:9}),k.annotationCount]}),d&&e.jsxs("div",{className:"absolute top-full right-0 mt-1 z-50 bg-base-100 border border-base-300 rounded-md shadow-lg p-2 min-w-[180px]",children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/70 mb-1",children:"Reviewers"}),e.jsx("ul",{className:"space-y-0.5",children:k.perAuthor.map(({author:P,count:$})=>e.jsxs("li",{className:"flex items-center justify-between gap-3 text-[10px]",children:[e.jsx("span",{className:"truncate flex-1",children:P}),e.jsx("span",{className:"badge badge-ghost badge-xs text-[9px]",children:$})]},P))})]})]}):null;return i==="stacked"?e.jsxs("div",{className:"flex flex-col gap-1.5 w-full min-w-0",children:[e.jsx(Dt,{url:v,onCopyError:b,onCopySuccess:f}),e.jsx("div",{className:"flex items-center gap-1.5 flex-wrap",children:e.jsx(_t,{planPath:t,projectParam:a,onResult:w,onError:b,fullWidth:!0})}),e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[C,g]})]}):e.jsxs("div",{className:"flex items-center gap-1.5 flex-1 min-w-0",children:[e.jsx(Dt,{url:v,onCopyError:b,onCopySuccess:f}),e.jsx(_t,{planPath:t,projectParam:a,onResult:w,onError:b}),C,g]})}function Dt({url:t,onCopySuccess:s,onCopyError:n}){const r=c.useRef(null),a=async()=>{try{await navigator.clipboard.writeText(t),s("Share link copied to clipboard")}catch{n("Failed to copy to clipboard")}},i=o=>{o.preventDefault(),o.clipboardData.setData("text/plain",t),s("Share link copied to clipboard")};return e.jsxs("div",{className:"flex items-center gap-1 flex-1 min-w-0",children:[e.jsx("input",{ref:r,type:"text",readOnly:!0,value:t,className:"input input-bordered input-xs font-mono text-[10px] flex-1 min-w-0 cursor-pointer",onFocus:o=>o.currentTarget.select(),onClick:o=>o.currentTarget.select(),onCopy:i,"aria-label":"Persistent share link — click to select all",title:"Click to select, then Cmd/Ctrl+C to copy"}),e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 flex-shrink-0",onClick:()=>void a(),title:"Copy share link",children:[e.jsx(S,{icon:"lucide:copy",size:12}),e.jsx("span",{children:"Copy"})]})]})}function _t({planPath:t,projectParam:s,onResult:n,onError:r,fullWidth:a=!1}){const[i,o]=c.useState(!1),l=async()=>{if(!i){o(!0);try{const u=await fetch(`/api/annotations/poll-feedback?path=${encodeURIComponent(t)}${s}`,{method:"POST"});if(!u.ok){const d=await u.json().catch(()=>({}));r(d.error??"Failed to fetch feedback");return}const m=await u.json();n(m.entriesReceived??0)}catch(u){r(u.message||"Network error")}finally{o(!1)}}};return e.jsxs("button",{className:`btn btn-outline btn-xs gap-1 ${a?"w-full":"flex-shrink-0"}`,onClick:()=>void l(),disabled:i,title:"Fetch new teammate feedback now (instead of waiting for the next poll)",children:[e.jsx(S,{icon:i?"lucide:loader":"lucide:refresh-cw",size:12,className:i?"animate-spin":""}),e.jsx("span",{children:i?"Fetching…":"Fetch Feedback"})]})}function vr({content:t}){return e.jsx("div",{className:"spec-markdown",children:e.jsx(ms,{remarkPlugins:[fs],components:{h3:({children:s})=>{const r=String(s??"").match(/Task\s+(\d+)/),a=r?`task-${r[1]}`:void 0;return e.jsx("h3",{id:a,className:"text-lg font-semibold mt-6 mb-3 pb-2 border-b border-base-300/50 first:mt-0 scroll-mt-4",children:s})},h4:({children:s})=>e.jsx("h4",{className:"text-base font-medium mt-4 mb-2 text-base-content/90",children:s}),p:({children:s})=>e.jsx("p",{className:"text-sm text-base-content/80 mb-3 leading-relaxed",children:s}),ul:({children:s})=>e.jsx("ul",{className:"text-sm space-y-1.5 mb-4 ml-1",children:s}),ol:({children:s})=>e.jsx("ol",{className:"text-sm space-y-1.5 mb-4 ml-1 list-decimal list-inside",children:s}),li:({children:s})=>e.jsxs("li",{className:"text-base-content/80 flex items-start gap-2",children:[e.jsx("span",{className:"text-primary mt-0.5 text-xs select-none",children:"▸"}),e.jsx("span",{className:"flex-1",children:s})]}),code:({className:s,children:n})=>s?e.jsx("code",{className:"block bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:n}):e.jsx("code",{className:"bg-base-300 text-primary px-1.5 py-0.5 rounded text-xs font-mono",children:n}),pre:({children:s})=>e.jsx("pre",{className:"bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:s}),strong:({children:s})=>e.jsx("strong",{className:"font-semibold text-base-content",children:s}),table:({children:s})=>e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsx("table",{className:"table table-sm w-full",children:s})}),thead:({children:s})=>e.jsx("thead",{className:"bg-base-200",children:s}),th:({children:s})=>e.jsx("th",{className:"text-left text-xs font-medium text-base-content/70 p-2",children:s}),td:({children:s})=>e.jsx("td",{className:"text-sm p-2 border-t border-base-300/50",children:s}),blockquote:({children:s})=>e.jsx("blockquote",{className:"border-l-4 border-primary/50 pl-4 py-1 my-3 text-sm text-base-content/70 italic",children:s}),hr:()=>e.jsx("hr",{className:"my-6 border-base-300"})},children:t})})}const yr={Summary:"lucide:text",Approach:"lucide:compass","Fix Approach":"lucide:wrench","Feature Inventory":"lucide:clipboard-list",Scope:"lucide:target","Out of Scope":"lucide:square-x","Autonomous Decisions":"lucide:brain","Context for Implementer":"lucide:book-open","Runtime Environment":"lucide:terminal",Assumptions:"lucide:lightbulb","Risks and Mitigations":"lucide:alert-triangle","Goal Verification":"lucide:check-square","E2E Test Scenarios":"lucide:monitor-check","E2E Results":"lucide:clipboard-check","Verification Scenario":"lucide:mouse-pointer-click","Open Questions":"lucide:help-circle","Deferred Ideas":"lucide:bookmark","Implementation Details":"lucide:list-tree","Problem Statement":"lucide:crosshair","Core User Flows":"lucide:route","Technical Context":"lucide:cpu","Key Decisions":"lucide:scale"};function wr({heading:t,content:s,defaultOpen:n=!1}){const[r,a]=c.useState(n),i=yr[t]||"lucide:file-text";return e.jsx(Z,{children:e.jsxs(ee,{className:"p-0",children:[e.jsxs("button",{className:"w-full flex items-center gap-2.5 p-4 text-left cursor-pointer hover:bg-base-200/50 transition-colors",onClick:()=>a(!r),children:[e.jsx(S,{icon:i,size:16,className:"text-primary flex-shrink-0"}),e.jsx("span",{className:"text-sm font-semibold flex-1",children:t}),e.jsx(S,{icon:"lucide:chevron-down",size:14,className:`text-base-content/40 transition-transform duration-200 ${r?"rotate-180":""}`})]}),r&&e.jsx("div",{className:"px-4 pb-4 pt-0 border-t border-base-300/50",children:e.jsx("div",{className:"pt-3",children:e.jsx(vr,{content:s})})})]})})}const Nr=c.lazy(()=>re(()=>import("./PlanAnnotator.js").then(t=>t.P),__vite__mapDeps([0,1,2,3]),import.meta.url).then(t=>({default:t.PlanAnnotator}))),Sr=["Problem Statement","Core User Flows","Scope","Technical Context","Key Decisions","Research Findings"],kr={Feature:"info",Infrastructure:"warning",UX:"info",API:"info",Performance:"success",Security:"warning",Documentation:"info",Integration:"info"};function Cr(t){const s=t.match(/^#\s+(.+)$/m),n=s?s[1]:"Untitled PRD",r={},a=t.match(/^Author:\s*(.+)$/m);a&&(r.author=a[1].trim());const i=t.match(/^Category:\s*(.+)$/m);i&&(r.category=i[1].trim());const o=t.match(/^Status:\s*(.+)$/m);o&&(r.status=o[1].trim());const l=t.match(/^Research:\s*(.+)$/m);l&&(r.research=l[1].trim());const u=t.match(/^Created:\s*(.+)$/m);u&&(r.createdAt=u[1].trim());const m=[],d=/^## (.+)$/gm,h=[];let f;for(;(f=d.exec(t))!==null;)h.push({heading:f[1],index:f.index,contentStart:f.index+f[0].length});for(let b=0;b{if(!s.path)return;const I=decodeURIComponent(s.path);i(_=>_===I?_:I)},[s.path]);const[o,l]=c.useState(null),[u,m]=c.useState(!0),[d,h]=c.useState(!1),[f,b]=c.useState(null),[p,x]=c.useState("view"),[y,v]=c.useState(0);ae("feedback_appended",I=>{I.plan_path&&I.plan_path===(o==null?void 0:o.filePath)&&v(_=>_+1)});const[j,k]=c.useState(!1),w=t?`?project=${encodeURIComponent(t)}`:"",C=c.useRef(t);C.current!==t&&(C.current=t,i(null),l(null),b(null),m(!0));const g=c.useCallback(async()=>{var I;try{const F=await(await fetch(`/api/prd${w}`)).json();r(F.prds||[]),((I=F.prds)==null?void 0:I.length)>0&&!a&&i(F.prds[0].filePath)}catch(_){b("Failed to load PRDs"),console.error("Failed to load PRDs:",_)}finally{m(!1)}},[a,w]),P=c.useCallback(async(I,_=!1)=>{_||h(!0),b(null);try{const F=await fetch(`/api/prd/content?path=${encodeURIComponent(I)}${t?`&project=${encodeURIComponent(t)}`:""}`);if(!F.ok)throw new Error("Failed to load PRD content");l(await F.json())}catch(F){b("Failed to load PRD content"),console.error("Failed to load PRD content:",F)}finally{_||h(!1)}},[t]),$=c.useCallback(async I=>{if(confirm(`Delete "${I.split("/").pop()}"? This cannot be undone.`)){k(!0);try{if(!(await fetch(`/api/prd?path=${encodeURIComponent(I)}${t?`&project=${encodeURIComponent(t)}`:""}`,{method:"DELETE"})).ok)throw new Error("Failed to delete PRD");i(null),l(null),await g()}catch(_){b("Failed to delete PRD"),console.error("Failed to delete PRD:",_)}finally{k(!1)}}},[g,t]);if(c.useEffect(()=>{g();const I=setInterval(()=>{g(),a&&P(a,!0)},Zt.SPEC_REFRESH_INTERVAL_MS);return()=>clearInterval(I)},[g,P,a]),c.useEffect(()=>{a&&P(a)},[a,P]),u)return e.jsx(le,{});if(n.length===0)return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Ae,{})," "]}),e.jsx(Z,{children:e.jsx(ee,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:lightbulb",size:48,className:"text-base-content/40 mb-4"}),e.jsx("h3",{className:"text-lg font-medium mb-2",children:"No Requirements"}),e.jsxs("p",{className:"text-base-content/60 max-w-md",children:["Use"," ",e.jsx("code",{className:"text-primary bg-base-300 px-1 rounded",children:"/prd"})," ","in Pilot Shell to brainstorm vague ideas into Product Requirements Documents through back-and-forth conversation, with optional research."]})]})})})]});const R=n.find(I=>I.filePath===a),E=n.filter(I=>I.filePath!==a),T=o?Cr(o.content):null;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Ae,{}),a&&o&&e.jsxs("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="view"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>x("view"),title:"View PRD",children:[e.jsx(S,{icon:"lucide:eye",size:13}),"View"]}),e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="annotate"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>x("annotate"),title:"Review PRD",children:[e.jsx(S,{icon:"lucide:pencil",size:13}),"Review"]})]}),R&&e.jsx("div",{role:"tablist",className:"flex items-center gap-1.5 min-w-0 overflow-hidden",children:e.jsxs("button",{role:"tab","aria-selected":!0,className:"px-2.5 py-1.5 rounded-lg text-xs font-medium border transition-colors cursor-pointer flex items-center gap-1.5 truncate bg-primary/10 border-primary/30 text-primary",children:[e.jsx(S,{icon:"lucide:lightbulb",size:12,className:"text-warning flex-shrink-0"}),e.jsx("span",{className:"truncate max-w-40",children:R.name}),e.jsx("span",{className:"text-[10px] opacity-60 flex-shrink-0",children:Er(R.modifiedAt)})]})}),e.jsx("span",{className:"flex-1"}),E.length>0&&e.jsxs("select",{className:"select select-bordered select-xs text-xs max-w-48",value:"",onChange:I=>i(I.target.value),children:[e.jsxs("option",{value:"",disabled:!0,children:["Previous (",E.length,")"]}),E.map(I=>e.jsx("option",{value:I.filePath,children:I.name},I.filePath))]}),a&&e.jsx(ne,{text:"Delete PRD",position:"bottom",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:()=>$(a),disabled:j,children:e.jsx(S,{icon:"lucide:trash-2",size:16,className:"text-error"})})})]}),d?e.jsx(le,{}):f?e.jsx(Z,{children:e.jsx(ee,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:alert-circle",size:48,className:"text-error mb-4"}),e.jsx("p",{className:"text-error",children:f})]})})}):T&&o?e.jsxs(e.Fragment,{children:[p==="annotate"&&e.jsx(c.Suspense,{fallback:e.jsx(le,{}),children:e.jsxs("div",{className:"rounded-xl border border-base-300 bg-base-100",style:{height:"calc(100vh - 180px)",minHeight:500,display:"flex",flexDirection:"column"},children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-base-300 bg-base-200/40 flex-shrink-0 text-xs text-base-content/60",children:[e.jsx(S,{icon:"lucide:pencil-line",size:13,className:"text-primary"}),e.jsx("span",{children:"Hover over a block and click the + button to add annotations. Review them in the sidebar."})]}),e.jsx("div",{style:{flex:1,minHeight:0,display:"flex"},children:e.jsx(Nr,{planContent:o.content,planPath:o.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",contentType:"requirement",reloadKey:y})})]})}),p!=="annotate"&&e.jsxs(e.Fragment,{children:[e.jsx(Z,{children:e.jsxs(ee,{className:"p-6",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-warning/20 rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(S,{icon:"lucide:lightbulb",size:20,className:"text-warning"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h2",{className:"text-xl font-bold",children:T.title}),e.jsxs("p",{className:"text-xs text-base-content/50 mt-1",children:[T.sections.length," sections"]})]})]}),e.jsxs("div",{className:"flex items-center gap-4 mt-4 pt-4 border-t border-base-300/50 text-xs text-base-content/50 flex-wrap",children:[T.metadata.category&&e.jsx(B,{variant:kr[T.metadata.category]??"info",size:"xs",children:T.metadata.category}),T.metadata.status&&e.jsx(B,{variant:T.metadata.status==="Final"?"success":"warning",size:"xs",children:T.metadata.status}),T.metadata.author&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:user",size:12}),e.jsx("span",{children:T.metadata.author})]}),T.metadata.createdAt&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:12}),e.jsx("span",{children:T.metadata.createdAt})]}),T.metadata.research&&T.metadata.research!=="None"&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:search",size:12}),e.jsxs("span",{children:[T.metadata.research," research"]})]}),o&&e.jsx("div",{className:"flex items-center gap-1 ml-auto flex-1 min-w-0 max-w-[60ch] justify-end",children:e.jsx(jr,{planPath:o.filePath,specContent:o.content,annotations:[],contentType:"requirement",projectParam:t?`&project=${encodeURIComponent(t)}`:""})})]})]})}),T.sections.length>0&&e.jsx("div",{className:"space-y-2",children:T.sections.map(I=>e.jsx(wr,{heading:I.heading,content:I.content,defaultOpen:I.heading==="Problem Statement"},I.heading))})]})]}):null]})}const pe=[{key:"DEBUG",label:"Debug",icon:"🔍",color:"text-base-content/50"},{key:"INFO",label:"Info",icon:"ℹ️",color:"text-info"},{key:"WARN",label:"Warn",icon:"⚠️",color:"text-warning"},{key:"ERROR",label:"Error",icon:"❌",color:"text-error"}],be=[{key:"HOOK",label:"Hook",icon:"🪝",color:"text-purple-500"},{key:"WORKER",label:"Worker",icon:"⚙️",color:"text-info"},{key:"SDK",label:"SDK",icon:"📦",color:"text-success"},{key:"PARSER",label:"Parser",icon:"📄",color:"text-sky-500"},{key:"DB",label:"DB",icon:"🗄️",color:"text-orange-500"},{key:"SYSTEM",label:"System",icon:"💻",color:"text-base-content/50"},{key:"HTTP",label:"HTTP",icon:"🌐",color:"text-cyan-500"},{key:"SESSION",label:"Session",icon:"📋",color:"text-pink-500"},{key:"CHROMA",label:"Chroma",icon:"🔮",color:"text-violet-500"}];function Pr(t){const s=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,n=t.match(s);if(!n)return{raw:t};const[,r,a,i,o,l]=n;let u;return l.startsWith("→")?u="dataIn":l.startsWith("←")?u="dataOut":l.startsWith("✓")?u="success":l.startsWith("✗")?u="failure":l.startsWith("⏱")?u="timing":l.includes("[HAPPY-PATH]")&&(u="happyPath"),{raw:t,timestamp:r,level:a==null?void 0:a.trim(),component:i==null?void 0:i.trim(),correlationId:o||void 0,message:l,isSpecial:u}}function Ir({isOpen:t,onClose:s}){const[n,r]=c.useState(""),[a,i]=c.useState(!1),[o,l]=c.useState(null),[u,m]=c.useState(!1),[d,h]=c.useState(350),[f,b]=c.useState(!1),p=c.useRef(0),x=c.useRef(0),y=c.useRef(null),v=c.useRef(!0),[j,k]=c.useState(new Set(["DEBUG","INFO","WARN","ERROR"])),[w,C]=c.useState(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[g,P]=c.useState(!1),$=c.useMemo(()=>n?n.split(` -`).map(Pr):[],[n]),R=c.useMemo(()=>$.filter(N=>g?N.raw.includes("[ALIGNMENT]"):!N.level||!N.component?!0:j.has(N.level)&&w.has(N.component)),[$,j,w,g]),E=c.useCallback(()=>{if(!y.current)return!0;const{scrollTop:N,scrollHeight:A,clientHeight:M}=y.current;return A-N-M<50},[]),T=c.useCallback(()=>{y.current&&v.current&&(y.current.scrollTop=y.current.scrollHeight)},[]),I=c.useCallback(async()=>{v.current=E(),i(!0),l(null);try{const N=await fetch("/api/logs");if(!N.ok)throw new Error(`Failed to fetch logs: ${N.statusText}`);const A=await N.json();r(A.logs||"")}catch(N){l(N instanceof Error?N.message:"Unknown error")}finally{i(!1)}},[E]);c.useEffect(()=>{T()},[n,T]);const _=c.useCallback(async()=>{if(confirm("Are you sure you want to clear all logs?")){i(!0),l(null);try{const N=await fetch("/api/logs/clear",{method:"POST"});if(!N.ok)throw new Error(`Failed to clear logs: ${N.statusText}`);r("")}catch(N){l(N instanceof Error?N.message:"Unknown error")}finally{i(!1)}}},[]),F=c.useCallback(N=>{N.preventDefault(),b(!0),p.current=N.clientY,x.current=d},[d]);c.useEffect(()=>{if(!f)return;const N=M=>{const K=p.current-M.clientY,J=Math.min(Math.max(150,x.current+K),window.innerHeight-100);h(J)},A=()=>{b(!1)};return document.addEventListener("mousemove",N),document.addEventListener("mouseup",A),()=>{document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",A)}},[f]),c.useEffect(()=>{t&&(v.current=!0,I())},[t,I]),c.useEffect(()=>{if(!t||!u)return;const N=setInterval(I,2e3);return()=>clearInterval(N)},[t,u,I]);const q=c.useCallback(N=>{k(A=>{const M=new Set(A);return M.has(N)?M.delete(N):M.add(N),M})},[]),L=c.useCallback(N=>{C(A=>{const M=new Set(A);return M.has(N)?M.delete(N):M.add(N),M})},[]),O=c.useCallback(N=>{k(N?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),z=c.useCallback(N=>{C(N?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!t)return null;const H=N=>{const A=pe.find(M=>M.key===N);return(A==null?void 0:A.color)||"text-base-content"},U=N=>{const A=be.find(M=>M.key===N);return(A==null?void 0:A.color)||"text-base-content"},Q=N=>N.level==="ERROR"?"bg-error/10":N.level==="WARN"?"bg-warning/5":"",V=(N,A)=>{var J,ce;if(!N.timestamp)return e.jsx("div",{className:"whitespace-pre-wrap break-all text-base-content/60",children:N.raw},A);const M=pe.find(se=>se.key===N.level),K=be.find(se=>se.key===N.component);return e.jsxs("div",{className:`whitespace-pre-wrap break-all py-0.5 px-1 rounded ${Q(N)}`,children:[e.jsxs("span",{className:"text-base-content/40",children:["[",N.timestamp,"]"]})," ",e.jsxs("span",{className:`font-medium ${H(N.level)}`,title:N.level,children:["[",(M==null?void 0:M.icon)||""," ",(J=N.level)==null?void 0:J.padEnd(5),"]"]})," ",e.jsxs("span",{className:`font-medium ${U(N.component)}`,title:N.component,children:["[",(K==null?void 0:K.icon)||""," ",(ce=N.component)==null?void 0:ce.padEnd(7),"]"]})," ",N.correlationId&&e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-base-content/50",children:["[",N.correlationId,"]"]})," "]}),e.jsx("span",{className:N.isSpecial==="success"?"text-success":N.isSpecial==="failure"?"text-error":"text-base-content",children:N.message})]},A)};return e.jsxs("div",{className:"fixed bottom-0 left-0 right-0 bg-base-100 border-t border-base-300 flex flex-col z-50 shadow-2xl",style:{height:`${d}px`},children:[e.jsx("div",{className:"h-1.5 cursor-ns-resize flex items-center justify-center bg-base-200 hover:bg-base-300 transition-colors",onMouseDown:F,children:e.jsx("div",{className:"w-12 h-1 bg-base-300 rounded-full"})}),e.jsxs("div",{className:"flex justify-between items-center px-3 h-9 bg-base-200 border-b border-base-300",children:[e.jsx("div",{className:"flex gap-1",children:e.jsx("div",{className:"px-3 py-1 text-xs font-medium bg-base-100 text-base-content rounded",children:"Console"})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-base-content/60 cursor-pointer",children:[e.jsx("input",{type:"checkbox",className:"checkbox checkbox-xs",checked:u,onChange:N=>m(N.target.checked)}),"Auto-refresh"]}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:I,disabled:a,title:"Refresh logs",children:e.jsx(S,{icon:"lucide:refresh-cw",size:14,className:a?"animate-spin":""})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:()=>{v.current=!0,T()},title:"Scroll to bottom",children:e.jsx(S,{icon:"lucide:arrow-down",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square hover:text-error",onClick:_,disabled:a,title:"Clear logs",children:e.jsx(S,{icon:"lucide:trash-2",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:s,title:"Close console",children:e.jsx(S,{icon:"lucide:x",size:14})})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-3 px-3 py-2 bg-base-200/50 border-b border-base-300 text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Quick:"}),e.jsx("button",{className:`badge badge-sm cursor-pointer ${g?"badge-warning":"badge-ghost opacity-50"}`,onClick:()=>P(!g),title:"Show only session alignment logs",children:"🔗 Alignment"})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Levels:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[pe.map(N=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${j.has(N.key)?"badge-primary":"badge-ghost opacity-40"}`,onClick:()=>q(N.key),title:N.label,children:[N.icon," ",N.label]},N.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>O(j.size===0),title:j.size===pe.length?"Select none":"Select all",children:j.size===pe.length?"○":"●"})]})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Components:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[be.map(N=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${w.has(N.key)?"badge-secondary":"badge-ghost opacity-40"}`,onClick:()=>L(N.key),title:N.label,children:[N.icon," ",N.label]},N.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>z(w.size===0),title:w.size===be.length?"Select none":"Select all",children:w.size===be.length?"○":"●"})]})]})]}),o&&e.jsxs("div",{className:"px-3 py-2 bg-error/10 text-error text-xs",children:["⚠ ",o]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-3 py-2",ref:y,children:e.jsx("div",{className:"font-mono text-xs leading-relaxed",children:R.length===0?e.jsx("div",{className:"text-base-content/40 italic",children:"No logs available"}):R.map((N,A)=>V(N,A))})})]})}const We={COMMAND_PALETTE:{key:"k",modifiers:["ctrl","meta"],description:"Open command palette",action:"openCommandPalette"},SEARCH:{key:"/",modifiers:["ctrl","meta"],description:"Focus search",action:"focusSearch"},ESCAPE:{key:"Escape",description:"Close modal/palette",action:"escape"},TOGGLE_THEME:{key:"t",modifiers:["ctrl","meta"],description:"Toggle theme",action:"toggleTheme"},TOGGLE_SIDEBAR:{key:"b",modifiers:["ctrl","meta"],description:"Toggle sidebar",action:"toggleSidebar"}},Tr=[{sequence:["g","d"],description:"Go to Dashboard",action:"navigate:/"},{sequence:["g","c"],description:"Go to Changes",action:"navigate:/changes"},{sequence:["g","m"],description:"Go to Memories",action:"navigate:/memories"},{sequence:["g","v"],description:"Go to Extensions",action:"navigate:/extensions"},{sequence:["g","h"],description:"Go to Help",action:"navigate:/help"}];function Lt(t){var r,a,i,o;const s=typeof navigator<"u"&&navigator.platform.includes("Mac"),n=[];return((r=t.modifiers)!=null&&r.includes("ctrl")||(a=t.modifiers)!=null&&a.includes("meta"))&&n.push(s?"⌘":"Ctrl"),(i=t.modifiers)!=null&&i.includes("shift")&&n.push(s?"⇧":"Shift"),(o=t.modifiers)!=null&&o.includes("alt")&&n.push(s?"⌥":"Alt"),n.push(t.key.toUpperCase()),n.join(s?"":"+")}function Ar({open:t,onClose:s,onNavigate:n,onToggleTheme:r,onToggleSidebar:a}){const[i,o]=c.useState(""),[l,u]=c.useState(0),m=c.useRef(null),d=c.useRef(null),h=c.useMemo(()=>[{id:"nav-dashboard",label:"Go to Dashboard",shortcut:"G D",category:"navigation",icon:"lucide:layout-dashboard",action:()=>n("/")},{id:"nav-changes",label:"Go to Changes",shortcut:"G C",category:"navigation",icon:"lucide:git-compare",action:()=>n("/changes")},{id:"nav-memories",label:"Go to Memories",shortcut:"G M",category:"navigation",icon:"lucide:brain",action:()=>n("/memories")},{id:"nav-usage",label:"Go to Usage",shortcut:"G U",category:"navigation",icon:"lucide:bar-chart-3",action:()=>n("/usage")},{id:"nav-extensions",label:"Go to Extensions",shortcut:"G V",category:"navigation",icon:"lucide:puzzle",action:()=>n("/extensions")},{id:"nav-help",label:"Go to Help",shortcut:"G H",category:"navigation",icon:"lucide:book-open",action:()=>n("/help")},{id:"action-theme",label:"Toggle Theme",shortcut:Lt(We.TOGGLE_THEME),category:"action",icon:"lucide:sun-moon",action:r},{id:"action-sidebar",label:"Toggle Sidebar",shortcut:Lt(We.TOGGLE_SIDEBAR),category:"action",icon:"lucide:panel-left",action:a}],[n,r,a]),f=c.useMemo(()=>{if(!i)return h;const j=i.toLowerCase();return h.filter(k=>k.label.toLowerCase().includes(j)||k.category.toLowerCase().includes(j))},[h,i]);c.useEffect(()=>{u(0)},[i]),c.useEffect(()=>{t&&(o(""),u(0),setTimeout(()=>{var j;return(j=m.current)==null?void 0:j.focus()},50))},[t]),c.useEffect(()=>{if(!d.current)return;const j=d.current.querySelector('[data-selected="true"]');j==null||j.scrollIntoView({block:"nearest"})},[l]);const b=j=>{j.action(),s()},p=j=>{switch(j.key){case"ArrowDown":j.preventDefault(),u(k=>(k+1)%f.length);break;case"ArrowUp":j.preventDefault(),u(k=>(k-1+f.length)%f.length);break;case"Enter":j.preventDefault(),f[l]&&b(f[l]);break;case"Escape":j.preventDefault(),s();break}};if(!t)return null;const x=f.reduce((j,k)=>(j[k.category]||(j[k.category]=[]),j[k.category].push(k),j),{}),y={navigation:"Navigation",action:"Actions",theme:"Theme"};let v=0;return e.jsxs("dialog",{className:"modal modal-open",children:[e.jsxs("div",{className:"modal-box max-w-xl p-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 p-3 border-b border-base-300",children:[e.jsx(S,{icon:"lucide:search",size:18,className:"text-base-content/50"}),e.jsx("input",{ref:m,type:"text",placeholder:"Type a command or search...",value:i,onChange:j=>o(j.target.value),onKeyDown:p,className:"flex-1 bg-transparent outline-none text-base"}),e.jsx("kbd",{className:"kbd kbd-sm",children:"ESC"})]}),e.jsx("div",{ref:d,className:"max-h-80 overflow-y-auto p-2",children:f.length===0?e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No commands found"}):Object.entries(x).map(([j,k])=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-medium text-base-content/50 px-2 py-1 mt-2 first:mt-0",children:y[j]||j}),k.map(w=>{const C=v===l,g=v;return v++,e.jsxs("button",{"data-selected":C,className:`w-full flex items-center gap-3 px-3 py-2 rounded-lg text-left transition-colors ${C?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>b(w),onMouseEnter:()=>u(g),children:[e.jsx(S,{icon:w.icon,size:16,className:C?"text-primary-content":"text-base-content/60"}),e.jsx("span",{className:"flex-1",children:w.label}),w.shortcut&&e.jsx("kbd",{className:`kbd kbd-sm ${C?"bg-primary-content/20 text-primary-content":""}`,children:w.shortcut})]},w.id)})]},j))}),e.jsxs("div",{className:"border-t border-base-300 px-3 py-2 text-xs text-base-content/50 flex gap-4",children:[e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↑↓"})," Navigate"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↵"})," Select"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"ESC"})," Close"]})]})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop bg-black/50",children:e.jsx("button",{onClick:s,children:"close"})})]})}function Dr({license:t,onActivated:s}){const[n,r]=c.useState(""),[a,i]=c.useState(null),[o,l]=c.useState(!1),u=c.useCallback(async()=>{const b=n.trim();if(b){i(null),l(!0);try{const x=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:b})})).json();x.success?(r(""),i(null),s()):i(x.error??"Activation failed")}catch{i("Connection failed. Is the Pilot worker running?")}finally{l(!1)}}},[n,s]),m=c.useCallback(b=>{b.key==="Enter"&&!o&&u()},[u,o]),d=(t==null?void 0:t.isExpired)===!0,h=d?"License Expired":"License Required",f=d?"Your Pilot Shell license has expired. Please activate a new license to continue using the Console.":"Pilot Shell Console requires an active license or trial. Activate your license key below to get started.";return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200 p-4",children:e.jsx("div",{className:"card bg-base-100 shadow-xl w-full max-w-md",children:e.jsxs("div",{className:"card-body items-center text-center gap-4",children:[e.jsx("div",{className:"text-5xl mb-2",children:d?"🚫":"🔒"}),e.jsx("h1",{className:"card-title text-2xl",children:h}),e.jsx("p",{className:"text-base-content/60 text-sm",children:f}),e.jsxs("div",{className:"w-full space-y-3 mt-2",children:[e.jsx("input",{type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:n,onChange:b=>{r(b.target.value),i(null)},onKeyDown:m,disabled:o,autoFocus:!0}),a&&e.jsx("p",{className:"text-error text-sm text-left",children:a}),e.jsx("button",{className:"btn btn-primary w-full",onClick:u,disabled:o||!n.trim(),children:o?"Activating...":"Activate License"})]}),e.jsx("div",{className:"divider text-base-content/40 text-xs my-1",children:"or"}),e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"btn btn-outline btn-sm w-full",children:"Get a License"}),e.jsxs("p",{className:"text-base-content/40 text-xs mt-2",children:["Visit"," ",e.jsx("a",{href:"https://pilot-shell.com",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"pilot-shell.com"})," ","to learn more about Pilot Shell."]})]})})})}class ls extends c.Component{constructor(n){super(n);st(this,"handleReset",()=>{this.setState(n=>({hasError:!1,error:null,errorInfo:null,resetCount:n.resetCount+1}))});this.state={hasError:!1,error:null,errorInfo:null,resetCount:0}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,r){console.error("[ErrorBoundary] Caught error:",n,r),this.setState({error:n,errorInfo:r})}render(){if(this.state.hasError){const n=this.props.label;return e.jsxs("div",{className:"p-5 min-h-screen bg-base-200 text-error",children:[e.jsx("h1",{className:"text-2xl font-bold mb-2.5",children:"Something went wrong"}),e.jsx("p",{className:"mb-2.5 text-base-content/60",children:n?`The ${n} hit an error. Use the buttons below, or pick another page.`:"The application hit an error. Use the buttons below, or pick another page."}),e.jsx("button",{type:"button",onClick:this.handleReset,className:"btn btn-sm btn-primary mr-2",children:"Try again"}),e.jsx("button",{type:"button",onClick:()=>window.location.reload(),className:"btn btn-sm btn-ghost",children:"Reload page"}),this.state.error&&e.jsxs("details",{className:"mt-5 text-base-content/60",children:[e.jsx("summary",{className:"cursor-pointer mb-2.5",children:"Error details"}),e.jsxs("pre",{className:"bg-base-300 p-2.5 rounded-lg overflow-auto text-sm",children:[this.state.error.toString(),this.state.errorInfo&&` +var Zt=Object.defineProperty;var es=(t,s,n)=>s in t?Zt(t,s,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[s]=n;var Xe=(t,s,n)=>es(t,typeof s!="symbol"?s+"":s,n);import{j as e,a as c,M as ts,b as ss,c as ns}from"./vendor-markdown.js";import{r as as,a as rs}from"./vendor-charts.js";import"./vendor-diff.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();var ve={},Ze;function is(){if(Ze)return ve;Ze=1;var t=as();return ve.createRoot=t.createRoot,ve.hydrateRoot=t.hydrateRoot,ve}var os=is();const cs="modulepreload",ls=function(t,s){return new URL(t,s).href},et={},X=function(s,n,r){let a=Promise.resolve();if(n&&n.length>0){let o=function(l){return Promise.all(l.map(h=>Promise.resolve(h).then(m=>({status:"fulfilled",value:m}),m=>({status:"rejected",reason:m}))))};const d=document.getElementsByTagName("link"),u=document.querySelector("meta[property=csp-nonce]"),f=(u==null?void 0:u.nonce)||(u==null?void 0:u.getAttribute("nonce"));a=o(n.map(l=>{if(l=ls(l,r),l in et)return;et[l]=!0;const h=l.endsWith(".css"),m=h?'[rel="stylesheet"]':"";if(!!r)for(let p=d.length-1;p>=0;p--){const j=d[p];if(j.href===l&&(!h||j.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${m}`))return;const x=document.createElement("link");if(x.rel=h?"stylesheet":cs,h||(x.as="script"),x.crossOrigin="",x.href=l,f&&x.setAttribute("nonce",f),document.head.appendChild(x),h)return new Promise((p,j)=>{x.addEventListener("load",p),x.addEventListener("error",()=>j(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(o){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=o,window.dispatchEvent(d),!d.defaultPrevented)throw o}return a.then(o=>{for(const d of o||[])d.status==="rejected"&&i(d.reason);return s().catch(i)})};function ds(){return e.jsx("a",{href:"#/",className:"flex items-center",children:e.jsx("span",{className:"font-bold text-lg",children:"Pilot Shell Console"})})}const us={primary:"btn-primary",secondary:"btn-secondary",ghost:"btn-ghost",outline:"btn-outline",error:"btn-error"},hs={xs:"btn-xs",sm:"btn-sm",md:"",lg:"btn-lg"};function W({variant:t="primary",size:s="md",loading:n=!1,className:r="",children:a,disabled:i,...o}){return e.jsxs("button",{className:`btn ${us[t]} ${hs[s]} active:scale-[0.98] transition-transform ${r}`,disabled:i||n,...o,children:[n&&e.jsx("span",{className:"loading loading-spinner loading-sm"}),a]})}function K({children:t,className:s="",compact:n=!1,interactive:r,onClick:a}){const i=r??!!a;return e.jsx("div",{className:`card bg-base-100 shadow-sm border border-base-200 transition-all duration-150 ${i?"cursor-pointer hover:-translate-y-0.5 hover:shadow-md hover:border-base-content/15":""} ${n?"card-compact":""} ${s}`,onClick:a,children:t})}function B({children:t,className:s=""}){return e.jsx("div",{className:`card-body ${s}`,children:t})}function $r({children:t,className:s=""}){return e.jsx("h2",{className:`card-title ${s}`,children:t})}const fs={primary:"badge-primary",secondary:"badge-secondary",accent:"badge-accent",ghost:"badge-ghost",info:"badge-info",success:"badge-success",warning:"badge-warning",error:"badge-error"},ms={xs:"badge-xs",sm:"badge-sm",md:"",lg:"badge-lg"};function G({children:t,variant:s="ghost",size:n="md",outline:r=!1,className:a=""}){return e.jsx("span",{className:`badge ${fs[s]} ${ms[n]} ${r?"badge-outline":""} ${a}`,children:t})}const ps={default:"modal-box surface-elevated",wide:"modal-box surface-elevated max-w-4xl w-[90vw]"};function be({open:t,onClose:s,title:n,children:r,actions:a,size:i="default"}){const o=e.jsxs("dialog",{className:`modal ${t?"modal-open":""}`,children:[e.jsxs("div",{className:ps[i],children:[e.jsxs("div",{className:"flex items-center justify-between",children:[n&&e.jsx("h3",{className:"font-bold text-lg",children:n}),e.jsx("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:s,"aria-label":"Close",children:"✕"})]}),e.jsx("div",{className:"py-4",children:r}),a&&e.jsx("div",{className:"modal-action",children:a})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop",children:e.jsx("button",{onClick:s,children:"close"})})]});return typeof document>"u"?o:rs.createPortal(o,document.body)}const Rt=c.createContext(!1);function Or(){return c.useContext(Rt)}function xs({children:t}){const[s,n]=c.useState(()=>typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return c.useEffect(()=>{const r=window.matchMedia("(prefers-reduced-motion: reduce)"),a=i=>n(i.matches);return r.addEventListener("change",a),()=>r.removeEventListener("change",a)},[]),e.jsx(Rt.Provider,{value:s,children:t})}function bs(t,s){const n=t.icons,r=t.aliases||Object.create(null),a=Object.create(null);function i(o){if(n[o])return a[o]=[];if(!(o in a)){a[o]=null;const d=r[o]&&r[o].parent,u=d&&i(d);u&&(a[o]=[d].concat(u))}return a[o]}return Object.keys(n).concat(Object.keys(r)).forEach(i),a}const Pt=Object.freeze({left:0,top:0,width:16,height:16}),ke=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Ue=Object.freeze({...Pt,...ke}),_e=Object.freeze({...Ue,body:"",hidden:!1});function gs(t,s){const n={};!t.hFlip!=!s.hFlip&&(n.hFlip=!0),!t.vFlip!=!s.vFlip&&(n.vFlip=!0);const r=((t.rotate||0)+(s.rotate||0))%4;return r&&(n.rotate=r),n}function tt(t,s){const n=gs(t,s);for(const r in _e)r in ke?r in t&&!(r in n)&&(n[r]=ke[r]):r in s?n[r]=s[r]:r in t&&(n[r]=t[r]);return n}function js(t,s,n){const r=t.icons,a=t.aliases||Object.create(null);let i={};function o(d){i=tt(r[d]||a[d],i)}return o(s),n.forEach(o),tt(t,i)}function Tt(t,s){const n=[];if(typeof t!="object"||typeof t.icons!="object")return n;t.not_found instanceof Array&&t.not_found.forEach(a=>{s(a,null),n.push(a)});const r=bs(t);for(const a in r){const i=r[a];i&&(s(a,js(t,a,i)),n.push(a))}return n}const vs={provider:"",aliases:{},not_found:{},...Pt};function Re(t,s){for(const n in s)if(n in t&&typeof t[n]!=typeof s[n])return!1;return!0}function It(t){if(typeof t!="object"||t===null)return null;const s=t;if(typeof s.prefix!="string"||!t.icons||typeof t.icons!="object"||!Re(t,vs))return null;const n=s.icons;for(const a in n){const i=n[a];if(!a||typeof i.body!="string"||!Re(i,_e))return null}const r=s.aliases||Object.create(null);for(const a in r){const i=r[a],o=i.parent;if(!a||typeof o!="string"||!n[o]&&!r[o]||!Re(i,_e))return null}return s}const st=Object.create(null);function ys(t,s){return{provider:t,prefix:s,icons:Object.create(null),missing:new Set}}function re(t,s){const n=st[t]||(st[t]=Object.create(null));return n[s]||(n[s]=ys(t,s))}function Lt(t,s){return It(s)?Tt(s,(n,r)=>{r?t.icons[n]=r:t.missing.add(n)}):[]}function ws(t,s,n){try{if(typeof n.body=="string")return t.icons[s]={...n},!0}catch{}return!1}const At=/^[a-z0-9]+(-[a-z0-9]+)*$/,Ee=(t,s,n,r="")=>{const a=t.split(":");if(t.slice(0,1)==="@"){if(a.length<2||a.length>3)return null;r=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const d=a.pop(),u=a.pop(),f={provider:a.length>0?a[0]:r,prefix:u,name:d};return s&&!Ne(f)?null:f}const i=a[0],o=i.split("-");if(o.length>1){const d={provider:r,prefix:o.shift(),name:o.join("-")};return s&&!Ne(d)?null:d}if(n&&r===""){const d={provider:r,prefix:"",name:i};return s&&!Ne(d,n)?null:d}return null},Ne=(t,s)=>t?!!((s&&t.prefix===""||t.prefix)&&t.name):!1;let ge=!1;function _t(t){return typeof t=="boolean"&&(ge=t),ge}function nt(t){const s=typeof t=="string"?Ee(t,!0,ge):t;if(s){const n=re(s.provider,s.prefix),r=s.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function Ns(t,s){const n=Ee(t,!0,ge);if(!n)return!1;const r=re(n.provider,n.prefix);return s?ws(r,n.name,s):(r.missing.add(n.name),!0)}function Ss(t,s){if(typeof t!="object")return!1;if(typeof s!="string"&&(s=t.provider||""),ge&&!s&&!t.prefix){let a=!1;return It(t)&&(t.prefix="",Tt(t,(i,o)=>{Ns(i,o)&&(a=!0)})),a}const n=t.prefix;if(!Ne({prefix:n,name:"a"}))return!1;const r=re(s,n);return!!Lt(r,t)}const Dt=Object.freeze({width:null,height:null}),$t=Object.freeze({...Dt,...ke}),ks=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Cs=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function at(t,s,n){if(s===1)return t;if(n=n||100,typeof t=="number")return Math.ceil(t*s*n)/n;if(typeof t!="string")return t;const r=t.split(ks);if(r===null||!r.length)return t;const a=[];let i=r.shift(),o=Cs.test(i);for(;;){if(o){const d=parseFloat(i);isNaN(d)?a.push(i):a.push(Math.ceil(d*s*n)/n)}else a.push(i);if(i=r.shift(),i===void 0)return a.join("");o=!o}}function Es(t,s="defs"){let n="";const r=t.indexOf("<"+s);for(;r>=0;){const a=t.indexOf(">",r),i=t.indexOf("",i);if(o===-1)break;n+=t.slice(a+1,i).trim(),t=t.slice(0,r).trim()+t.slice(o+1)}return{defs:n,content:t}}function Rs(t,s){return t?""+t+""+s:s}function Ps(t,s,n){const r=Es(t);return Rs(r.defs,s+r.content+n)}const Ts=t=>t==="unset"||t==="undefined"||t==="none";function Is(t,s){const n={...Ue,...t},r={...$t,...s},a={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,r].forEach(p=>{const j=[],v=p.hFlip,g=p.vFlip;let S=p.rotate;v?g?S+=2:(j.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),j.push("scale(-1 1)"),a.top=a.left=0):g&&(j.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),j.push("scale(1 -1)"),a.top=a.left=0);let k;switch(S<0&&(S-=Math.floor(S/4)*4),S=S%4,S){case 1:k=a.height/2+a.top,j.unshift("rotate(90 "+k.toString()+" "+k.toString()+")");break;case 2:j.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:k=a.width/2+a.left,j.unshift("rotate(-90 "+k.toString()+" "+k.toString()+")");break}S%2===1&&(a.left!==a.top&&(k=a.left,a.left=a.top,a.top=k),a.width!==a.height&&(k=a.width,a.width=a.height,a.height=k)),j.length&&(i=Ps(i,'',""))});const o=r.width,d=r.height,u=a.width,f=a.height;let l,h;o===null?(h=d===null?"1em":d==="auto"?f:d,l=at(h,u/f)):(l=o==="auto"?u:o,h=d===null?at(l,f/u):d==="auto"?f:d);const m={},b=(p,j)=>{Ts(j)||(m[p]=j.toString())};b("width",l),b("height",h);const x=[a.left,a.top,u,f];return m.viewBox=x.join(" "),{attributes:m,viewBox:x,body:i}}const Ls=/\sid="(\S+)"/g,As="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let _s=0;function Ds(t,s=As){const n=[];let r;for(;r=Ls.exec(t);)n.push(r[1]);if(!n.length)return t;const a="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(i=>{const o=typeof s=="function"?s(i):s+(_s++).toString(),d=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+d+')([")]|\\.[a-z])',"g"),"$1"+o+a+"$3")}),t=t.replace(new RegExp(a,"g"),""),t}const De=Object.create(null);function $s(t,s){De[t]=s}function $e(t){return De[t]||De[""]}function qe(t){let s;if(typeof t.resources=="string")s=[t.resources];else if(s=t.resources,!(s instanceof Array)||!s.length)return null;return{resources:s,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:t.random===!0,index:t.index||0,dataAfterTimeout:t.dataAfterTimeout!==!1}}const He=Object.create(null),oe=["https://api.simplesvg.com","https://api.unisvg.com"],Se=[];for(;oe.length>0;)oe.length===1||Math.random()>.5?Se.push(oe.shift()):Se.push(oe.pop());He[""]=qe({resources:["https://api.iconify.design"].concat(Se)});function Os(t,s){const n=qe(s);return n===null?!1:(He[t]=n,!0)}function Ge(t){return He[t]}const Ms=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let rt=Ms();function zs(t,s){const n=Ge(t);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let a=0;n.resources.forEach(o=>{a=Math.max(a,o.length)});const i=s+".json?icons=";r=n.maxURL-a-n.path.length-i.length}return r}function Fs(t){return t===404}const Us=(t,s,n)=>{const r=[],a=zs(t,s),i="icons";let o={type:i,provider:t,prefix:s,icons:[]},d=0;return n.forEach((u,f)=>{d+=u.length+1,d>=a&&f>0&&(r.push(o),o={type:i,provider:t,prefix:s,icons:[]},d=u.length),o.icons.push(u)}),r.push(o),r};function qs(t){if(typeof t=="string"){const s=Ge(t);if(s)return s.path}return"/"}const Hs=(t,s,n)=>{if(!rt){n("abort",424);return}let r=qs(s.provider);switch(s.type){case"icons":{const i=s.prefix,d=s.icons.join(","),u=new URLSearchParams({icons:d});r+=i+".json?"+u.toString();break}case"custom":{const i=s.uri;r+=i.slice(0,1)==="/"?i.slice(1):i;break}default:n("abort",400);return}let a=503;rt(t+r).then(i=>{const o=i.status;if(o!==200){setTimeout(()=>{n(Fs(o)?"abort":"next",o)});return}return a=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?n("abort",i):n("next",a)});return}setTimeout(()=>{n("success",i)})}).catch(()=>{n("next",a)})},Gs={prepare:Us,send:Hs};function Ot(t,s){t.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(a=>a.id!==s))})}function Vs(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout(()=>{t.pendingCallbacksFlag=!1;const s=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!s.length)return;let n=!1;const r=t.provider,a=t.prefix;s.forEach(i=>{const o=i.icons,d=o.pending.length;o.pending=o.pending.filter(u=>{if(u.prefix!==a)return!0;const f=u.name;if(t.icons[f])o.loaded.push({provider:r,prefix:a,name:f});else if(t.missing.has(f))o.missing.push({provider:r,prefix:a,name:f});else return n=!0,!0;return!1}),o.pending.length!==d&&(n||Ot([t],i.id),i.callback(o.loaded.slice(0),o.missing.slice(0),o.pending.slice(0),i.abort))})}))}let Ks=0;function Bs(t,s,n){const r=Ks++,a=Ot.bind(null,n,r);if(!s.pending.length)return a;const i={id:r,icons:s,callback:t,abort:a};return n.forEach(o=>{(o.loaderCallbacks||(o.loaderCallbacks=[])).push(i)}),a}function Ws(t){const s={loaded:[],missing:[],pending:[]},n=Object.create(null);t.sort((a,i)=>a.provider!==i.provider?a.provider.localeCompare(i.provider):a.prefix!==i.prefix?a.prefix.localeCompare(i.prefix):a.name.localeCompare(i.name));let r={provider:"",prefix:"",name:""};return t.forEach(a=>{if(r.name===a.name&&r.prefix===a.prefix&&r.provider===a.provider)return;r=a;const i=a.provider,o=a.prefix,d=a.name,u=n[i]||(n[i]=Object.create(null)),f=u[o]||(u[o]=re(i,o));let l;d in f.icons?l=s.loaded:o===""||f.missing.has(d)?l=s.missing:l=s.pending;const h={provider:i,prefix:o,name:d};l.push(h)}),s}function Js(t,s=!0,n=!1){const r=[];return t.forEach(a=>{const i=typeof a=="string"?Ee(a,s,n):a;i&&r.push(i)}),r}const Qs={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Ys(t,s,n,r){const a=t.resources.length,i=t.random?Math.floor(Math.random()*a):t.index;let o;if(t.random){let w=t.resources.slice(0);for(o=[];w.length>1;){const R=Math.floor(Math.random()*w.length);o.push(w[R]),w=w.slice(0,R).concat(w.slice(R+1))}o=o.concat(w)}else o=t.resources.slice(i).concat(t.resources.slice(0,i));const d=Date.now();let u="pending",f=0,l,h=null,m=[],b=[];typeof r=="function"&&b.push(r);function x(){h&&(clearTimeout(h),h=null)}function p(){u==="pending"&&(u="aborted"),x(),m.forEach(w=>{w.status==="pending"&&(w.status="aborted")}),m=[]}function j(w,R){R&&(b=[]),typeof w=="function"&&b.push(w)}function v(){return{startTime:d,payload:s,status:u,queriesSent:f,queriesPending:m.length,subscribe:j,abort:p}}function g(){u="failed",b.forEach(w=>{w(void 0,l)})}function S(){m.forEach(w=>{w.status==="pending"&&(w.status="aborted")}),m=[]}function k(w,R,$){const E=R!=="success";switch(m=m.filter(C=>C!==w),u){case"pending":break;case"failed":if(E||!t.dataAfterTimeout)return;break;default:return}if(R==="abort"){l=$,g();return}if(E){l=$,m.length||(o.length?P():g());return}if(x(),S(),!t.random){const C=t.resources.indexOf(w.resource);C!==-1&&C!==t.index&&(t.index=C)}u="completed",b.forEach(C=>{C($)})}function P(){if(u!=="pending")return;x();const w=o.shift();if(w===void 0){if(m.length){h=setTimeout(()=>{x(),u==="pending"&&(S(),g())},t.timeout);return}g();return}const R={status:"pending",resource:w,callback:($,E)=>{k(R,$,E)}};m.push(R),f++,h=setTimeout(P,t.rotate),n(w,s,R.callback)}return setTimeout(P),v}function Mt(t){const s={...Qs,...t};let n=[];function r(){n=n.filter(d=>d().status==="pending")}function a(d,u,f){const l=Ys(s,d,u,(h,m)=>{r(),f&&f(h,m)});return n.push(l),l}function i(d){return n.find(u=>d(u))||null}return{query:a,find:i,setIndex:d=>{s.index=d},getIndex:()=>s.index,cleanup:r}}function it(){}const Pe=Object.create(null);function Xs(t){if(!Pe[t]){const s=Ge(t);if(!s)return;const n=Mt(s),r={config:s,redundancy:n};Pe[t]=r}return Pe[t]}function Zs(t,s,n){let r,a;if(typeof t=="string"){const i=$e(t);if(!i)return n(void 0,424),it;a=i.send;const o=Xs(t);o&&(r=o.redundancy)}else{const i=qe(t);if(i){r=Mt(i);const o=t.resources?t.resources[0]:"",d=$e(o);d&&(a=d.send)}}return!r||!a?(n(void 0,424),it):r.query(s,a,n)().abort}function ot(){}function en(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,Vs(t)}))}function tn(t){const s=[],n=[];return t.forEach(r=>{(r.match(At)?s:n).push(r)}),{valid:s,invalid:n}}function ce(t,s,n){function r(){const a=t.pendingIcons;s.forEach(i=>{a&&a.delete(i),t.icons[i]||t.missing.add(i)})}if(n&&typeof n=="object")try{if(!Lt(t,n).length){r();return}}catch(a){console.error(a)}r(),en(t)}function ct(t,s){t instanceof Promise?t.then(n=>{s(n)}).catch(()=>{s(null)}):s(t)}function sn(t,s){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(s).sort():t.iconsToLoad=s,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout(()=>{t.iconsQueueFlag=!1;const{provider:n,prefix:r}=t,a=t.iconsToLoad;if(delete t.iconsToLoad,!a||!a.length)return;const i=t.loadIcon;if(t.loadIcons&&(a.length>1||!i)){ct(t.loadIcons(a,r,n),l=>{ce(t,a,l)});return}if(i){a.forEach(l=>{const h=i(l,r,n);ct(h,m=>{const b=m?{prefix:r,icons:{[l]:m}}:null;ce(t,[l],b)})});return}const{valid:o,invalid:d}=tn(a);if(d.length&&ce(t,d,null),!o.length)return;const u=r.match(At)?$e(n):null;if(!u){ce(t,o,null);return}u.prepare(n,r,o).forEach(l=>{Zs(n,l,h=>{ce(t,l.icons,h)})})}))}const nn=(t,s)=>{const n=Js(t,!0,_t()),r=Ws(n);if(!r.pending.length){let u=!0;return s&&setTimeout(()=>{u&&s(r.loaded,r.missing,r.pending,ot)}),()=>{u=!1}}const a=Object.create(null),i=[];let o,d;return r.pending.forEach(u=>{const{provider:f,prefix:l}=u;if(l===d&&f===o)return;o=f,d=l,i.push(re(f,l));const h=a[f]||(a[f]=Object.create(null));h[l]||(h[l]=[])}),r.pending.forEach(u=>{const{provider:f,prefix:l,name:h}=u,m=re(f,l),b=m.pendingIcons||(m.pendingIcons=new Set);b.has(h)||(b.add(h),a[f][l].push(h))}),i.forEach(u=>{const f=a[u.provider][u.prefix];f.length&&sn(u,f)}),s?Bs(s,r,i):ot};function an(t,s){const n={...t};for(const r in s){const a=s[r],i=typeof a;r in Dt?(a===null||a&&(i==="string"||i==="number"))&&(n[r]=a):i===typeof n[r]&&(n[r]=r==="rotate"?a%4:a)}return n}const rn=/[\s,]+/;function on(t,s){s.split(rn).forEach(n=>{switch(n.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function cn(t,s=0){const n=t.replace(/^-?[0-9.]*/,"");function r(a){for(;a<0;)a+=4;return a%4}if(n===""){const a=parseInt(t);return isNaN(a)?0:r(a)}else if(n!==t){let a=0;switch(n){case"%":a=25;break;case"deg":a=90}if(a){let i=parseFloat(t.slice(0,t.length-n.length));return isNaN(i)?0:(i=i/a,i%1===0?r(i):0)}}return s}function ln(t,s){let n=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in s)n+=" "+r+'="'+s[r]+'"';return'"+t+""}function dn(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function un(t){return"data:image/svg+xml,"+dn(t)}function hn(t){return'url("'+un(t)+'")'}let fe;function fn(){try{fe=window.trustedTypes.createPolicy("iconify",{createHTML:t=>t})}catch{fe=null}}function mn(t){return fe===void 0&&fn(),fe?fe.createHTML(t):t}const zt={...$t,inline:!1},pn={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},xn={display:"inline-block"},Oe={backgroundColor:"currentColor"},Ft={backgroundColor:"transparent"},lt={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},dt={WebkitMask:Oe,mask:Oe,background:Ft};for(const t in dt){const s=dt[t];for(const n in lt)s[t+n]=lt[n]}const bn={...zt,inline:!0};function ut(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}const gn=(t,s,n)=>{const r=s.inline?bn:zt,a=an(r,s),i=s.mode||"svg",o={},d=s.style||{},u={...i==="svg"?pn:{}};if(n){const j=Ee(n,!1,!0);if(j){const v=["iconify"],g=["provider","prefix"];for(const S of g)j[S]&&v.push("iconify--"+j[S]);u.className=v.join(" ")}}for(let j in s){const v=s[j];if(v!==void 0)switch(j){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":u.ref=v;break;case"className":u[j]=(u[j]?u[j]+" ":"")+v;break;case"inline":case"hFlip":case"vFlip":a[j]=v===!0||v==="true"||v===1;break;case"flip":typeof v=="string"&&on(a,v);break;case"color":o.color=v;break;case"rotate":typeof v=="string"?a[j]=cn(v):typeof v=="number"&&(a[j]=v);break;case"ariaHidden":case"aria-hidden":v!==!0&&v!=="true"&&delete u["aria-hidden"];break;default:r[j]===void 0&&(u[j]=v)}}const f=Is(t,a),l=f.attributes;if(a.inline&&(o.verticalAlign="-0.125em"),i==="svg"){u.style={...o,...d},Object.assign(u,l);let j=0,v=s.id;return typeof v=="string"&&(v=v.replace(/-/g,"_")),u.dangerouslySetInnerHTML={__html:mn(Ds(f.body,v?()=>v+"ID"+j++:"iconifyReact"))},c.createElement("svg",u)}const{body:h,width:m,height:b}=t,x=i==="mask"||(i==="bg"?!1:h.indexOf("currentColor")!==-1),p=ln(h,{...l,width:m+"",height:b+""});return u.style={...o,"--svg":hn(p),width:ut(l.width),height:ut(l.height),...xn,...x?Oe:Ft,...d},c.createElement("span",u)};_t(!0);$s("",Gs);if(typeof document<"u"&&typeof window<"u"){const t=window;if(t.IconifyPreload!==void 0){const s=t.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof s=="object"&&s!==null&&(s instanceof Array?s:[s]).forEach(r=>{try{(typeof r!="object"||r===null||r instanceof Array||typeof r.icons!="object"||typeof r.prefix!="string"||!Ss(r))&&console.error(n)}catch{console.error(n)}})}if(t.IconifyProviders!==void 0){const s=t.IconifyProviders;if(typeof s=="object"&&s!==null)for(let n in s){const r="IconifyProviders["+n+"] is invalid.";try{const a=s[n];if(typeof a!="object"||!a||a.resources===void 0)continue;Os(n,a)||console.error(r)}catch{console.error(r)}}}}function Ut(t){const[s,n]=c.useState(!!t.ssr),[r,a]=c.useState({});function i(b){if(b){const x=t.icon;if(typeof x=="object")return{name:"",data:x};const p=nt(x);if(p)return{name:x,data:p}}return{name:""}}const[o,d]=c.useState(i(!!t.ssr));function u(){const b=r.callback;b&&(b(),a({}))}function f(b){if(JSON.stringify(o)!==JSON.stringify(b))return u(),d(b),!0}function l(){var b;const x=t.icon;if(typeof x=="object"){f({name:"",data:x});return}const p=nt(x);if(f({name:x,data:p}))if(p===void 0){const j=nn([x],l);a({callback:j})}else p&&((b=t.onLoad)===null||b===void 0||b.call(t,x))}c.useEffect(()=>(n(!0),u),[]),c.useEffect(()=>{s&&l()},[t.icon,s]);const{name:h,data:m}=o;return m?gn({...Ue,...m},t,h):t.children?t.children:t.fallback?t.fallback:c.createElement("span",{})}const jn=c.forwardRef((t,s)=>Ut({...t,_ref:s}));c.forwardRef((t,s)=>Ut({inline:!0,...t,_ref:s}));function N({icon:t,size:s=20,className:n="",style:r}){return e.jsx(jn,{icon:t,width:s,height:s,className:n,style:r})}function Me({icon:t="lucide:inbox",title:s,description:n,command:r,action:a}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(N,{icon:t,size:32,className:"text-base-content/30 mb-3"}),e.jsx("h3",{className:"text-heading text-base-content/70",children:s}),n&&e.jsx("p",{className:"text-muted text-sm mt-1 max-w-sm",children:n}),r&&e.jsx("div",{className:"mt-3 px-4 py-2 rounded-lg bg-base-100 border border-base-200",children:e.jsx("code",{className:"text-sm font-mono text-primary",children:r})}),a&&e.jsx("div",{className:"mt-4",children:a})]})}const vn={top:"tooltip-top",bottom:"tooltip-bottom",left:"tooltip-left",right:"tooltip-right"};function Q({text:t,children:s,position:n="top"}){return e.jsx("div",{className:`tooltip ${vn[n]} [&::before]:bg-base-300 [&::before]:text-base-content`,"data-tip":t,children:s})}const yn={success:{bg:"alert-success",icon:"lucide:check-circle",iconColor:"text-success-content"},error:{bg:"alert-error",icon:"lucide:x-circle",iconColor:"text-error-content"},info:{bg:"alert-info",icon:"lucide:info",iconColor:"text-info-content"},warning:{bg:"alert-warning",icon:"lucide:alert-triangle",iconColor:"text-warning-content"}};function wn({id:t,type:s,message:n,title:r,duration:a=5e3,dismissible:i=!0,onClick:o,onDismiss:d}){const[u,f]=c.useState(!1),{bg:l,icon:h,iconColor:m}=yn[s];c.useEffect(()=>{if(a>0){const x=setTimeout(()=>{f(!0),setTimeout(()=>d(t),300)},a);return()=>clearTimeout(x)}},[a,t,d]);const b=()=>{f(!0),setTimeout(()=>d(t),300)};return e.jsxs("div",{role:"alert",className:`alert ${l} shadow-lg transition-all duration-300 ${u?"opacity-0 translate-x-4":"opacity-100 translate-x-0"} ${o?"cursor-pointer hover:scale-[1.02]":""}`,onClick:o,children:[e.jsx(N,{icon:h,size:20,className:m}),e.jsxs("div",{className:"flex-1",children:[r&&e.jsx("h3",{className:"font-bold text-sm",children:r}),e.jsx("span",{className:"text-sm",children:n})]}),i&&e.jsx("button",{onClick:x=>{x.stopPropagation(),b()},className:"btn btn-ghost btn-sm btn-circle","aria-label":"Dismiss",children:e.jsx(N,{icon:"lucide:x",size:16})})]})}function Nn({toasts:t,onDismiss:s}){return t.length===0?null:e.jsx("div",{className:"toast toast-end toast-bottom z-50",children:t.map(n=>e.jsx(wn,{...n,onDismiss:s},n.id))})}function je({width:t="100%",height:s="1rem",className:n=""}){return e.jsx("div",{className:`animate-pulse bg-base-300/50 rounded ${n}`,style:{width:t,height:s}})}function Sn({lines:t=3,className:s=""}){return e.jsx("div",{className:`space-y-2 ${s}`,children:Array.from({length:t}).map((n,r)=>e.jsx(je,{width:r===t-1?"60%":"100%",height:"0.75rem"},r))})}function kn({className:t=""}){return e.jsx("div",{className:`card bg-base-100 border border-base-200 shadow-sm ${t}`,children:e.jsxs("div",{className:"card-body animate-pulse",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-base-300/50 rounded-lg"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(je,{width:"40%",height:"0.75rem"}),e.jsx(je,{width:"70%",height:"1.25rem"})]})]}),e.jsx(Sn,{lines:2})]})})}function se(){return e.jsxs("div",{className:"space-y-6 animate-pulse",children:[e.jsxs("div",{children:[e.jsx(je,{width:"12rem",height:"1.75rem"}),e.jsx(je,{width:"20rem",height:"0.875rem",className:"mt-2"})]}),e.jsx("div",{className:"space-y-3",children:Array.from({length:5}).map((t,s)=>e.jsx(kn,{},s))})]})}function Cn({icon:t,label:s,href:n,active:r=!1,badge:a,collapsed:i=!1}){const o=e.jsxs("a",{href:n,className:`nav-item flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all ${r?"active":""} ${i?"justify-center":""}`,children:[e.jsx(N,{icon:t,size:20}),!i&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"flex-1",children:s}),a!==void 0&&e.jsx("span",{className:`badge badge-sm ${r?"badge-primary-content":"badge-ghost"}`,children:a})]})]});return i?e.jsx(Q,{text:s,position:"right",children:o}):o}const En=[{icon:"lucide:layout-dashboard",label:"Dashboard",href:"#/"},{icon:"lucide:history",label:"Sessions",href:"#/sessions"},{icon:"lucide:brain",label:"Memories",href:"#/memories"},{icon:"lucide:lightbulb",label:"Requirements",href:"#/requirements"},{icon:"lucide:scroll",label:"Specifications",href:"#/spec"},{icon:"lucide:puzzle",label:"Extensions",href:"#/extensions"},{icon:"lucide:git-compare",label:"Changes",href:"#/changes"},{icon:"lucide:bar-chart-3",label:"Usage",href:"#/usage"},{icon:"lucide:book-open",label:"Help",href:"#/help"},{icon:"lucide:settings",label:"Settings",href:"#/settings"}];function Rn(t,s){return t===s||t.startsWith(s+"/")}function Pn({currentPath:t,collapsed:s=!1}){return e.jsx("nav",{className:"py-4 space-y-1 px-2",children:En.map(n=>e.jsx(Cn,{icon:n.icon,label:n.label,href:n.href,active:Rn(t,n.href),collapsed:s},n.href))})}const Tn={solo:{label:"Solo",variant:"primary"},team:{label:"Team",variant:"accent"},trial:{label:"Trial",variant:"warning"}};function ht(t){return t.isExpired||t.tier==="trial"}function In({license:t,isLoading:s,onClick:n}){if(s||!t||!t.tier)return null;const a=ht(t)&&!!n?{onClick:n,role:"button",className:"cursor-pointer"}:{};if(t.isExpired)return e.jsx("span",{...a,children:e.jsx(G,{variant:"error",size:"xs",children:"Expired"})});const i=Tn[t.tier];if(!i)return null;let o=i.label;t.tier==="trial"&&t.daysRemaining!=null&&(o=`${i.label} · ${t.daysRemaining}d left`);const d=!ht(t)&&t.email;return e.jsxs("span",{...a,className:`${a.className??""} inline-flex items-center gap-1.5`,children:[e.jsx(G,{variant:i.variant,size:"xs",children:o}),d&&e.jsx("span",{className:"text-base-content/50",children:t.email})]})}function Ln({open:t,onClose:s,onActivated:n}){const[r,a]=c.useState(""),[i,o]=c.useState(null),[d,u]=c.useState(!1),f=c.useCallback(async()=>{const h=r.trim();if(h){o(null),u(!0);try{const b=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:h})})).json();b.success?(a(""),n(),s()):o(b.error??"Activation failed")}catch{o("Connection failed")}finally{u(!1)}}},[r,n,s]),l=c.useCallback(h=>{h.key==="Enter"&&!d&&f()},[f,d]);return e.jsxs(be,{open:t,onClose:s,title:"Activate License",children:[e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("input",{id:"license-key-input",type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:r,onChange:h=>{a(h.target.value),o(null)},onKeyDown:l,disabled:d,autoFocus:!0}),i&&e.jsx("p",{className:"text-error text-sm",children:i}),e.jsxs("div",{className:"bg-base-200/50 rounded-lg p-3 space-y-1.5",children:[e.jsxs("p",{className:"text-xs text-base-content/60",children:["Don't have a key? Get one at"," ",e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"pilot-shell.com"})]}),e.jsxs("p",{className:"text-xs text-base-content/60",children:["Already a subscriber but lost your key? Recover it in the"," ",e.jsx("a",{href:"https://polar.sh/max-ritter/portal",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"members area"}),"."]})]})]}),e.jsxs("div",{className:"modal-action",children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:s,disabled:d,children:"Cancel"}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:f,disabled:d||!r.trim(),children:d?"Activating...":"Activate"})]})]})}const ze="pilot-license-cache",An=10080*60*1e3;function ft(){try{const t=localStorage.getItem(ze);if(!t)return null;const s=JSON.parse(t);return!s||typeof s.cachedAt!="number"||!s.license||Date.now()-s.cachedAt>An||!s.license.valid||s.license.isExpired?null:s.license}catch{return null}}function _n(t){try{t&&t.valid&&!t.isExpired?localStorage.setItem(ze,JSON.stringify({cachedAt:Date.now(),license:t})):localStorage.removeItem(ze)}catch{}}function qt(){const[t,s]=c.useState(()=>ft()),[n,r]=c.useState(()=>ft()===null),a=c.useCallback((o=!1)=>{fetch(o?"/api/license?refresh=1":"/api/license").then(u=>u.json()).then(u=>{s(u),_n(u),r(!1)}).catch(()=>{r(!1)})},[]);c.useEffect(()=>{a();const o=setInterval(()=>a(!0),6e4),d=()=>{document.visibilityState==="visible"&&a(!0)};return document.addEventListener("visibilitychange",d),()=>{clearInterval(o),document.removeEventListener("visibilitychange",d)}},[a]);const i=c.useCallback(()=>a(!0),[a]);return{license:t,isLoading:n,refetch:i}}const Dn={online:{color:"bg-success",label:"Online"},processing:{color:"bg-warning animate-pulse",label:"Processing"},offline:{color:"bg-error",label:"Offline"}};function $n({version:t,workerStatus:s="offline",queueDepth:n=0,collapsed:r=!1}){const a=Dn[s],{license:i,isLoading:o,refetch:d}=qt(),[u,f]=c.useState(!1),l=t?`v${t}`:null;return r?e.jsx("div",{className:"p-3 border-t border-base-300/50 space-y-3",children:e.jsx(Q,{text:`Worker ${a.label}${n>0?` · ${n} queued`:""}`,position:"right",children:e.jsx("div",{className:"flex justify-center",children:e.jsx("span",{className:`inline-block w-2.5 h-2.5 rounded-full ${a.color}`})})})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"p-4 border-t border-base-300/50 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`inline-block w-2 h-2 rounded-full ${a.color}`}),e.jsxs("span",{className:"text-base-content/60",children:["Worker ",a.label]}),n>0&&e.jsxs("span",{className:"text-base-content/50",children:["· ",n," queued"]})]}),l&&e.jsx("span",{className:"text-base-content/40",children:l})]}),!o&&(i==null?void 0:i.tier)&&e.jsx("div",{className:"flex items-center gap-2 text-xs",children:e.jsx(In,{license:i,isLoading:o,onClick:()=>f(!0)})}),!o&&(!i||!i.tier||i.tier==="trial"||i.isExpired)&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary/70 hover:text-primary transition-colors",children:"Get a license"}),e.jsxs("button",{onClick:()=>f(!0),className:"btn btn-primary btn-xs gap-1",children:[e.jsx(N,{icon:"lucide:key",size:10}),"Activate"]})]})]}),e.jsx(Ln,{open:u,onClose:()=>f(!1),onActivated:d})]})}function On({currentPath:t,version:s,workerStatus:n,queueDepth:r,collapsed:a,onToggleCollapse:i}){return e.jsxs("aside",{className:`dashboard-sidebar flex flex-col border-r border-base-300 transition-all duration-300 h-screen sticky top-0 ${a?"w-[72px]":"w-64"}`,children:[e.jsxs("div",{className:"flex-shrink-0 flex items-center justify-between p-4 border-b border-base-300/50",children:[!a&&e.jsx(ds,{}),e.jsx("button",{onClick:i,className:"btn btn-ghost btn-sm btn-square",title:a?"Expand sidebar":"Collapse sidebar",children:e.jsx(N,{icon:a?"lucide:panel-left-open":"lucide:panel-left-close",size:18})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsx(Pn,{currentPath:t,collapsed:a})}),e.jsx("div",{className:"flex-shrink-0",children:e.jsx($n,{version:s,workerStatus:n,queueDepth:r,collapsed:a})})]})}function Mn(t){const s=t.endsWith("Z")?t:t+"Z",n=Date.now()-new Date(s).getTime();return n<6e4?"just now":n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`}const zn={plan_approval:"lucide:file-check",verification_complete:"lucide:check-circle",attention_needed:"lucide:alert-circle"};function Fn(t){const s=t.indexOf("/docs/plans/");if(s===-1)return;const n=t.slice(0,s),r=n.lastIndexOf("/");return r>=0?n.slice(r+1):n}function Un(t){const s=t.split("/").pop();if(!s)return;let n=s.replace(/\.md$/,"");return/^\d{4}-\d{2}-\d{2}-/.test(n)&&(n=n.slice(11)),n}function qn({notifications:t,unreadCount:s,onMarkAsRead:n,onMarkAllAsRead:r,onClearAll:a,onNavigate:i}){const[o,d]=c.useState(!1),u=c.useRef(null),f=c.useCallback(h=>{u.current&&!u.current.contains(h.target)&&d(!1)},[]);c.useEffect(()=>{if(o)return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[o,f]);const l=c.useCallback(h=>{if(h.is_read===0&&n(h.id),d(!1),!!i)if(h.plan_path){const m=Fn(h.plan_path);i("/spec",m)}else h.session_id&&i(`/sessions?selected=${h.session_id}`)},[n,i]);return e.jsxs("div",{className:"relative",ref:u,children:[e.jsx(Q,{text:"Notifications",position:"bottom",children:e.jsx(W,{variant:"ghost",size:"sm",onClick:()=>d(!o),children:e.jsxs("div",{className:"relative",children:[e.jsx(N,{icon:"lucide:bell",size:18}),s>0&&e.jsx("span",{className:"absolute -top-1.5 -right-1.5 bg-error text-error-content text-[10px] font-bold rounded-full min-w-[16px] h-4 flex items-center justify-center px-0.5",children:s>99?"99+":s})]})})}),o&&e.jsxs("div",{className:"absolute right-0 top-full mt-2 w-80 max-h-96 overflow-y-auto rounded-xl border border-base-300 bg-base-100 shadow-xl z-50",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-base-300",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Notifications"}),e.jsxs("div",{className:"flex items-center gap-3",children:[s>0&&e.jsx("button",{className:"text-xs text-primary hover:underline",onClick:()=>r(),children:"Mark all read"}),t.length>0&&e.jsx("button",{className:"text-xs text-error/70 hover:text-error hover:underline",onClick:()=>{a(),d(!1)},children:"Clear all"})]})]}),t.length===0?e.jsx("div",{className:"px-4 py-8 text-center text-sm text-base-content/50",children:"No notifications"}):e.jsx("div",{className:"divide-y divide-base-300",children:t.map(h=>e.jsx("button",{className:`w-full text-left px-4 py-3 hover:bg-base-200/50 transition-colors ${h.is_read===0?"bg-primary/5":""}`,onClick:()=>l(h),children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(N,{icon:zn[h.type]||"lucide:info",size:16,className:`mt-0.5 flex-shrink-0 ${h.is_read===0?"text-primary":"text-base-content/40"}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`text-sm truncate ${h.is_read===0?"font-medium":""}`,children:h.plan_path?Un(h.plan_path)??h.title:h.title}),h.is_read===0&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-primary flex-shrink-0"})]}),e.jsx("p",{className:"text-xs text-base-content/60 mt-0.5 line-clamp-2",children:h.message}),e.jsx("span",{className:"text-[10px] text-base-content/40 mt-1 block",children:Mn(h.created_at)})]})]})},h.id))})]})]})}const Ht={SSE_RECONNECT_DELAY_MS:3e3,SPEC_REFRESH_INTERVAL_MS:5e3,GIT_REFRESH_INTERVAL_MS:1e4},Ve=c.createContext(null);function Hn({children:t}){const[s,n]=c.useState(!1),r=c.useRef(new Map),a=c.useRef(new Set),i=c.useCallback((u,f)=>{let l=r.current.get(u);return l||(l=new Set,r.current.set(u,l)),l.add(f),()=>{const h=r.current.get(u);h&&(h.delete(f),h.size===0&&r.current.delete(u))}},[]),o=c.useCallback(u=>(a.current.add(u),()=>{a.current.delete(u)}),[]);c.useEffect(()=>{if(typeof EventSource>"u")return;let u=null,f=null,l=!1;const h=()=>{if(l)return;u==null||u.close();const m=new EventSource("/stream");u=m,m.onopen=()=>{n(!0),f!==null&&(clearTimeout(f),f=null);for(const b of a.current)try{b()}catch(x){console.error("[SSE] reconnect handler threw",x)}},m.onerror=()=>{n(!1),m.close(),!l&&f===null&&(f=setTimeout(()=>{f=null,h()},Ht.SSE_RECONNECT_DELAY_MS))},m.onmessage=b=>{let x;try{x=JSON.parse(String(b.data))}catch{return}const p=r.current.get(x.type);if(p)for(const j of p)try{j(x)}catch(v){console.error("[SSE] handler threw for type",x.type,v)}}};return h(),()=>{l=!0,f!==null&&clearTimeout(f),u==null||u.close()}},[]);const d=c.useMemo(()=>({isConnected:s,subscribe:i,onReconnect:o}),[s,i,o]);return e.jsx(Ve.Provider,{value:d,children:t})}function Y(t,s){const n=c.useContext(Ve),r=c.useRef(s);c.useEffect(()=>{r.current=s},[s]),c.useEffect(()=>{if(n)return n.subscribe(t,a=>r.current(a))},[n,t])}function Gn(t){const s=c.useContext(Ve),n=c.useRef(t);c.useEffect(()=>{n.current=t},[t]),c.useEffect(()=>{if(s)return s.onReconnect(()=>n.current())},[s])}function Vn(){const[t,s]=c.useState([]),[n,r]=c.useState(0),a=c.useRef(!0),i=c.useCallback(async()=>{try{const f=await fetch("/api/notifications?limit=50&include_read=true");if(!f.ok)return;const l=await f.json();a.current&&(s(l),r(l.filter(h=>h.is_read===0).length))}catch{}},[]),o=c.useCallback(async f=>{s(l=>l.map(h=>h.id===f?{...h,is_read:1}:h)),r(l=>Math.max(0,l-1));try{(await fetch(`/api/notifications/${f}/read`,{method:"PATCH"})).ok||(s(h=>h.map(m=>m.id===f?{...m,is_read:0}:m)),r(h=>h+1))}catch{s(l=>l.map(h=>h.id===f?{...h,is_read:0}:h)),r(l=>l+1)}},[]),d=c.useCallback(async()=>{const f=t,l=n;s(h=>h.map(m=>({...m,is_read:1}))),r(0);try{(await fetch("/api/notifications/read-all",{method:"POST"})).ok||(s(f),r(l))}catch{s(f),r(l)}},[t,n]);c.useEffect(()=>(a.current=!0,i(),()=>{a.current=!1}),[i]),Gn(i),Y("new_notification",f=>{if(!f.notification||!a.current)return;const l=f.notification;s(h=>h.some(m=>m.id===l.id)?h:[l,...h]),r(h=>h+1)});const u=c.useCallback(async()=>{s([]),r(0);try{await fetch("/api/notifications",{method:"DELETE"})}catch{i()}},[i]);return{notifications:t,unreadCount:n,markAsRead:o,markAllAsRead:d,clearAll:u,refresh:i}}const Gt="pilot-memory-theme";function Kn(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function mt(){try{const t=localStorage.getItem(Gt);if(t==="system"||t==="light"||t==="dark")return t}catch(t){console.warn("Failed to read theme preference from localStorage:",t)}return"system"}function pt(t){return t==="system"?Kn():t}function xt(t){return t==="dark"?"pilot-shell":"pilot-shell-light"}function Vt(){const[t,s]=c.useState(mt),[n,r]=c.useState(()=>pt(mt()));return c.useEffect(()=>{const i=pt(t);r(i),document.documentElement.setAttribute("data-theme",xt(i))},[t]),c.useEffect(()=>{if(t!=="system")return;const i=window.matchMedia("(prefers-color-scheme: dark)"),o=d=>{const u=d.matches?"dark":"light";r(u),document.documentElement.setAttribute("data-theme",xt(u))};return i.addEventListener("change",o),()=>i.removeEventListener("change",o)},[t]),{preference:t,resolvedTheme:n,setThemePreference:i=>{try{localStorage.setItem(Gt,i),s(i)}catch(o){console.warn("Failed to save theme preference to localStorage:",o),s(i)}}}}const Kt=c.createContext(null);let Bn=0;function Wn({children:t}){const[s,n]=c.useState([]),r=c.useCallback(l=>{const h=`toast-${++Bn}`;return n(m=>[...m,{...l,id:h}]),h},[]),a=c.useCallback(l=>{n(h=>h.filter(m=>m.id!==l))},[]),i=c.useCallback(()=>{n([])},[]),o=c.useCallback((l,h)=>r({type:"success",message:l,title:h}),[r]),d=c.useCallback((l,h)=>r({type:"error",message:l,title:h,duration:8e3}),[r]),u=c.useCallback((l,h)=>r({type:"info",message:l,title:h}),[r]),f=c.useCallback((l,h)=>r({type:"warning",message:l,title:h,duration:7e3}),[r]);return e.jsxs(Kt.Provider,{value:{addToast:r,removeToast:a,clearAll:i,success:o,error:d,info:u,warning:f},children:[t,e.jsx(Nn,{toasts:s,onDismiss:a})]})}function Bt(){const t=c.useContext(Kt);if(!t)throw new Error("useToast must be used within a ToastProvider");return t}const le="pilot-memory-selected-project",Jn={selectedProject:null,projects:[],setSelectedProject:()=>{},setProjects:()=>{},refreshProjects:async()=>{}},Wt=c.createContext(Jn);function Qn({children:t}){const[s,n]=c.useState(()=>{try{return localStorage.getItem(le)||null}catch{return null}}),[r,a]=c.useState([]),i=c.useCallback(u=>{n(u);try{u?localStorage.setItem(le,u):localStorage.removeItem(le)}catch{}},[]),o=c.useCallback(u=>{a(u)},[]),d=c.useCallback(async()=>{try{const f=await(await fetch("/api/projects")).json(),l=f.projects||[],h=f.workspaceProject;a(l),n(m=>{if(m&&l.includes(m))return m;if(h&&l.includes(h)){try{localStorage.setItem(le,h)}catch{}return h}if(l.length>0){try{localStorage.setItem(le,l[0])}catch{}return l[0]}return m})}catch{}},[]);return c.useEffect(()=>{d()},[d]),c.useEffect(()=>{if(s&&r.length>0&&!r.includes(s)){const u=r[0]||null;i(u)}},[r,s,i]),e.jsx(Wt.Provider,{value:{selectedProject:s,projects:r,setSelectedProject:i,setProjects:o,refreshProjects:d},children:t})}function Z(){return c.useContext(Wt)}function ne(){const[t,s]=c.useState(()=>typeof window<"u"?bt(window.location.hash):{path:"/",params:{}});c.useEffect(()=>{if(typeof window>"u")return;const r=()=>{s(bt(window.location.hash))};return window.addEventListener("hashchange",r),()=>window.removeEventListener("hashchange",r)},[]);const n=c.useCallback(r=>{window.location.hash=r},[]);return{path:t.path,params:t.params,navigate:n}}function bt(t){const s=t.replace(/^#/,"")||"/",n={},[r,a]=s.split("?");return a&&new URLSearchParams(a).forEach((o,d)=>{n[d]=o}),{path:r,params:n}}function Yn({onToggleTheme:t,onToggleLogs:s}){const{resolvedTheme:n}=Vt(),[r,a]=c.useState(!1),[i,o]=c.useState(!1),{setSelectedProject:d,projects:u}=Z(),{navigate:f}=ne(),{notifications:l,unreadCount:h,markAsRead:m,markAllAsRead:b,clearAll:x}=Vn(),p=c.useCallback((v,g)=>{g&&u.includes(g)&&d(g),f(v)},[f,d,u]);c.useEffect(()=>{fetch("/api/auth/status").then(v=>v.json()).then(v=>{a(v.authRequired)}).catch(()=>{a(!1)})},[]);const j=async()=>{o(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{o(!1)}};return e.jsxs("div",{className:"flex items-center gap-2",children:[s&&e.jsx(Q,{text:"Toggle console logs",position:"bottom",children:e.jsx(W,{variant:"ghost",size:"sm",onClick:s,children:e.jsx(N,{icon:"lucide:terminal",size:18})})}),e.jsx(Q,{text:`Switch to ${n==="light"?"dark":"light"} mode`,position:"bottom",children:e.jsx(W,{variant:"ghost",size:"sm",onClick:t,children:e.jsx(N,{icon:n==="light"?"lucide:moon":"lucide:sun",size:18})})}),e.jsx(Q,{text:"Repository",position:"bottom",children:e.jsx("a",{href:"https://github.com/maxritter/pilot-shell",target:"_blank",rel:"noopener noreferrer",className:"btn btn-ghost btn-sm",children:e.jsx(N,{icon:"lucide:git-branch",size:18})})}),r&&e.jsx(Q,{text:"Logout",position:"bottom",children:e.jsx(W,{variant:"ghost",size:"sm",onClick:j,disabled:i,children:e.jsx(N,{icon:"lucide:log-out",size:18})})}),e.jsx(qn,{notifications:l,unreadCount:h,onMarkAsRead:m,onMarkAllAsRead:b,onClearAll:x,onNavigate:p})]})}const Xn=10080*60*1e3,gt=3,Zn={plan:"Plan",implement:"Impl",verify:"Verify"},ea={plan:"text-info",implement:"text-warning",verify:"text-accent"};function ta(t){const s=[],n=/^- \[(x| )\] Task (\d+):\s*(.+)$/gm;let r;for(;(r=n.exec(t))!==null;)s.push({number:parseInt(r[2],10),title:r[3],completed:r[1]==="x"});if(s.length===0){const a=/^### Task (\d+):\s*(.+)$/gm;let i;for(;(i=a.exec(t))!==null;)s.push({number:parseInt(i[1],10),title:i[2],completed:!1})}return s}function sa({spec:t,tasks:s,loading:n}){const r=s?s.findIndex(a=>!a.completed):-1;return e.jsxs("div",{className:"absolute top-full left-0 mt-1 z-50 w-72 rounded-lg border border-base-300 bg-base-100 shadow-xl p-3 text-xs invisible opacity-0 group-hover:visible group-hover:opacity-100 transition-opacity pointer-events-none",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-2 pb-2 border-b border-base-300/50",children:[t.specType&&e.jsx(N,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info"}),e.jsx("span",{className:"font-semibold truncate",children:t.name}),t.project&&e.jsxs("span",{className:"text-base-content/50 truncate",children:["· ",t.project]})]}),n&&!s&&e.jsx("div",{className:"text-base-content/50 italic",children:"Loading tasks…"}),s&&s.length===0&&e.jsx("div",{className:"text-base-content/50 italic",children:"No tasks yet"}),s&&s.length>0&&e.jsx("ul",{className:"space-y-1 max-h-60 overflow-y-auto",children:s.map((a,i)=>{const o=i===r;return e.jsxs("li",{className:`flex items-start gap-1.5 ${a.completed?"text-base-content/40 line-through":o?"text-primary font-medium":"text-base-content/80"}`,children:[e.jsx(N,{icon:a.completed?"lucide:check-circle":o?"lucide:play-circle":"lucide:circle",size:11,className:"flex-shrink-0 mt-0.5"}),e.jsxs("span",{className:"truncate",children:[a.number,". ",a.title]})]},a.number)})})]})}function na({spec:t,onClick:s,onRequestTasks:n,tasks:r,loadingTasks:a}){const i=t.status==="PENDING"&&!t.approved;return e.jsxs("div",{className:"relative group",onMouseEnter:n,onFocus:n,children:[e.jsxs("button",{onClick:s,className:`flex items-center gap-1.5 px-2.5 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs cursor-pointer whitespace-nowrap ${i?"animate-pulse":""}`,"aria-label":`${t.name}${t.specType?` (${t.specType})`:""}`,children:[t.specType&&e.jsx(N,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info","aria-label":t.specType}),t.project&&e.jsx("span",{className:"text-base-content/40 font-medium truncate max-w-20",children:t.project}),e.jsx("span",{className:"font-medium truncate max-w-28",children:t.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[t.completed,"/",t.total]}),e.jsx("span",{className:`font-medium ${ea[t.phase]||""}`,children:Zn[t.phase]||t.phase})]}),e.jsx(sa,{spec:t,tasks:r,loading:a})]})}function aa({specs:t,onPick:s}){return e.jsxs("div",{className:"dropdown dropdown-end dropdown-bottom",children:[e.jsxs("div",{tabIndex:0,role:"button",className:"px-2 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs font-medium cursor-pointer","aria-label":`${t.length} more specs`,children:["+",t.length]}),e.jsx("ul",{tabIndex:0,className:"dropdown-content menu bg-base-100 rounded-box z-50 w-72 p-2 shadow-lg border border-base-200 mt-1",children:t.map(n=>e.jsx("li",{children:e.jsxs("button",{onClick:()=>s(n),className:"flex items-center gap-2 text-xs",children:[n.specType&&e.jsx(N,{icon:n.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:n.specType==="Bugfix"?"text-error":"text-info"}),n.project&&e.jsx("span",{className:"text-base-content/40 truncate max-w-20",children:n.project}),e.jsx("span",{className:"font-medium truncate flex-1",children:n.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[n.completed,"/",n.total]})]})},n.filePath))})]})}function ra(){const[t,s]=c.useState([]),[n,r]=c.useState({}),[a,i]=c.useState({}),{setSelectedProject:o,projects:d}=Z(),{navigate:u}=ne(),f=c.useRef(),l=c.useCallback(async()=>{try{const p=await fetch("/api/plans/active/all");if(!p.ok)return;const v=(await p.json()).specs||[],g=Date.now();s(v.filter(S=>S.status!=="VERIFIED"&&g-new Date(S.modifiedAt).getTime()(l(),f.current=setInterval(l,1e4),()=>clearInterval(f.current)),[l]);const h=c.useCallback(async p=>{const j=n[p.filePath];if(!(j&&j.modifiedAt===p.modifiedAt)&&!a[p.filePath]){i(v=>({...v,[p.filePath]:!0}));try{const v=p.project?`&project=${encodeURIComponent(p.project)}`:"",g=await fetch(`/api/plan/content?path=${encodeURIComponent(p.filePath)}${v}`);if(!g.ok)return;const S=await g.json(),k=ta(S.content||"");r(P=>({...P,[p.filePath]:{modifiedAt:p.modifiedAt,tasks:k}}))}catch{}finally{i(v=>({...v,[p.filePath]:!1}))}}},[n,a]),m=c.useCallback(p=>{p.project&&d.includes(p.project)&&o(p.project);const j=encodeURIComponent(p.filePath);u(`/spec?path=${j}`)},[u,o,d]);if(t.length===0)return null;const b=t.slice(0,gt),x=t.slice(gt);return e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[b.map(p=>{var j;return e.jsx(na,{spec:p,onClick:()=>m(p),onRequestTasks:()=>h(p),tasks:((j=n[p.filePath])==null?void 0:j.tasks)||null,loadingTasks:!!a[p.filePath]},p.filePath)}),x.length>0&&e.jsx(aa,{specs:x,onPick:m})]})}function ia({onToggleTheme:t,onToggleLogs:s}){return e.jsxs("header",{className:"h-14 bg-base-100 border-b border-base-300/50 flex items-center px-6 gap-4",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(ra,{})}),e.jsx(Yn,{onToggleTheme:t,onToggleLogs:s})]})}function oa({children:t,currentPath:s,version:n,workerStatus:r,queueDepth:a,onToggleTheme:i,onToggleLogs:o,sidebarCollapsed:d,onToggleSidebar:u}){return e.jsxs("div",{className:"dashboard-layout flex h-screen",children:[e.jsx(On,{currentPath:s,version:n,workerStatus:r,queueDepth:a,collapsed:d,onToggleCollapse:u}),e.jsxs("div",{className:"flex-1 flex flex-col min-w-0 min-h-0",children:[e.jsx(ia,{onToggleTheme:i,onToggleLogs:o}),e.jsx("main",{className:"flex-1 p-6 overflow-y-auto min-h-0",children:t})]})]})}function ca({routes:t,fallback:s}){const{path:n}=ne();for(const r of t){const a=la(r.path,n);if(a){const i=r.component;return e.jsx(i,{...a.params})}}return s?e.jsx(e.Fragment,{children:s}):null}function la(t,s){if(t===s)return{params:{}};const n=t.split("/"),r=s.split("/");if(n.length!==r.length)return null;const a={};for(let i=0;i{const a=setTimeout(()=>{r.current||s(!0)},8e3);return()=>clearTimeout(a)},[]),e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Documentation"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Pilot Shell technical reference"})]}),e.jsxs("a",{href:Te,target:"_blank",rel:"noopener noreferrer",className:"btn btn-sm btn-ghost gap-1.5",children:[e.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})}),"Open in browser"]})]}),t?e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center space-y-3",children:[e.jsx("div",{className:"text-4xl",children:"📡"}),e.jsx("p",{className:"text-base-content/60 text-sm",children:"Could not load documentation."}),e.jsx("a",{href:Te,target:"_blank",rel:"noopener noreferrer",className:"btn btn-primary btn-sm",children:"Open docs in browser"})]})}):e.jsx("iframe",{ref:n,src:Te,title:"Pilot Shell Documentation",className:"flex-1 w-full rounded-xl border border-base-300 bg-base-100",style:{minHeight:"calc(100vh - 10rem)"},onLoad:()=>{var a;r.current=!0;try{const i=n.current;((a=i==null?void 0:i.contentDocument)==null?void 0:a.title)===""&&s(!0)}catch{}}})]})}const ua={observation:{icon:"lucide:brain",variant:"info",color:"text-info"},summary:{icon:"lucide:file-text",variant:"warning",color:"text-warning"},prompt:{icon:"lucide:message-square",variant:"secondary",color:"text-secondary"},bugfix:{icon:"lucide:bug",variant:"error",color:"text-error"},feature:{icon:"lucide:sparkles",variant:"ghost",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",variant:"accent",color:"text-accent"},discovery:{icon:"lucide:search",variant:"info",color:"text-info"},decision:{icon:"lucide:git-branch",variant:"warning",color:"text-warning"},change:{icon:"lucide:pencil",variant:"secondary",color:"text-secondary"}},ha={icon:"lucide:circle",variant:"secondary",color:"text-secondary"};function fa(t,s=50){return t.length<=s?t:t.slice(0,s)+"…"}function ma({memory:t,viewMode:s,onView:n,selectionMode:r,isSelected:a,onToggleSelection:i}){const o=ua[t.type]||ha,d=s==="grid",u=()=>{r?i==null||i(t.id):n==null||n(t.id)},f=l=>{l.stopPropagation(),t.sessionDbId&&(window.location.hash=`/sessions?selected=${t.sessionDbId}`)};return e.jsx(K,{className:`hover:shadow-md transition-shadow cursor-pointer ${d?"":"flex flex-row"} ${a?"ring-2 ring-primary":""}`,onClick:u,children:e.jsx(B,{className:d?"p-4":"flex flex-row items-start gap-4 flex-1 p-4",children:e.jsxs("div",{className:`flex items-start gap-3 ${d?"":"flex-1"}`,children:[r?e.jsx("div",{className:"flex items-center justify-center w-8 h-8 flex-shrink-0",children:e.jsx("input",{type:"checkbox",className:"checkbox checkbox-primary",checked:a,onChange:()=>i==null?void 0:i(t.id),onClick:l=>l.stopPropagation()})}):e.jsx("div",{className:`p-2 rounded-lg bg-base-200 ${o.color} shrink-0`,children:e.jsx(N,{icon:o.icon,size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[e.jsx(G,{variant:o.variant,size:"xs",children:t.type}),e.jsx("span",{className:"text-xs text-base-content/40 shrink-0",children:t.timestamp})]}),e.jsx("h3",{className:"font-medium text-sm line-clamp-2",children:t.title}),e.jsx("div",{className:"mt-1.5",children:t.sessionPrompt&&t.sessionDbId?e.jsxs("button",{onClick:f,className:"text-xs text-primary/70 hover:text-primary hover:underline truncate max-w-full block text-left transition-colors",title:`Session: ${t.sessionPrompt}`,children:[e.jsx(N,{icon:"lucide:terminal",size:11,className:"inline mr-1 -mt-0.5"}),fa(t.sessionPrompt)]}):e.jsx("span",{className:"text-xs text-base-content/30",children:"no session"})})]})]})})})}const pa={observation:{icon:"lucide:brain",variant:"info"},summary:{icon:"lucide:file-text",variant:"warning"},prompt:{icon:"lucide:message-square",variant:"secondary"},bugfix:{icon:"lucide:bug",variant:"error"},feature:{icon:"lucide:sparkles",variant:"success"},refactor:{icon:"lucide:refresh-cw",variant:"accent"},discovery:{icon:"lucide:search",variant:"info"},decision:{icon:"lucide:git-branch",variant:"warning"},change:{icon:"lucide:pencil",variant:"secondary"}};function xa({memory:t,onClose:s}){const n=t?pa[t.type]||{icon:"lucide:circle",variant:"secondary"}:{icon:"lucide:circle",variant:"secondary"};return e.jsx(be,{open:!!t,onClose:s,title:"Memory Details",children:t&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-2.5 rounded-lg bg-base-200 text-${n.variant}`,children:e.jsx(N,{icon:n.icon,size:20})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-base font-semibold leading-tight",children:t.title}),e.jsxs("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[e.jsx(G,{variant:n.variant,size:"sm",children:t.type}),e.jsxs("span",{className:"text-xs text-base-content/50 flex items-center gap-1",children:[e.jsx(N,{icon:"lucide:folder",size:11}),t.project]}),e.jsx("span",{className:"text-xs text-base-content/40",children:t.timestamp}),e.jsxs("span",{className:"text-xs text-base-content/40 font-mono",children:["#",t.id]})]}),t.concepts&&t.concepts.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 mt-2",children:t.concepts.map(r=>e.jsx(G,{variant:"ghost",size:"xs",children:r},r))})]})]}),e.jsx("div",{className:"bg-base-200 rounded-lg p-4 max-h-96 overflow-y-auto",children:t.facts&&t.facts.length>0?e.jsx("ul",{className:"text-sm space-y-2 list-disc list-inside",children:t.facts.map((r,a)=>e.jsx("li",{children:r},a))}):e.jsx("pre",{className:"text-sm whitespace-pre-wrap break-words",children:t.content||"No content available"})})]})})}function ba({onSearch:t,isSearching:s,placeholder:n="Search your memories semantically..."}){const[r,a]=c.useState(""),i=o=>{o.preventDefault(),r.trim()&&t(r.trim())};return e.jsxs("form",{onSubmit:i,className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(N,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:n,value:r,onChange:o=>a(o.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),e.jsx(W,{type:"submit",loading:s,disabled:!r.trim(),children:"Search"})]})}const ga={observation:{icon:"lucide:brain",variant:"info",label:"Observation"},summary:{icon:"lucide:file-text",variant:"warning",label:"Summary"},prompt:{icon:"lucide:message-square",variant:"secondary",label:"Prompt"},bugfix:{icon:"lucide:bug",variant:"error",label:"Bug Fix"},feature:{icon:"lucide:sparkles",variant:"success",label:"Feature"},refactor:{icon:"lucide:refresh-cw",variant:"accent",label:"Refactor"},discovery:{icon:"lucide:search",variant:"info",label:"Discovery"},decision:{icon:"lucide:git-branch",variant:"warning",label:"Decision"},change:{icon:"lucide:pencil",variant:"secondary",label:"Change"}},ja={icon:"lucide:circle",variant:"secondary",label:"Unknown"};function va(t){try{return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}function ya({result:t}){const s=t.obsType||t.type,n=ga[s]||ja,r=Math.round(t.score*100),a=i=>i>=.7?"text-success":i>=.4?"text-warning":"text-base-content/50";return e.jsx(K,{className:"hover:shadow-md transition-shadow",children:e.jsx(B,{children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(N,{icon:n.icon,size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(G,{variant:n.variant,size:"xs",children:n.label}),e.jsxs("span",{className:"text-xs text-base-content/50",children:["#",t.id]}),t.score>0&&e.jsxs("span",{className:`ml-auto text-xs font-mono ${a(t.score)}`,children:[r,"% match"]})]}),e.jsx("h3",{className:"font-medium truncate",children:t.title}),e.jsx("p",{className:"text-sm text-base-content/60 mt-1 line-clamp-2",children:t.content}),e.jsxs("div",{className:"flex items-center gap-4 mt-3 text-xs text-base-content/50",children:[t.project&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(N,{icon:"lucide:folder",size:12}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(N,{icon:"lucide:clock",size:12}),va(t.timestamp)]})]})]}),t.score>0&&e.jsxs("div",{className:"w-16 shrink-0 hidden sm:block",children:[e.jsx("div",{className:"h-2 bg-base-200 rounded-full overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full transition-all ${t.score>=.7?"bg-success":t.score>=.4?"bg-warning":"bg-base-content/30"}`,style:{width:`${r}%`}})}),e.jsx("div",{className:"text-[10px] text-center mt-1 text-base-content/50",children:"similarity"})]})]})})})}function Ce(){const{selectedProject:t,projects:s,setSelectedProject:n}=Z();return e.jsxs("div",{className:"relative inline-flex items-center",children:[e.jsx("select",{value:t??s[0]??"",onChange:r=>n(r.target.value),className:"select select-bordered select-sm text-xs font-normal pl-7 pr-8 min-w-[140px] max-w-[200px]",children:s.map(r=>e.jsx("option",{value:r,children:r},r))}),e.jsx(N,{icon:"lucide:folder",size:13,className:"absolute left-2.5 pointer-events-none text-base-content/40"})]})}const wa=12e4;function Na(){const{selectedProject:t}=Z(),[s,n]=c.useState(!1),[r,a]=c.useState([]),[i,o]=c.useState(!1),[d,u]=c.useState(null),[f,l]=c.useState(null),h=c.useRef(null),m=c.useRef(!1),b=c.useCallback(async p=>{var g;(g=h.current)==null||g.abort(),m.current=!1;const j=new AbortController;h.current=j;const v=setTimeout(()=>j.abort(),wa);o(!0),n(!0),u(null);try{const S=new URLSearchParams({query:p,limit:"30"});t&&S.set("project",t);const k=await fetch(`/api/search/semantic?${S}`,{signal:j.signal});if(!k.ok)throw new Error(`Search failed with status ${k.status}`);const P=await k.json();a(P.results||[]),l({usedSemantic:P.usedSemantic,vectorDbAvailable:P.vectorDbAvailable})}catch(S){if(m.current)return;S.name==="AbortError"?u("Search timed out. Please try again."):u("Search failed. Please try again."),a([]),l(null)}finally{clearTimeout(v),m.current||o(!1)}},[t]),x=c.useCallback(()=>{var p;m.current=!0,(p=h.current)==null||p.abort(),n(!1),a([]),l(null),u(null),o(!1)},[]);return c.useEffect(()=>()=>{var p;(p=h.current)==null||p.abort()},[]),{isSearchMode:s,searchResults:r,isSearching:i,searchError:d,searchMeta:f,handleSearch:b,handleClearSearch:x}}function jt(){var P;const{params:t}=ne(),[s,n]=c.useState([]),[r,a]=c.useState(!0),[i,o]=c.useState(null),d=t.id?Number(t.id):null,u=c.useRef(!1),{selectedProject:f}=Z(),{isSearchMode:l,searchResults:h,isSearching:m,searchError:b,searchMeta:x,handleSearch:p,handleClearSearch:j}=Na(),v=c.useCallback(async w=>{await p(w)},[p]),g=c.useCallback(async()=>{a(!0);try{const w=new URLSearchParams;f&&w.set("project",f),w.set("limit","50");const $=await(await fetch(`/api/observations?${w}`)).json(),E=$.items||$.observations||[];n(E.map(C=>({id:C.id,type:C.type||"observation",title:C.title||"Untitled",content:C.narrative||C.content||"",facts:C.facts?typeof C.facts=="string"?JSON.parse(C.facts):C.facts:[],project:C.project||"unknown",timestamp:S(C.created_at),concepts:C.concepts?typeof C.concepts=="string"?JSON.parse(C.concepts):C.concepts:[],sessionDbId:C.session_db_id??void 0,sessionPrompt:C.session_prompt??void 0})))}catch(w){console.error("Failed to fetch memories:",w)}finally{a(!1)}},[f]);function S(w){if(!w)return"";const R=new Date(w),E=new Date().getTime()-R.getTime();return E<6e4?"just now":E<36e5?`${Math.floor(E/6e4)}m ago`:E<864e5?`${Math.floor(E/36e5)}h ago`:R.toLocaleDateString()}c.useEffect(()=>{g()},[g]),c.useEffect(()=>{if(d&&!u.current&&!r&&s.length>0){const w=s.find(R=>R.id===d);w&&(u.current=!0,o(w))}},[d,r,s]);const k=w=>{const R=s.find($=>$.id===w);R&&o(R)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Memories"}),e.jsx(Ce,{}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Decisions, discoveries, and patterns from past sessions"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[l&&e.jsxs(W,{variant:"ghost",size:"sm",onClick:j,children:[e.jsx(N,{icon:"lucide:x",size:16,className:"mr-1"}),"Clear"]}),!l&&e.jsx(W,{variant:"ghost",size:"sm",onClick:g,children:e.jsx(N,{icon:"lucide:refresh-cw",size:16})})]})]}),!l&&e.jsxs("div",{className:"bg-base-200/40 rounded-xl p-4 space-y-2",children:[e.jsx("p",{className:"text-xs font-semibold text-base-content/50 uppercase tracking-wider",children:"How Memories Work"}),e.jsxs("div",{className:"grid sm:grid-cols-3 gap-3 text-sm text-base-content/60",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(N,{icon:"lucide:scan",size:14,className:"text-violet-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Capture"})," — hooks observe each session and send events to a background Haiku model that extracts decisions, discoveries, and patterns"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(N,{icon:"lucide:database",size:14,className:"text-sky-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Store"})," — observations are persisted in a local SQLite database with full-text and semantic search"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(N,{icon:"lucide:rotate-cw",size:14,className:"text-emerald-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Re-inject"})," — at session start, relevant memories are loaded back into context so Claude remembers your conventions and past decisions"]})]})]})]}),e.jsx(ba,{onSearch:v,isSearching:m,placeholder:"Search memories semantically..."}),b&&!m&&e.jsxs("div",{className:"alert alert-error",children:[e.jsx(N,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{children:b})]}),l?m?e.jsx(se,{}):b?null:h.length===0?e.jsx(Me,{icon:"lucide:search-x",title:"No results found",description:"Try a different query"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"text-sm text-base-content/60",children:[h.length," results",(x==null?void 0:x.usedSemantic)&&((P=h[0])==null?void 0:P.score)>0&&e.jsxs("span",{className:"ml-2",children:["(best match: ",Math.round(h[0].score*100),"% similarity)"]})]}),h.map(w=>e.jsx(ya,{result:w},`${w.type}-${w.id}`))]}):r?e.jsx(se,{}):s.length===0?e.jsx(Me,{icon:"lucide:brain",title:"No memories yet",description:"Memories are created automatically as you use Claude Code — decisions, discoveries, and patterns are captured in the background."}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:s.map(w=>e.jsx(ma,{memory:w,viewMode:"grid",onView:k,selectionMode:!1,isSelected:!1,onToggleSelection:()=>{}},w.id))}),e.jsx(xa,{memory:i,onClose:()=>o(null)})]})}const vt={active:{variant:"warning",icon:"lucide:play"},completed:{variant:"success",icon:"lucide:check"}};function Sa(t){return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function ka({sessionId:t}){const[s,n]=c.useState(!1),r=a=>{a.stopPropagation(),navigator.clipboard.writeText(t).then(()=>{n(!0),setTimeout(()=>n(!1),2e3)})};return e.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-2 py-0.5 rounded bg-base-200 hover:bg-base-300 transition-colors text-xs font-mono text-base-content/60 group",title:"Copy session ID for /resume",children:[e.jsx("span",{className:"truncate max-w-32",children:t}),e.jsx(N,{icon:s?"lucide:check":"lucide:copy",size:12,className:s?"text-success":"text-base-content/40 group-hover:text-base-content/70"})]})}function Ie({icon:t,value:s,label:n}){return e.jsxs("div",{className:"flex flex-col items-center min-w-[4.5rem]",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(N,{icon:t,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"font-semibold text-sm tabular-nums",children:s})]}),e.jsx("span",{className:"text-[10px] text-base-content/40 uppercase tracking-wider",children:n})]})}function Ca(t){return t<.01?"<$0.01":t<1?`$${t.toFixed(2)}`:`$${t.toFixed(2)}`}function Ea({session:t,isExpanded:s,onToggle:n,isResumed:r,costUsd:a}){const i=vt[t.status]||vt.active;return e.jsx(K,{className:`cursor-pointer hover:shadow-md transition-shadow ${s?"ring-2 ring-primary":""} ${t.status==="active"?"border-l-4 border-l-warning":""}`,onClick:n,children:e.jsx(B,{children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(N,{icon:i.icon,size:20,className:`text-${i.variant}`})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(G,{variant:i.variant,size:"sm",children:t.status}),r&&e.jsx(G,{variant:"info",size:"sm",children:"resumed"}),t.content_session_id&&e.jsx(ka,{sessionId:t.content_session_id})]}),e.jsx("h3",{className:"font-medium line-clamp-1",children:t.user_prompt||t.project||"Untitled Session"}),e.jsxs("div",{className:"flex items-center gap-4 mt-2 text-sm text-base-content/60",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(N,{icon:"lucide:folder",size:14}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(N,{icon:"lucide:calendar",size:14}),Sa(t.started_at)]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsx(Ie,{icon:"lucide:dollar-sign",value:a!=null?Ca(a):"—",label:"Cost"}),e.jsx(Ie,{icon:"lucide:messages-square",value:t.observation_count+t.prompt_count,label:"Messages"}),e.jsx(Ie,{icon:"lucide:message-square",value:t.prompt_count,label:"Prompts"}),e.jsx(N,{icon:s?"lucide:chevron-up":"lucide:chevron-down",size:20,className:"text-base-content/50 ml-1"})]})]})})})}const Le={prompt:{icon:"lucide:message-square",color:"text-primary"},observation:{icon:"lucide:brain",color:"text-info"},bugfix:{icon:"lucide:bug",color:"text-error"},feature:{icon:"lucide:sparkles",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",color:"text-accent"},discovery:{icon:"lucide:search",color:"text-info"},decision:{icon:"lucide:git-branch",color:"text-warning"},change:{icon:"lucide:pencil",color:"text-secondary"}};function Ra(t){return new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}function Pa({sessionId:t,skipHeader:s}){const[n,r]=c.useState(null),[a,i]=c.useState(!0),[o,d]=c.useState(new Set);c.useEffect(()=>{async function l(){i(!0);try{const m=await(await fetch(`/api/sessions/${t}/timeline`)).json();r(m)}catch(h){console.error("Failed to fetch timeline:",h)}finally{i(!1)}}l()},[t]);const u=l=>{d(h=>{const m=new Set(h);return m.has(l)?m.delete(l):m.add(l),m})};if(a)return e.jsx("div",{className:"space-y-3 animate-pulse py-4",children:Array.from({length:3}).map((l,h)=>e.jsx("div",{className:"h-16 bg-base-300/50 rounded-lg"},h))});if(!n)return e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"Failed to load timeline"});const f={active:"badge-success",completed:"badge-info",failed:"badge-error"};return e.jsxs("div",{className:"mt-4 space-y-4",children:[!s&&e.jsxs(e.Fragment,{children:[e.jsx(K,{className:"bg-base-200/50",children:e.jsxs(B,{className:"py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[e.jsx(G,{variant:"ghost",size:"sm",className:f[n.session.status]||"",children:n.session.status}),e.jsx("span",{className:"text-sm text-base-content/60",children:new Date(n.session.started_at).toLocaleString()}),n.session.completed_at&&e.jsxs("span",{className:"text-sm text-base-content/60",children:["→ ",new Date(n.session.completed_at).toLocaleString()]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(N,{icon:"lucide:message-square",size:14,className:"text-primary"}),e.jsx("span",{className:"font-medium",children:n.stats.prompts}),e.jsx("span",{className:"text-base-content/60",children:"prompts"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(N,{icon:"lucide:brain",size:14,className:"text-info"}),e.jsx("span",{className:"font-medium",children:n.stats.observations}),e.jsx("span",{className:"text-base-content/60",children:"observations"})]})]})]})}),n.session.user_prompt&&e.jsx(K,{className:"bg-primary/10 border-primary/30",children:e.jsxs(B,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(N,{icon:"lucide:terminal",size:16,className:"text-primary"}),e.jsx("span",{className:"font-medium text-sm",children:"Prompt"})]}),e.jsx("p",{className:"text-sm text-base-content/80 whitespace-pre-wrap",children:n.session.user_prompt})]})}),n.summary&&e.jsx(K,{className:"bg-warning/10 border-warning/30",children:e.jsxs(B,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(N,{icon:"lucide:file-text",size:16,className:"text-warning"}),e.jsx("span",{className:"font-medium text-sm",children:"Session Summary"}),e.jsx("span",{className:"text-xs text-base-content/50",children:new Date(n.summary.created_at).toLocaleTimeString()})]}),e.jsxs("div",{className:"space-y-3 text-sm",children:[n.summary.request&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-warning mb-1",children:"Request"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.request})]}),n.summary.investigated&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-info mb-1",children:"Investigated"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.investigated})]}),n.summary.learned&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-success mb-1",children:"Learned"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.learned})]}),n.summary.completed&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-primary mb-1",children:"Completed"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.completed})]}),n.summary.next_steps&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-accent mb-1",children:"Next Steps"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.next_steps})]})]})]})})]}),e.jsxs("div",{className:"ml-8 border-l-2 border-base-300 pl-6 space-y-4",children:[[...n.timeline].reverse().map((l,h)=>{var j,v;const m=`${l.type}-${l.id}`,b=o.has(m),x=l.type==="prompt"?Le.prompt:Le[l.data.type]||Le.observation;let p=[];if(l.type==="observation"&&l.data.concepts)try{p=JSON.parse(l.data.concepts)}catch{}return e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:`absolute -left-9 top-3 w-4 h-4 rounded-full border-2 border-base-100 ${l.type==="prompt"?"bg-primary":"bg-info"}`}),e.jsx(K,{className:"cursor-pointer hover:shadow-sm transition-shadow",onClick:g=>{g.stopPropagation(),u(m)},children:e.jsx(B,{className:"py-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-1.5 rounded bg-base-200 ${x.color}`,children:e.jsx(N,{icon:x.icon,size:14})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[e.jsx(G,{variant:l.type==="prompt"?"primary":"info",size:"xs",children:l.type==="prompt"?`prompt #${l.data.prompt_number||"?"}`:l.data.type||"observation"}),e.jsx("span",{className:"text-xs text-base-content/50",children:Ra(l.timestamp)}),e.jsxs("span",{className:"text-xs text-base-content/40",children:["#",l.id]}),p.length>0&&p.map(g=>e.jsx(G,{variant:"ghost",size:"xs",className:"text-base-content/50",children:g},g))]}),e.jsx("p",{className:"text-sm font-medium",children:l.type==="prompt"?((j=l.data.prompt_text)==null?void 0:j.length)>100?l.data.prompt_text.substring(0,100)+"...":l.data.prompt_text:l.data.title||"Untitled"}),l.type==="observation"&&l.data.narrative&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${b?"":"line-clamp-3"}`,children:l.data.narrative}),l.type==="prompt"&&((v=l.data.prompt_text)==null?void 0:v.length)>100&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${b?"whitespace-pre-wrap":"line-clamp-3"}`,children:b?l.data.prompt_text:l.data.prompt_text.substring(100)}),l.type==="observation"&&(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[l.data.files_read&&(()=>{try{const g=JSON.parse(l.data.files_read);if(g.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(N,{icon:"lucide:file",size:12,className:"inline mr-1"}),g.length," read"]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const g=JSON.parse(l.data.files_modified);if(g.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(N,{icon:"lucide:pencil",size:12,className:"inline mr-1"}),g.length," modified"]})}catch{return null}})()]}),b&&l.type==="observation"&&l.data.text&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-base-200",children:[e.jsx("p",{className:"text-sm text-base-content/70 whitespace-pre-wrap",children:l.data.text}),(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"mt-3 space-y-1",children:[l.data.files_read&&(()=>{try{const g=JSON.parse(l.data.files_read);if(g.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Read:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:g.map((S,k)=>e.jsx("div",{className:"truncate",children:S},k))})]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const g=JSON.parse(l.data.files_modified);if(g.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Modified:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:g.map((S,k)=>e.jsx("div",{className:"truncate",children:S},k))})]})}catch{return null}})()]})]})]}),e.jsx(N,{icon:b?"lucide:chevron-up":"lucide:chevron-down",size:16,className:"text-base-content/40"})]})})})]},m)}),n.timeline.length===0&&e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No activity in this session"})]})]})}function Ta(t){return t<.01?"<$0.01":`$${t.toFixed(2)}`}const Ia={Read:"lucide:file",Write:"lucide:file-plus",Edit:"lucide:file-edit",Bash:"lucide:terminal",Glob:"lucide:folder-search",Grep:"lucide:search",Agent:"lucide:bot",WebSearch:"lucide:globe",WebFetch:"lucide:download",AskUserQuestion:"lucide:message-circle",TaskCreate:"lucide:list-plus",TaskUpdate:"lucide:list-checks"};function ye({label:t,value:s,icon:n}){return e.jsxs("div",{className:"bg-base-200/50 rounded-lg px-3 py-2.5 text-center",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1.5 mb-0.5",children:[e.jsx(N,{icon:n,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"text-[10px] text-base-content/50 uppercase tracking-wider",children:t})]}),e.jsx("div",{className:"text-base font-semibold tabular-nums",children:s})]})}function La({tools:t}){const s=Object.entries(t);if(s.length===0)return e.jsx(e.Fragment,{});const n=Math.max(...s.map(([,u])=>u)),r=s.slice(0,20),a=Math.ceil(r.length/2),i=r.slice(0,a),o=r.slice(a),d=([u,f])=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(N,{icon:Ia[u]||"lucide:wrench",size:13,className:"text-base-content/40 shrink-0"}),e.jsx("span",{className:"text-sm w-28 truncate",title:u,children:u}),e.jsx("div",{className:"flex-1 h-1.5 bg-base-300 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-info rounded-full transition-all",style:{width:`${f/n*100}%`}})}),e.jsx("span",{className:"text-xs tabular-nums text-base-content/50 w-8 text-right",children:f})]},u);return e.jsxs("div",{className:"grid grid-cols-2 gap-x-6 gap-y-1.5",children:[e.jsx("div",{className:"space-y-1.5",children:i.map(d)}),e.jsx("div",{className:"space-y-1.5",children:o.map(d)}),s.length>20&&e.jsxs("span",{className:"col-span-2 text-xs text-base-content/40 mt-1",children:["+ ",s.length-20," more tools"]})]})}function Aa({session:t,open:s,onClose:n,onResumedDetected:r}){const[a,i]=c.useState(null),[o,d]=c.useState(null),[u,f]=c.useState(!0),[l,h]=c.useState(!0),m=c.useRef(r);m.current=r,c.useEffect(()=>{if(!s)return;let p=!1;async function j(){var v;f(!0);try{const[g,S]=await Promise.all([fetch(`/api/sessions/${t.id}/stats`),fetch(`/api/sessions/${t.id}/timeline`)]);if(!p){if(g.ok){const k=await g.json();k.stats?(i(k.stats),h(!0),(v=m.current)==null||v.call(m,k.stats.is_resumed)):h(!1)}else h(!1);if(S.ok){const k=await S.json();d(k.session??null)}}}catch{p||h(!1)}finally{p||f(!1)}}return j(),()=>{p=!0}},[t.id,s]);const b=a?Object.entries(a.models):[],x=(o==null?void 0:o.status)==="active"||t.status==="active";return e.jsx(be,{open:s,onClose:n,title:"Session Details",size:"wide",children:e.jsxs("div",{className:"max-h-[70vh] overflow-y-auto space-y-4 pr-1",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap text-sm",children:[e.jsx(G,{variant:x?"warning":"success",size:"sm",children:x?"active":"completed"}),(a==null?void 0:a.is_resumed)&&e.jsx(G,{variant:"info",size:"sm",children:"resumed"}),e.jsx("span",{className:"text-base-content/50",children:o?new Date(o.started_at).toLocaleString():new Date(t.started_at).toLocaleString()}),(o==null?void 0:o.completed_at)&&e.jsxs("span",{className:"text-base-content/40",children:["→ ",new Date(o.completed_at).toLocaleString()]}),b.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-base-content/20",children:"|"}),b.map(([p,j])=>e.jsxs(G,{variant:"ghost",size:"sm",children:[p.replace("claude-","").replace(/-\d{8}$/,"")," (",j,")"]},p))]})]}),u?e.jsx("div",{className:"grid grid-cols-4 gap-3 animate-pulse",children:Array.from({length:4}).map((p,j)=>e.jsx("div",{className:"bg-base-300/50 rounded-lg h-14"},j))}):a?e.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[e.jsx(ye,{label:"Cost",value:Ta(a.cost_usd),icon:"lucide:dollar-sign"}),e.jsx(ye,{label:"Messages",value:String(a.turns),icon:"lucide:messages-square"}),e.jsx(ye,{label:"Observations",value:String(t.observation_count),icon:"lucide:brain"}),e.jsx(ye,{label:"Prompts",value:String(t.prompt_count),icon:"lucide:message-square"})]}):l?null:e.jsxs("div",{className:"text-sm text-base-content/40 text-center py-2",children:[e.jsx(N,{icon:"lucide:file-x",size:16,className:"inline mr-2"}),"JSONL file not available — showing timeline data only"]}),t.user_prompt&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(N,{icon:"lucide:terminal",size:14,className:"text-primary"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Prompt"})]}),e.jsx("p",{className:"text-sm whitespace-pre-wrap break-words text-base-content/80",children:t.user_prompt})]}),a&&Object.keys(a.tools).length>0&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(N,{icon:"lucide:wrench",size:14,className:"text-info"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Tool Usage"})]}),e.jsx(La,{tools:a.tools})]}),e.jsx(Pa,{sessionId:t.id,skipHeader:!0})]})})}const _a=[{key:"date",label:"Date",icon:"lucide:calendar"},{key:"cost",label:"Cost",icon:"lucide:dollar-sign"},{key:"messages",label:"Messages",icon:"lucide:messages-square"},{key:"prompts",label:"Prompts",icon:"lucide:message-square"}];function yt(t,s,n){switch(s){case"date":return t.started_at_epoch;case"cost":return n[t.id]??0;case"messages":return t.observation_count+t.prompt_count;case"prompts":return t.prompt_count}}function Da(){const{params:t}=ne(),[s,n]=c.useState([]),[r,a]=c.useState(!0),[i,o]=c.useState(null),[d,u]=c.useState(""),[f,l]=c.useState("date"),[h,m]=c.useState("desc"),[b,x]=c.useState({}),{selectedProject:p,setSelectedProject:j}=Z(),v=c.useRef(null),[g,S]=c.useState(new Set),k=c.useCallback(async E=>{a(!0);try{const C=new URLSearchParams;C.set("limit","50"),p&&C.set("project",p),E&&C.set("search",E);const A=(await(await fetch(`/api/sessions?${C}`)).json()).items||[];if(n(A),A.length>0){const F=A.map(U=>U.id);fetch("/api/sessions/costs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:F})}).then(U=>U.json()).then(U=>x(U.costs||{})).catch(()=>{})}}catch(C){console.error("Failed to fetch sessions:",C)}finally{a(!1)}},[p]);c.useEffect(()=>{k(d||void 0)},[k,d]),c.useEffect(()=>{if(!t.selected||r)return;const E=Number(t.selected),C=s.find(I=>I.id===E);C?(o(C),p&&C.project!==p&&j(C.project)):p&&s.length>0&&j(null)},[t.selected,r,s,p,j]);const P=E=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{u(E)},300)},w=c.useCallback(E=>{S(C=>{if(!i||C.has(i.id)||!E)return C;const I=new Set(C);return I.add(i.id),I})},[i]),R=E=>{f===E?m(C=>C==="desc"?"asc":"desc"):(l(E),m("desc"))},$=c.useMemo(()=>{const E=[],C=[];for(const A of s)A.status==="active"?E.push(A):C.push(A);const I=h==="desc"?-1:1,T=(A,F)=>I*(yt(A,f,b)-yt(F,f,b));return E.sort(T),C.sort(T),[...E,...C]},[s,f,h,b]);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Sessions"}),e.jsx(Ce,{}),e.jsxs("span",{className:"text-xs text-base-content/50",children:[s.length," session",s.length!==1?"s":""]}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Browse past sessions · copy session ID to resume"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(W,{variant:"ghost",size:"sm",onClick:()=>k(d||void 0),children:e.jsx(N,{icon:"lucide:refresh-cw",size:16})})})]}),e.jsxs("div",{className:"relative",children:[e.jsx(N,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:"Search sessions by prompt, project, or session ID...",onChange:E=>P(E.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),r?e.jsx(se,{}):s.length===0?e.jsx(Me,{icon:"lucide:history",title:d?"No matching sessions":"No sessions found",description:d?"Try a different search query":"Sessions will appear here as you use Claude Code"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-end gap-1 pr-2",children:[e.jsx("span",{className:"text-xs text-base-content/40 mr-2",children:"Sort by:"}),_a.map(({key:E,label:C,icon:I})=>{const T=f===E;return e.jsxs("button",{onClick:()=>R(E),className:`flex items-center gap-1 px-2.5 py-1 rounded text-xs transition-colors ${T?"bg-primary/10 text-primary font-medium":"text-base-content/50 hover:text-base-content/80 hover:bg-base-200"}`,children:[e.jsx(N,{icon:I,size:12}),C,T&&e.jsx(N,{icon:h==="desc"?"lucide:arrow-down":"lucide:arrow-up",size:12})]},E)})]}),$.map(E=>e.jsx("div",{id:`session-${E.id}`,children:e.jsx(Ea,{session:E,isExpanded:(i==null?void 0:i.id)===E.id,onToggle:()=>o((i==null?void 0:i.id)===E.id?null:E),isResumed:g.has(E.id),costUsd:b[E.id]})},E.id))]}),i&&e.jsx(Aa,{session:i,open:!!i,onClose:()=>o(null),onResumedDetected:w})]})}const me={reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{branchIsolation:!0,askQuestionsDuringPlanning:!0,planApproval:!0,modelSwitch:!0}};function $a(){const[t,s]=c.useState(me),[n,r]=c.useState(!0),[a,i]=c.useState(null),[o,d]=c.useState(!1),[u,f]=c.useState(!1);c.useEffect(()=>{fetch("/api/settings").then(x=>{if(!x.ok)throw new Error(`API error: ${x.status}`);return x.json()}).then(x=>{s({...me,...x}),r(!1)}).catch(x=>{i(x.message||"Failed to load settings"),r(!1)})},[]);const l=c.useCallback((x,p)=>{s(j=>({...j,reviewerAgents:{...j.reviewerAgents,[x]:p}})),d(!0),f(!1)},[]),h=c.useCallback((x,p)=>{s(j=>({...j,codexReviewers:{...j.codexReviewers,[x]:p}})),d(!0),f(!1)},[]),m=c.useCallback((x,p)=>{s(j=>({...j,specWorkflow:{...j.specWorkflow,[x]:p}})),d(!0),f(!1)},[]),b=c.useCallback(async()=>{await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(x=>{if(!x.ok)throw new Error(`Save failed: ${x.status}`);return x.json()}).then(x=>{s(x),d(!1),f(!0)})},[t]);return{settings:t,isLoading:n,error:a,isDirty:o,saved:u,updateReviewerAgent:l,updateCodexReviewer:h,updateSpecWorkflow:m,save:b}}const Oa=[{key:"model-switch",label:"Model Switching",toggleKey:"modelSwitch",description:"Pause after planning to switch models before implementation. When off, the workflow runs continuously on the active model."},{key:"plan-approval",label:"Plan Approval",toggleKey:"planApproval",description:"Require explicit approval after planning before implementation starts. When off, implementation begins automatically when the plan is ready."},{key:"branch-isolation",label:"Branch Isolation",toggleKey:"branchIsolation",description:"Ask whether to isolate /spec changes in a new branch or worktree. When off, /spec always works on the current branch without prompting."},{key:"ask-questions",label:"Ask Questions",toggleKey:"askQuestionsDuringPlanning",description:"Ask clarifying questions during planning to refine scope. When off, planning runs fully autonomous without any user input."}],Ma=[{key:"spec-review",label:"Spec Review",toggleKey:"specReview",description:"Validates plans before implementation. Checks alignment with requirements and flags risky assumptions in a separate context window."},{key:"changes-review",label:"Changes Review",toggleKey:"changesReview",description:"Reviews code after implementation. Audits compliance, security, test coverage, and goal achievement in a separate context window."}],za=[{key:"codex-spec-review",label:"Codex Spec Review",toggleKey:"specReview",description:"Adversarial plan review powered by OpenAI Codex. Provides an independent second opinion that challenges plan assumptions before implementation."},{key:"codex-changes-review",label:"Codex Changes Review",toggleKey:"changesReview",description:"Adversarial code review powered by OpenAI Codex. Provides an independent second opinion that audits implementations against the plan."}];function Jt({children:t}){return e.jsx("h2",{className:"text-lg font-bold text-base-content mb-3 pb-2 border-b border-base-300/60",children:t})}function Ae({children:t}){return e.jsx("div",{className:"text-[0.78rem] font-semibold text-base-content/70 uppercase tracking-[0.08em] mb-2 mt-1",children:t})}const de=41777,pe=1024,xe=65535;function Fa({settings:t,updateReviewerAgent:s,updateCodexReviewer:n,updateSpecWorkflow:r}){return e.jsxs("section",{children:[e.jsx(Jt,{children:"Spec Workflow"}),e.jsx(Ae,{children:"Automation"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-2 mb-4",children:Oa.map(a=>{var o;const i=((o=t.specWorkflow)==null?void 0:o[a.toggleKey])??me.specWorkflow[a.toggleKey];return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${i?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:i,onChange:d=>r(a.toggleKey,d.target.checked),id:`toggle-${a.key}`,"aria-label":a.label}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:a.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:a.description})]})]})},a.key)})}),e.jsx(Ae,{children:"Review Agents"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-2 mb-4",children:Ma.map(a=>{var o;const i=((o=t.reviewerAgents)==null?void 0:o[a.toggleKey])??me.reviewerAgents[a.toggleKey];return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${i?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:i,onChange:d=>s(a.toggleKey,d.target.checked),id:`toggle-${a.key}`,"aria-label":`Enable ${a.label} agent`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:a.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:a.description})]})]})},a.key)})}),e.jsx(Ae,{children:"Codex Reviewers"}),e.jsx("div",{className:`grid grid-cols-1 md:grid-cols-2 gap-2 ${t.codexAvailable?"":"opacity-50"}`,children:za.map(a=>{var o;const i=t.codexAvailable&&(((o=t.codexReviewers)==null?void 0:o[a.toggleKey])??me.codexReviewers[a.toggleKey]);return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${i?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:i,onChange:d=>n(a.toggleKey,d.target.checked),disabled:!t.codexAvailable,id:`toggle-${a.key}`,"aria-label":`Enable ${a.label}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:a.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:a.description})]})]})},a.key)})}),!t.codexAvailable&&e.jsxs("div",{className:"text-xs text-base-content/40 mt-2 pl-1",children:["Codex reviewers require the Codex plugin. Install:"," ",e.jsx("code",{className:"text-base-content/60",children:"claude plugin install @openai/codex"})," ","then run ",e.jsx("code",{className:"text-base-content/60",children:"/codex:setup"})," ","and restart Pilot."]})]})}function Ua({workerPort:t,consoleDefaultPort:s,isSavingConsole:n,consoleError:r,consoleSaved:a,isConsoleDirty:i,setWorkerPort:o,setConsoleSaved:d,setConsoleError:u,handleSaveConsole:f,handleResetConsolePort:l}){return e.jsxs("section",{className:"flex flex-col",children:[e.jsx(Jt,{children:"Console"}),e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-4 py-3.5 flex-1 flex flex-col gap-3",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4 flex-wrap",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("label",{htmlFor:"worker-port",className:"text-sm font-semibold leading-tight block",children:"Worker Port"}),e.jsxs("p",{className:"text-xs text-base-content/55 mt-1 leading-relaxed",children:["Shared by the Console worker, MCP server, statusline, hooks, and installer. Restart Pilot to apply (range ",pe,"–",xe,")."]})]}),e.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[e.jsxs("div",{className:"flex items-stretch rounded-md border border-base-300 bg-base-100 overflow-hidden font-mono text-sm h-8 focus-within:border-primary/60 focus-within:ring-1 focus-within:ring-primary/40",children:[e.jsx("span",{className:"px-2 flex items-center text-base-content/55 select-none border-r border-base-300",children:"http://localhost:"}),e.jsx("input",{id:"worker-port",type:"number",min:pe,max:xe,step:1,"aria-label":"Worker port number",className:"w-20 bg-transparent border-0 outline-none px-2 text-base-content tabular-nums",value:t,onChange:h=>{const m=parseInt(h.target.value,10);o(Number.isNaN(m)?0:m),d(!1),u(null)}})]}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-sm",onClick:l,disabled:t===s,title:`Reset to default (${s})`,children:"Reset"}),e.jsx("button",{className:`btn btn-primary btn-sm ${n?"loading":""}`,onClick:f,disabled:n||!i||!Number.isInteger(t)||txe,children:n?"Saving...":"Save"})]})]}),r&&e.jsx("div",{className:"text-xs text-error",children:r}),a&&!i&&!r&&e.jsx("div",{className:"text-xs text-success",children:"✓ Saved — restart Pilot for the new port to take effect."})]})]})}function qa(){const{settings:t,isLoading:s,error:n,isDirty:r,updateReviewerAgent:a,updateCodexReviewer:i,updateSpecWorkflow:o,save:d}=$a(),[u,f]=c.useState(null),[l,h]=c.useState(!1),[m,b]=c.useState(!1),[x,p]=c.useState(!1),[j,v]=c.useState(null),[g,S]=c.useState(de),[k,P]=c.useState(de),[w,R]=c.useState(de),[$,E]=c.useState(!1),[C,I]=c.useState(null),[T,A]=c.useState(!1);c.useEffect(()=>{fetch("/api/console-settings").then(D=>D.ok?D.json():null).then(D=>{if(!D)return;const y=typeof D.workerPort=="number"?D.workerPort:de,L=typeof D.defaultPort=="number"?D.defaultPort:de;S(y),P(y),R(L)}).catch(()=>{})},[]);const F=g!==k,U=async()=>{if(I(null),A(!1),!Number.isInteger(g)||gxe){I(`Port must be an integer between ${pe} and ${xe}`);return}E(!0);try{const D=await fetch("/api/console-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({workerPort:g})});if(!D.ok){const O=await D.json().catch(()=>null);throw new Error((O==null?void 0:O.error)??`Save failed: ${D.status}`)}const y=await D.json(),L=typeof y.workerPort=="number"?y.workerPort:g;P(L),S(L),A(!0),b(!0)}catch(D){I(D instanceof Error?D.message:"Failed to save")}finally{E(!1)}},_=()=>{S(w),A(!1),I(null)},M=c.useRef(!1),z=c.useRef(!1);c.useEffect(()=>{M.current=r||F},[r,F]);const q=async()=>{h(!0),f(null);try{await d(),b(!0)}catch(D){f(D instanceof Error?D.message:"Failed to save")}finally{h(!1)}};c.useEffect(()=>{const D=y=>{M.current&&y.preventDefault()};return window.addEventListener("beforeunload",D),()=>window.removeEventListener("beforeunload",D)},[]),c.useEffect(()=>{const D=()=>{if(z.current){z.current=!1;return}if(!M.current)return;const y=(window.location.hash.replace(/^#/,"")||"/").split("?")[0];y.startsWith("/settings")||(z.current=!0,history.replaceState(null,"","#/settings"),window.dispatchEvent(new HashChangeEvent("hashchange")),v("#"+y),p(!0))};return window.addEventListener("hashchange",D),()=>window.removeEventListener("hashchange",D)},[]);const H=()=>{p(!1),M.current=!1,j&&(window.location.hash=j)},V=()=>{p(!1),v(null)};return s?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"card bg-base-200 animate-pulse",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-3"}),e.jsx("div",{className:"h-8 bg-base-300 rounded w-48"})]})})]}):n?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"alert alert-error",children:e.jsxs("span",{children:["Failed to load settings: ",n]})})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Spec workflow and console port"})]}),e.jsx("button",{className:`btn btn-primary btn-sm flex-shrink-0 ${l?"loading":""}`,onClick:q,disabled:l||!r,children:l?"Saving...":r?"Save Changes":"Saved"})]}),u&&e.jsx("div",{className:"alert alert-error py-2",children:e.jsx("span",{children:u})}),e.jsxs("div",{className:"space-y-6 max-w-4xl",children:[e.jsx(Fa,{settings:t,updateReviewerAgent:a,updateCodexReviewer:i,updateSpecWorkflow:o}),e.jsx(Ua,{workerPort:g,consoleDefaultPort:w,isSavingConsole:$,consoleError:C,consoleSaved:T,isConsoleDirty:F,setWorkerPort:S,setConsoleSaved:A,setConsoleError:I,handleSaveConsole:U,handleResetConsolePort:_})]}),e.jsxs(be,{open:m,onClose:()=>b(!1),title:"Settings Saved",actions:e.jsx("button",{className:"btn btn-primary btn-sm",onClick:()=>b(!1),children:"Got it"}),children:[e.jsx("p",{children:"Your settings have been saved successfully."}),e.jsx("p",{className:"mt-2 font-medium text-warning",children:"Please restart Claude Code for changes to take effect."})]}),e.jsx(be,{open:x,onClose:V,title:"Unsaved Changes",actions:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:V,children:"Stay"}),e.jsx("button",{className:"btn btn-error btn-sm",onClick:H,children:"Leave"})]}),children:e.jsx("p",{children:"You have unsaved settings changes. Are you sure you want to leave this page?"})})]})}const Qt=/^[A-Za-z0-9]{8}$/,Ha="https://pilot-shell.com",Ga="https://pilot-shell.com/s";async function Va(t){const s=`/api/annotations?path=${encodeURIComponent(t.planPath)}${t.projectParam}`;let n;try{n=await t.fetcher(s)}catch{return null}if(!n.ok)return null;let r;try{r=await n.json()}catch{return null}return typeof r.shareId!="string"||!Qt.test(r.shareId)||typeof r.shareCreatedAt!="number"?null:{shareId:r.shareId,shareCreatedAt:r.shareCreatedAt}}async function Ka(t){const s=`/api/annotations/set-share-id?path=${encodeURIComponent(t.planPath)}${t.projectParam}`;try{await t.fetcher(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({shareId:t.shareId,shareCreatedAt:t.shareCreatedAt})})}catch{}}async function Ba(t){const s=await t.fetcher(`${Ha}/api/share`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:t.data})});if(!s.ok)throw new Error(`mint failed: HTTP ${s.status}`);const n=await s.json();if(typeof n.id!="string"||!Qt.test(n.id))throw new Error("mint failed: invalid id in response");return{shareId:n.id,shareCreatedAt:Date.now()}}const we=new Map;async function Wa(t){const s=`${t.planPath}${t.projectParam}`,n=we.get(s);if(n)return n;const r=(async()=>{const a=await Va({planPath:t.planPath,projectParam:t.projectParam,fetcher:t.fetcher});if(a)return a;const i=await t.buildSharePayload();if(!i)throw new Error("buildSharePayload returned no data");const o=await Ba({data:i,fetcher:t.fetcher});return await Ka({planPath:t.planPath,projectParam:t.projectParam,shareId:o.shareId,shareCreatedAt:o.shareCreatedAt,fetcher:t.fetcher}),o})();return we.set(s,r),r.catch(()=>{we.get(s)===r&&we.delete(s)}),await r}function Ja(t){return`${Ga}/${t}`}const wt={shareUrl:null,isLoading:!1,error:null};function Qa({isOpen:t,onClose:s,specContent:n,annotations:r,planPath:a,projectParam:i="",contentType:o="specification",onCopied:d,onPersisted:u}){const{success:f,error:l}=Bt(),[h,m]=c.useState(wt),b=c.useRef(null),x=c.useRef(null);c.useEffect(()=>{if(!t){m(wt);return}let v=!1;return m({shareUrl:null,isLoading:!0,error:null}),(async()=>{try{const g=await Wa({planPath:a,projectParam:i,fetcher:((...S)=>fetch(...S)),buildSharePayload:async()=>{if(typeof CompressionStream>"u")throw new Error("Browser missing CompressionStream — upgrade Chrome/Firefox/Safari.");const S=await Ya(),k={specContent:n,annotations:r.map(w=>({id:w.id,blockId:w.blockId,originalText:w.originalText,text:w.text,createdAt:w.createdAt})),author:S,planPath:a,...o!=="specification"?{contentType:o}:{},createdAt:Date.now()},{compress:P}=await X(async()=>{const{compress:w}=await import("./compress.js");return{compress:w}},[],import.meta.url);return await P(JSON.stringify(k))}});if(v)return;m({shareUrl:Ja(g.shareId),isLoading:!1,error:null}),u==null||u(g.shareId,g.shareCreatedAt)}catch(g){if(v)return;m({shareUrl:null,isLoading:!1,error:g.message||"Failed to prepare share link."})}})(),()=>{v=!0}},[t]),c.useEffect(()=>{var g,S;const v=b.current;v&&(t?(g=v.showModal)==null||g.call(v):(S=v.close)==null||S.call(v))},[t]);const p=async()=>{if(h.shareUrl)try{await navigator.clipboard.writeText(h.shareUrl),f("Share link copied to clipboard"),d?d():s()}catch{l("Failed to copy to clipboard")}},j=v=>{v.key==="Escape"&&s()};return e.jsx("dialog",{ref:b,className:"modal",onKeyDown:j,onClick:v=>{v.target===b.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(N,{icon:"lucide:share-2",size:18,className:"text-primary"}),e.jsxs("h3",{className:"text-lg font-semibold",children:["Share ",o==="requirement"?"Requirement":"Specification"," for Feedback"]}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(N,{icon:"lucide:x",size:16})})]}),h.isLoading&&e.jsxs("div",{className:"flex items-center gap-3 py-6 justify-center",children:[e.jsx("span",{className:"loading loading-spinner loading-sm text-primary"}),e.jsx("span",{className:"text-sm text-base-content/60",children:"Preparing share link…"})]}),!h.isLoading&&h.error&&e.jsxs("div",{className:"alert alert-error mb-4",children:[e.jsx(N,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{className:"text-sm",children:h.error})]}),!h.isLoading&&h.shareUrl&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Persistent share link"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:x,type:"text",readOnly:!0,value:h.shareUrl,className:"input input-bordered input-sm flex-1 font-mono text-xs",onClick:()=>{var v;return(v=x.current)==null?void 0:v.select()}}),e.jsxs("button",{className:"btn btn-primary btn-sm gap-1",onClick:()=>void p(),children:[e.jsx(N,{icon:"lucide:copy",size:14}),"Copy"]})]}),e.jsx("p",{className:"text-[10px] text-base-content/50 mt-2",children:"This link stays the same for this spec — every teammate sends their feedback back to the same address, and your Console picks it up automatically."})]}),e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(N,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Compressed markdown is stored on pilot-shell.com for up to a week. Anyone with the link can view — no Pilot Shell install required."})]})]})]})})}async function Ya(){try{const t=await fetch("/api/license");if(t.ok){const s=await t.json();if(s.email)return s.email}}catch{}return"Anonymous"}const Xa=10080*60*1e3,Za="https://pilot-shell.com/s";function er(t,s){const n=s-t,r=Xa-n;return r<=0?0:Math.floor(r/864e5)}function tr(t){const s=t.filter(i=>!!i.author),n=new Map;for(const i of s)n.set(i.author,(n.get(i.author)??0)+1);const r=Array.from(n.keys()),a=r.map(i=>({author:i,count:n.get(i)})).sort((i,o)=>o.count-i.count);return{reviewers:r,reviewerCount:r.length,annotationCount:s.length,perAuthor:a}}function sr({planPath:t,specContent:s,annotations:n,contentType:r="specification",projectParam:a="",layout:i="inline"}){const[o,d]=c.useState({loaded:!1,planAnnotations:[]}),[u,f]=c.useState(!1),[l,h]=c.useState(!1),{success:m,error:b,info:x}=Bt(),p=c.useCallback(async()=>{try{const R=await fetch(`/api/annotations?path=${encodeURIComponent(t)}${a}`);if(!R.ok){d(E=>({...E,loaded:!0}));return}const $=await R.json();d({shareId:$.shareId,shareCreatedAt:$.shareCreatedAt,planAnnotations:$.planAnnotations??[],loaded:!0})}catch{d(R=>({...R,loaded:!0}))}},[t,a]);c.useEffect(()=>{let R=!1;return p().then(()=>{}),()=>{R=!0}},[p]),Y("feedback_appended",R=>{R.plan_path===t&&p()}),Y("share_expired",R=>{R.plan_path===t&&(d({loaded:!0,planAnnotations:[]}),x("Share link expired — generate a new one to keep collecting feedback."))});const j=c.useCallback((R,$)=>{d(E=>({...E,shareId:R,shareCreatedAt:$,loaded:!0}))},[]);if(!o.loaded)return null;if(!o.shareId||!o.shareCreatedAt)return e.jsxs("div",{className:"flex items-center justify-end w-full",children:[e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>f(!0),title:"Share spec with teammates for feedback",children:[e.jsx(N,{icon:"lucide:send",size:12}),e.jsx("span",{children:"Share with Teammates for Feedback"})]}),e.jsx(Qa,{isOpen:u,onClose:()=>f(!1),specContent:s,annotations:n,planPath:t,projectParam:a,contentType:r,onPersisted:j})]});const v=`${Za}/${o.shareId}`,g=er(o.shareCreatedAt,Date.now()),S=tr(o.planAnnotations),k=R=>{p(),R>0?m(`Fetched ${R} new annotation${R===1?"":"s"}`):x("No new feedback yet — teammates haven't submitted since the last poll.")},P=e.jsxs("span",{className:"badge badge-ghost badge-xs text-[9px] gap-0.5 flex-shrink-0 whitespace-nowrap",title:"Share links expire 7 days after creation",children:[e.jsx(N,{icon:"lucide:clock",size:9}),g===0?"expires today":`${g}d left`]}),w=S.reviewerCount>0?e.jsxs("div",{className:"relative flex items-center gap-1 flex-shrink-0",onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),children:[e.jsxs("span",{className:"badge badge-info badge-xs text-[9px] gap-0.5 whitespace-nowrap",title:"Reviewers who submitted feedback",children:[e.jsx(N,{icon:"lucide:users",size:9}),S.reviewerCount]}),e.jsxs("span",{className:"badge badge-primary badge-xs text-[9px] gap-0.5 whitespace-nowrap",title:"Total teammate annotations",children:[e.jsx(N,{icon:"lucide:message-square",size:9}),S.annotationCount]}),l&&e.jsxs("div",{className:"absolute top-full right-0 mt-1 z-50 bg-base-100 border border-base-300 rounded-md shadow-lg p-2 min-w-[180px]",children:[e.jsx("p",{className:"text-[10px] font-semibold text-base-content/70 mb-1",children:"Reviewers"}),e.jsx("ul",{className:"space-y-0.5",children:S.perAuthor.map(({author:R,count:$})=>e.jsxs("li",{className:"flex items-center justify-between gap-3 text-[10px]",children:[e.jsx("span",{className:"truncate flex-1",children:R}),e.jsx("span",{className:"badge badge-ghost badge-xs text-[9px]",children:$})]},R))})]})]}):null;return i==="stacked"?e.jsxs("div",{className:"flex flex-col gap-1.5 w-full min-w-0",children:[e.jsx(Nt,{url:v,onCopyError:b,onCopySuccess:m}),e.jsx("div",{className:"flex items-center gap-1.5 flex-wrap",children:e.jsx(St,{planPath:t,projectParam:a,onResult:k,onError:b,fullWidth:!0})}),e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[P,w]})]}):e.jsxs("div",{className:"flex items-center gap-1.5 flex-1 min-w-0",children:[e.jsx(Nt,{url:v,onCopyError:b,onCopySuccess:m}),e.jsx(St,{planPath:t,projectParam:a,onResult:k,onError:b}),P,w]})}function Nt({url:t,onCopySuccess:s,onCopyError:n}){const r=c.useRef(null),a=async()=>{try{await navigator.clipboard.writeText(t),s("Share link copied to clipboard")}catch{n("Failed to copy to clipboard")}},i=o=>{o.preventDefault(),o.clipboardData.setData("text/plain",t),s("Share link copied to clipboard")};return e.jsxs("div",{className:"flex items-center gap-1 flex-1 min-w-0",children:[e.jsx("input",{ref:r,type:"text",readOnly:!0,value:t,className:"input input-bordered input-xs font-mono text-[10px] flex-1 min-w-0 cursor-pointer",onFocus:o=>o.currentTarget.select(),onClick:o=>o.currentTarget.select(),onCopy:i,"aria-label":"Persistent share link — click to select all",title:"Click to select, then Cmd/Ctrl+C to copy"}),e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1 flex-shrink-0",onClick:()=>void a(),title:"Copy share link",children:[e.jsx(N,{icon:"lucide:copy",size:12}),e.jsx("span",{children:"Copy"})]})]})}function St({planPath:t,projectParam:s,onResult:n,onError:r,fullWidth:a=!1}){const[i,o]=c.useState(!1),d=async()=>{if(!i){o(!0);try{const u=await fetch(`/api/annotations/poll-feedback?path=${encodeURIComponent(t)}${s}`,{method:"POST"});if(!u.ok){const l=await u.json().catch(()=>({}));r(l.error??"Failed to fetch feedback");return}const f=await u.json();n(f.entriesReceived??0)}catch(u){r(u.message||"Network error")}finally{o(!1)}}};return e.jsxs("button",{className:`btn btn-outline btn-xs gap-1 ${a?"w-full":"flex-shrink-0"}`,onClick:()=>void d(),disabled:i,title:"Fetch new teammate feedback now (instead of waiting for the next poll)",children:[e.jsx(N,{icon:i?"lucide:loader":"lucide:refresh-cw",size:12,className:i?"animate-spin":""}),e.jsx("span",{children:i?"Fetching…":"Fetch Feedback"})]})}function nr({content:t}){return e.jsx("div",{className:"spec-markdown",children:e.jsx(ts,{remarkPlugins:[ss],components:{h3:({children:s})=>{const r=String(s??"").match(/Task\s+(\d+)/),a=r?`task-${r[1]}`:void 0;return e.jsx("h3",{id:a,className:"text-lg font-semibold mt-6 mb-3 pb-2 border-b border-base-300/50 first:mt-0 scroll-mt-4",children:s})},h4:({children:s})=>e.jsx("h4",{className:"text-base font-medium mt-4 mb-2 text-base-content/90",children:s}),p:({children:s})=>e.jsx("p",{className:"text-sm text-base-content/80 mb-3 leading-relaxed",children:s}),ul:({children:s})=>e.jsx("ul",{className:"text-sm space-y-1.5 mb-4 ml-1",children:s}),ol:({children:s})=>e.jsx("ol",{className:"text-sm space-y-1.5 mb-4 ml-1 list-decimal list-inside",children:s}),li:({children:s})=>e.jsxs("li",{className:"text-base-content/80 flex items-start gap-2",children:[e.jsx("span",{className:"text-primary mt-0.5 text-xs select-none",children:"▸"}),e.jsx("span",{className:"flex-1",children:s})]}),code:({className:s,children:n})=>s?e.jsx("code",{className:"block bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:n}):e.jsx("code",{className:"bg-base-300 text-primary px-1.5 py-0.5 rounded text-xs font-mono",children:n}),pre:({children:s})=>e.jsx("pre",{className:"bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:s}),strong:({children:s})=>e.jsx("strong",{className:"font-semibold text-base-content",children:s}),table:({children:s})=>e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsx("table",{className:"table table-sm w-full",children:s})}),thead:({children:s})=>e.jsx("thead",{className:"bg-base-200",children:s}),th:({children:s})=>e.jsx("th",{className:"text-left text-xs font-medium text-base-content/70 p-2",children:s}),td:({children:s})=>e.jsx("td",{className:"text-sm p-2 border-t border-base-300/50",children:s}),blockquote:({children:s})=>e.jsx("blockquote",{className:"border-l-4 border-primary/50 pl-4 py-1 my-3 text-sm text-base-content/70 italic",children:s}),hr:()=>e.jsx("hr",{className:"my-6 border-base-300"})},children:t})})}const ar={Summary:"lucide:text",Approach:"lucide:compass","Fix Approach":"lucide:wrench","Feature Inventory":"lucide:clipboard-list",Scope:"lucide:target","Out of Scope":"lucide:square-x","Autonomous Decisions":"lucide:brain","Context for Implementer":"lucide:book-open","Runtime Environment":"lucide:terminal",Assumptions:"lucide:lightbulb","Risks and Mitigations":"lucide:alert-triangle","Goal Verification":"lucide:check-square","E2E Test Scenarios":"lucide:monitor-check","E2E Results":"lucide:clipboard-check","Verification Scenario":"lucide:mouse-pointer-click","Open Questions":"lucide:help-circle","Deferred Ideas":"lucide:bookmark","Implementation Details":"lucide:list-tree","Problem Statement":"lucide:crosshair","Core User Flows":"lucide:route","Technical Context":"lucide:cpu","Key Decisions":"lucide:scale"};function rr({heading:t,content:s,defaultOpen:n=!1}){const[r,a]=c.useState(n),i=ar[t]||"lucide:file-text";return e.jsx(K,{children:e.jsxs(B,{className:"p-0",children:[e.jsxs("button",{className:"w-full flex items-center gap-2.5 p-4 text-left cursor-pointer hover:bg-base-200/50 transition-colors",onClick:()=>a(!r),children:[e.jsx(N,{icon:i,size:16,className:"text-primary flex-shrink-0"}),e.jsx("span",{className:"text-sm font-semibold flex-1",children:t}),e.jsx(N,{icon:"lucide:chevron-down",size:14,className:`text-base-content/40 transition-transform duration-200 ${r?"rotate-180":""}`})]}),r&&e.jsx("div",{className:"px-4 pb-4 pt-0 border-t border-base-300/50",children:e.jsx("div",{className:"pt-3",children:e.jsx(nr,{content:s})})})]})})}const ir=c.lazy(()=>X(()=>import("./PlanAnnotator.js").then(t=>t.P),__vite__mapDeps([0,1,2,3]),import.meta.url).then(t=>({default:t.PlanAnnotator}))),or=["Problem Statement","Core User Flows","Scope","Technical Context","Key Decisions","Research Findings"],cr={Feature:"info",Infrastructure:"warning",UX:"info",API:"info",Performance:"success",Security:"warning",Documentation:"info",Integration:"info"};function lr(t){const s=t.match(/^#\s+(.+)$/m),n=s?s[1]:"Untitled PRD",r={},a=t.match(/^Author:\s*(.+)$/m);a&&(r.author=a[1].trim());const i=t.match(/^Category:\s*(.+)$/m);i&&(r.category=i[1].trim());const o=t.match(/^Status:\s*(.+)$/m);o&&(r.status=o[1].trim());const d=t.match(/^Research:\s*(.+)$/m);d&&(r.research=d[1].trim());const u=t.match(/^Created:\s*(.+)$/m);u&&(r.createdAt=u[1].trim());const f=[],l=/^## (.+)$/gm,h=[];let m;for(;(m=l.exec(t))!==null;)h.push({heading:m[1],index:m.index,contentStart:m.index+m[0].length});for(let b=0;b{if(!s.path)return;const T=decodeURIComponent(s.path);i(A=>A===T?A:T)},[s.path]);const[o,d]=c.useState(null),[u,f]=c.useState(!0),[l,h]=c.useState(!1),[m,b]=c.useState(null),[x,p]=c.useState("view"),[j,v]=c.useState(0);Y("feedback_appended",T=>{T.plan_path&&T.plan_path===(o==null?void 0:o.filePath)&&v(A=>A+1)});const[g,S]=c.useState(!1),k=t?`?project=${encodeURIComponent(t)}`:"",P=c.useRef(t);P.current!==t&&(P.current=t,i(null),d(null),b(null),f(!0));const w=c.useCallback(async()=>{var T;try{const F=await(await fetch(`/api/prd${k}`)).json();r(F.prds||[]),((T=F.prds)==null?void 0:T.length)>0&&!a&&i(F.prds[0].filePath)}catch(A){b("Failed to load PRDs"),console.error("Failed to load PRDs:",A)}finally{f(!1)}},[a,k]),R=c.useCallback(async(T,A=!1)=>{A||h(!0),b(null);try{const F=await fetch(`/api/prd/content?path=${encodeURIComponent(T)}${t?`&project=${encodeURIComponent(t)}`:""}`);if(!F.ok)throw new Error("Failed to load PRD content");d(await F.json())}catch(F){b("Failed to load PRD content"),console.error("Failed to load PRD content:",F)}finally{A||h(!1)}},[t]),$=c.useCallback(async T=>{if(confirm(`Delete "${T.split("/").pop()}"? This cannot be undone.`)){S(!0);try{if(!(await fetch(`/api/prd?path=${encodeURIComponent(T)}${t?`&project=${encodeURIComponent(t)}`:""}`,{method:"DELETE"})).ok)throw new Error("Failed to delete PRD");i(null),d(null),await w()}catch(A){b("Failed to delete PRD"),console.error("Failed to delete PRD:",A)}finally{S(!1)}}},[w,t]);if(c.useEffect(()=>{w();const T=setInterval(()=>{w(),a&&R(a,!0)},Ht.SPEC_REFRESH_INTERVAL_MS);return()=>clearInterval(T)},[w,R,a]),c.useEffect(()=>{a&&R(a)},[a,R]),u)return e.jsx(se,{});if(n.length===0)return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Ce,{})," "]}),e.jsx(K,{children:e.jsx(B,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(N,{icon:"lucide:lightbulb",size:48,className:"text-base-content/40 mb-4"}),e.jsx("h3",{className:"text-lg font-medium mb-2",children:"No Requirements"}),e.jsxs("p",{className:"text-base-content/60 max-w-md",children:["Use"," ",e.jsx("code",{className:"text-primary bg-base-300 px-1 rounded",children:"/prd"})," ","in Pilot Shell to brainstorm vague ideas into Product Requirements Documents through back-and-forth conversation, with optional research."]})]})})})]});const E=n.find(T=>T.filePath===a),C=n.filter(T=>T.filePath!==a),I=o?lr(o.content):null;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Ce,{}),a&&o&&e.jsxs("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${x==="view"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>p("view"),title:"View PRD",children:[e.jsx(N,{icon:"lucide:eye",size:13}),"View"]}),e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${x==="annotate"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>p("annotate"),title:"Review PRD",children:[e.jsx(N,{icon:"lucide:pencil",size:13}),"Review"]})]}),E&&e.jsx("div",{role:"tablist",className:"flex items-center gap-1.5 min-w-0 overflow-hidden",children:e.jsxs("button",{role:"tab","aria-selected":!0,className:"px-2.5 py-1.5 rounded-lg text-xs font-medium border transition-colors cursor-pointer flex items-center gap-1.5 truncate bg-primary/10 border-primary/30 text-primary",children:[e.jsx(N,{icon:"lucide:lightbulb",size:12,className:"text-warning flex-shrink-0"}),e.jsx("span",{className:"truncate max-w-40",children:E.name}),e.jsx("span",{className:"text-[10px] opacity-60 flex-shrink-0",children:dr(E.modifiedAt)})]})}),e.jsx("span",{className:"flex-1"}),C.length>0&&e.jsxs("select",{className:"select select-bordered select-xs text-xs max-w-48",value:"",onChange:T=>i(T.target.value),children:[e.jsxs("option",{value:"",disabled:!0,children:["Previous (",C.length,")"]}),C.map(T=>e.jsx("option",{value:T.filePath,children:T.name},T.filePath))]}),a&&e.jsx(Q,{text:"Delete PRD",position:"bottom",children:e.jsx(W,{variant:"ghost",size:"sm",onClick:()=>$(a),disabled:g,children:e.jsx(N,{icon:"lucide:trash-2",size:16,className:"text-error"})})})]}),l?e.jsx(se,{}):m?e.jsx(K,{children:e.jsx(B,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(N,{icon:"lucide:alert-circle",size:48,className:"text-error mb-4"}),e.jsx("p",{className:"text-error",children:m})]})})}):I&&o?e.jsxs(e.Fragment,{children:[x==="annotate"&&e.jsx(c.Suspense,{fallback:e.jsx(se,{}),children:e.jsxs("div",{className:"rounded-xl border border-base-300 bg-base-100",style:{height:"calc(100vh - 180px)",minHeight:500,display:"flex",flexDirection:"column"},children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-base-300 bg-base-200/40 flex-shrink-0 text-xs text-base-content/60",children:[e.jsx(N,{icon:"lucide:pencil-line",size:13,className:"text-primary"}),e.jsx("span",{children:"Hover over a block and click the + button to add annotations. Review them in the sidebar."})]}),e.jsx("div",{style:{flex:1,minHeight:0,display:"flex"},children:e.jsx(ir,{planContent:o.content,planPath:o.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",contentType:"requirement",reloadKey:j})})]})}),x!=="annotate"&&e.jsxs(e.Fragment,{children:[e.jsx(K,{children:e.jsxs(B,{className:"p-6",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-warning/20 rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(N,{icon:"lucide:lightbulb",size:20,className:"text-warning"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h2",{className:"text-xl font-bold",children:I.title}),e.jsxs("p",{className:"text-xs text-base-content/50 mt-1",children:[I.sections.length," sections"]})]})]}),e.jsxs("div",{className:"flex items-center gap-4 mt-4 pt-4 border-t border-base-300/50 text-xs text-base-content/50 flex-wrap",children:[I.metadata.category&&e.jsx(G,{variant:cr[I.metadata.category]??"info",size:"xs",children:I.metadata.category}),I.metadata.status&&e.jsx(G,{variant:I.metadata.status==="Final"?"success":"warning",size:"xs",children:I.metadata.status}),I.metadata.author&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(N,{icon:"lucide:user",size:12}),e.jsx("span",{children:I.metadata.author})]}),I.metadata.createdAt&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(N,{icon:"lucide:calendar",size:12}),e.jsx("span",{children:I.metadata.createdAt})]}),I.metadata.research&&I.metadata.research!=="None"&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(N,{icon:"lucide:search",size:12}),e.jsxs("span",{children:[I.metadata.research," research"]})]}),o&&e.jsx("div",{className:"flex items-center gap-1 ml-auto flex-1 min-w-0 max-w-[60ch] justify-end",children:e.jsx(sr,{planPath:o.filePath,specContent:o.content,annotations:[],contentType:"requirement",projectParam:t?`&project=${encodeURIComponent(t)}`:""})})]})]})}),I.sections.length>0&&e.jsx("div",{className:"space-y-2",children:I.sections.map(T=>e.jsx(rr,{heading:T.heading,content:T.content,defaultOpen:T.heading==="Problem Statement"},T.heading))})]})]}):null]})}const ue=[{key:"DEBUG",label:"Debug",icon:"🔍",color:"text-base-content/50"},{key:"INFO",label:"Info",icon:"ℹ️",color:"text-info"},{key:"WARN",label:"Warn",icon:"⚠️",color:"text-warning"},{key:"ERROR",label:"Error",icon:"❌",color:"text-error"}],he=[{key:"HOOK",label:"Hook",icon:"🪝",color:"text-purple-500"},{key:"WORKER",label:"Worker",icon:"⚙️",color:"text-info"},{key:"SDK",label:"SDK",icon:"📦",color:"text-success"},{key:"PARSER",label:"Parser",icon:"📄",color:"text-sky-500"},{key:"DB",label:"DB",icon:"🗄️",color:"text-orange-500"},{key:"SYSTEM",label:"System",icon:"💻",color:"text-base-content/50"},{key:"HTTP",label:"HTTP",icon:"🌐",color:"text-cyan-500"},{key:"SESSION",label:"Session",icon:"📋",color:"text-pink-500"},{key:"CHROMA",label:"Chroma",icon:"🔮",color:"text-violet-500"}];function hr(t){const s=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,n=t.match(s);if(!n)return{raw:t};const[,r,a,i,o,d]=n;let u;return d.startsWith("→")?u="dataIn":d.startsWith("←")?u="dataOut":d.startsWith("✓")?u="success":d.startsWith("✗")?u="failure":d.startsWith("⏱")?u="timing":d.includes("[HAPPY-PATH]")&&(u="happyPath"),{raw:t,timestamp:r,level:a==null?void 0:a.trim(),component:i==null?void 0:i.trim(),correlationId:o||void 0,message:d,isSpecial:u}}function fr({isOpen:t,onClose:s}){const[n,r]=c.useState(""),[a,i]=c.useState(!1),[o,d]=c.useState(null),[u,f]=c.useState(!1),[l,h]=c.useState(350),[m,b]=c.useState(!1),x=c.useRef(0),p=c.useRef(0),j=c.useRef(null),v=c.useRef(!0),[g,S]=c.useState(new Set(["DEBUG","INFO","WARN","ERROR"])),[k,P]=c.useState(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[w,R]=c.useState(!1),$=c.useMemo(()=>n?n.split(` +`).map(hr):[],[n]),E=c.useMemo(()=>$.filter(y=>w?y.raw.includes("[ALIGNMENT]"):!y.level||!y.component?!0:g.has(y.level)&&k.has(y.component)),[$,g,k,w]),C=c.useCallback(()=>{if(!j.current)return!0;const{scrollTop:y,scrollHeight:L,clientHeight:O}=j.current;return L-y-O<50},[]),I=c.useCallback(()=>{j.current&&v.current&&(j.current.scrollTop=j.current.scrollHeight)},[]),T=c.useCallback(async()=>{v.current=C(),i(!0),d(null);try{const y=await fetch("/api/logs");if(!y.ok)throw new Error(`Failed to fetch logs: ${y.statusText}`);const L=await y.json();r(L.logs||"")}catch(y){d(y instanceof Error?y.message:"Unknown error")}finally{i(!1)}},[C]);c.useEffect(()=>{I()},[n,I]);const A=c.useCallback(async()=>{if(confirm("Are you sure you want to clear all logs?")){i(!0),d(null);try{const y=await fetch("/api/logs/clear",{method:"POST"});if(!y.ok)throw new Error(`Failed to clear logs: ${y.statusText}`);r("")}catch(y){d(y instanceof Error?y.message:"Unknown error")}finally{i(!1)}}},[]),F=c.useCallback(y=>{y.preventDefault(),b(!0),x.current=y.clientY,p.current=l},[l]);c.useEffect(()=>{if(!m)return;const y=O=>{const J=x.current-O.clientY,ee=Math.min(Math.max(150,p.current+J),window.innerHeight-100);h(ee)},L=()=>{b(!1)};return document.addEventListener("mousemove",y),document.addEventListener("mouseup",L),()=>{document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",L)}},[m]),c.useEffect(()=>{t&&(v.current=!0,T())},[t,T]),c.useEffect(()=>{if(!t||!u)return;const y=setInterval(T,2e3);return()=>clearInterval(y)},[t,u,T]);const U=c.useCallback(y=>{S(L=>{const O=new Set(L);return O.has(y)?O.delete(y):O.add(y),O})},[]),_=c.useCallback(y=>{P(L=>{const O=new Set(L);return O.has(y)?O.delete(y):O.add(y),O})},[]),M=c.useCallback(y=>{S(y?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),z=c.useCallback(y=>{P(y?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!t)return null;const q=y=>{const L=ue.find(O=>O.key===y);return(L==null?void 0:L.color)||"text-base-content"},H=y=>{const L=he.find(O=>O.key===y);return(L==null?void 0:L.color)||"text-base-content"},V=y=>y.level==="ERROR"?"bg-error/10":y.level==="WARN"?"bg-warning/5":"",D=(y,L)=>{var ee,ie;if(!y.timestamp)return e.jsx("div",{className:"whitespace-pre-wrap break-all text-base-content/60",children:y.raw},L);const O=ue.find(ae=>ae.key===y.level),J=he.find(ae=>ae.key===y.component);return e.jsxs("div",{className:`whitespace-pre-wrap break-all py-0.5 px-1 rounded ${V(y)}`,children:[e.jsxs("span",{className:"text-base-content/40",children:["[",y.timestamp,"]"]})," ",e.jsxs("span",{className:`font-medium ${q(y.level)}`,title:y.level,children:["[",(O==null?void 0:O.icon)||""," ",(ee=y.level)==null?void 0:ee.padEnd(5),"]"]})," ",e.jsxs("span",{className:`font-medium ${H(y.component)}`,title:y.component,children:["[",(J==null?void 0:J.icon)||""," ",(ie=y.component)==null?void 0:ie.padEnd(7),"]"]})," ",y.correlationId&&e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-base-content/50",children:["[",y.correlationId,"]"]})," "]}),e.jsx("span",{className:y.isSpecial==="success"?"text-success":y.isSpecial==="failure"?"text-error":"text-base-content",children:y.message})]},L)};return e.jsxs("div",{className:"fixed bottom-0 left-0 right-0 bg-base-100 border-t border-base-300 flex flex-col z-50 shadow-2xl",style:{height:`${l}px`},children:[e.jsx("div",{className:"h-1.5 cursor-ns-resize flex items-center justify-center bg-base-200 hover:bg-base-300 transition-colors",onMouseDown:F,children:e.jsx("div",{className:"w-12 h-1 bg-base-300 rounded-full"})}),e.jsxs("div",{className:"flex justify-between items-center px-3 h-9 bg-base-200 border-b border-base-300",children:[e.jsx("div",{className:"flex gap-1",children:e.jsx("div",{className:"px-3 py-1 text-xs font-medium bg-base-100 text-base-content rounded",children:"Console"})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-base-content/60 cursor-pointer",children:[e.jsx("input",{type:"checkbox",className:"checkbox checkbox-xs",checked:u,onChange:y=>f(y.target.checked)}),"Auto-refresh"]}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:T,disabled:a,title:"Refresh logs",children:e.jsx(N,{icon:"lucide:refresh-cw",size:14,className:a?"animate-spin":""})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:()=>{v.current=!0,I()},title:"Scroll to bottom",children:e.jsx(N,{icon:"lucide:arrow-down",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square hover:text-error",onClick:A,disabled:a,title:"Clear logs",children:e.jsx(N,{icon:"lucide:trash-2",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:s,title:"Close console",children:e.jsx(N,{icon:"lucide:x",size:14})})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-3 px-3 py-2 bg-base-200/50 border-b border-base-300 text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Quick:"}),e.jsx("button",{className:`badge badge-sm cursor-pointer ${w?"badge-warning":"badge-ghost opacity-50"}`,onClick:()=>R(!w),title:"Show only session alignment logs",children:"🔗 Alignment"})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Levels:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[ue.map(y=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${g.has(y.key)?"badge-primary":"badge-ghost opacity-40"}`,onClick:()=>U(y.key),title:y.label,children:[y.icon," ",y.label]},y.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>M(g.size===0),title:g.size===ue.length?"Select none":"Select all",children:g.size===ue.length?"○":"●"})]})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Components:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[he.map(y=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${k.has(y.key)?"badge-secondary":"badge-ghost opacity-40"}`,onClick:()=>_(y.key),title:y.label,children:[y.icon," ",y.label]},y.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>z(k.size===0),title:k.size===he.length?"Select none":"Select all",children:k.size===he.length?"○":"●"})]})]})]}),o&&e.jsxs("div",{className:"px-3 py-2 bg-error/10 text-error text-xs",children:["⚠ ",o]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-3 py-2",ref:j,children:e.jsx("div",{className:"font-mono text-xs leading-relaxed",children:E.length===0?e.jsx("div",{className:"text-base-content/40 italic",children:"No logs available"}):E.map((y,L)=>D(y,L))})})]})}const Fe={COMMAND_PALETTE:{key:"k",modifiers:["ctrl","meta"],description:"Open command palette",action:"openCommandPalette"},SEARCH:{key:"/",modifiers:["ctrl","meta"],description:"Focus search",action:"focusSearch"},ESCAPE:{key:"Escape",description:"Close modal/palette",action:"escape"},TOGGLE_THEME:{key:"t",modifiers:["ctrl","meta"],description:"Toggle theme",action:"toggleTheme"},TOGGLE_SIDEBAR:{key:"b",modifiers:["ctrl","meta"],description:"Toggle sidebar",action:"toggleSidebar"}},mr=[{sequence:["g","d"],description:"Go to Dashboard",action:"navigate:/"},{sequence:["g","c"],description:"Go to Changes",action:"navigate:/changes"},{sequence:["g","m"],description:"Go to Memories",action:"navigate:/memories"},{sequence:["g","v"],description:"Go to Extensions",action:"navigate:/extensions"},{sequence:["g","h"],description:"Go to Help",action:"navigate:/help"}];function kt(t){var r,a,i,o;const s=typeof navigator<"u"&&navigator.platform.includes("Mac"),n=[];return((r=t.modifiers)!=null&&r.includes("ctrl")||(a=t.modifiers)!=null&&a.includes("meta"))&&n.push(s?"⌘":"Ctrl"),(i=t.modifiers)!=null&&i.includes("shift")&&n.push(s?"⇧":"Shift"),(o=t.modifiers)!=null&&o.includes("alt")&&n.push(s?"⌥":"Alt"),n.push(t.key.toUpperCase()),n.join(s?"":"+")}function pr({open:t,onClose:s,onNavigate:n,onToggleTheme:r,onToggleSidebar:a}){const[i,o]=c.useState(""),[d,u]=c.useState(0),f=c.useRef(null),l=c.useRef(null),h=c.useMemo(()=>[{id:"nav-dashboard",label:"Go to Dashboard",shortcut:"G D",category:"navigation",icon:"lucide:layout-dashboard",action:()=>n("/")},{id:"nav-changes",label:"Go to Changes",shortcut:"G C",category:"navigation",icon:"lucide:git-compare",action:()=>n("/changes")},{id:"nav-memories",label:"Go to Memories",shortcut:"G M",category:"navigation",icon:"lucide:brain",action:()=>n("/memories")},{id:"nav-usage",label:"Go to Usage",shortcut:"G U",category:"navigation",icon:"lucide:bar-chart-3",action:()=>n("/usage")},{id:"nav-extensions",label:"Go to Extensions",shortcut:"G V",category:"navigation",icon:"lucide:puzzle",action:()=>n("/extensions")},{id:"nav-help",label:"Go to Help",shortcut:"G H",category:"navigation",icon:"lucide:book-open",action:()=>n("/help")},{id:"action-theme",label:"Toggle Theme",shortcut:kt(Fe.TOGGLE_THEME),category:"action",icon:"lucide:sun-moon",action:r},{id:"action-sidebar",label:"Toggle Sidebar",shortcut:kt(Fe.TOGGLE_SIDEBAR),category:"action",icon:"lucide:panel-left",action:a}],[n,r,a]),m=c.useMemo(()=>{if(!i)return h;const g=i.toLowerCase();return h.filter(S=>S.label.toLowerCase().includes(g)||S.category.toLowerCase().includes(g))},[h,i]);c.useEffect(()=>{u(0)},[i]),c.useEffect(()=>{t&&(o(""),u(0),setTimeout(()=>{var g;return(g=f.current)==null?void 0:g.focus()},50))},[t]),c.useEffect(()=>{if(!l.current)return;const g=l.current.querySelector('[data-selected="true"]');g==null||g.scrollIntoView({block:"nearest"})},[d]);const b=g=>{g.action(),s()},x=g=>{switch(g.key){case"ArrowDown":g.preventDefault(),u(S=>(S+1)%m.length);break;case"ArrowUp":g.preventDefault(),u(S=>(S-1+m.length)%m.length);break;case"Enter":g.preventDefault(),m[d]&&b(m[d]);break;case"Escape":g.preventDefault(),s();break}};if(!t)return null;const p=m.reduce((g,S)=>(g[S.category]||(g[S.category]=[]),g[S.category].push(S),g),{}),j={navigation:"Navigation",action:"Actions",theme:"Theme"};let v=0;return e.jsxs("dialog",{className:"modal modal-open",children:[e.jsxs("div",{className:"modal-box max-w-xl p-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 p-3 border-b border-base-300",children:[e.jsx(N,{icon:"lucide:search",size:18,className:"text-base-content/50"}),e.jsx("input",{ref:f,type:"text",placeholder:"Type a command or search...",value:i,onChange:g=>o(g.target.value),onKeyDown:x,className:"flex-1 bg-transparent outline-none text-base"}),e.jsx("kbd",{className:"kbd kbd-sm",children:"ESC"})]}),e.jsx("div",{ref:l,className:"max-h-80 overflow-y-auto p-2",children:m.length===0?e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No commands found"}):Object.entries(p).map(([g,S])=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-medium text-base-content/50 px-2 py-1 mt-2 first:mt-0",children:j[g]||g}),S.map(k=>{const P=v===d,w=v;return v++,e.jsxs("button",{"data-selected":P,className:`w-full flex items-center gap-3 px-3 py-2 rounded-lg text-left transition-colors ${P?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>b(k),onMouseEnter:()=>u(w),children:[e.jsx(N,{icon:k.icon,size:16,className:P?"text-primary-content":"text-base-content/60"}),e.jsx("span",{className:"flex-1",children:k.label}),k.shortcut&&e.jsx("kbd",{className:`kbd kbd-sm ${P?"bg-primary-content/20 text-primary-content":""}`,children:k.shortcut})]},k.id)})]},g))}),e.jsxs("div",{className:"border-t border-base-300 px-3 py-2 text-xs text-base-content/50 flex gap-4",children:[e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↑↓"})," Navigate"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↵"})," Select"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"ESC"})," Close"]})]})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop bg-black/50",children:e.jsx("button",{onClick:s,children:"close"})})]})}function xr({license:t,onActivated:s}){const[n,r]=c.useState(""),[a,i]=c.useState(null),[o,d]=c.useState(!1),u=c.useCallback(async()=>{const b=n.trim();if(b){i(null),d(!0);try{const p=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:b})})).json();p.success?(r(""),i(null),s()):i(p.error??"Activation failed")}catch{i("Connection failed. Is the Pilot worker running?")}finally{d(!1)}}},[n,s]),f=c.useCallback(b=>{b.key==="Enter"&&!o&&u()},[u,o]),l=(t==null?void 0:t.isExpired)===!0,h=l?"License Expired":"License Required",m=l?"Your Pilot Shell license has expired. Please activate a new license to continue using the Console.":"Pilot Shell Console requires an active license or trial. Activate your license key below to get started.";return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200 p-4",children:e.jsx("div",{className:"card bg-base-100 shadow-xl w-full max-w-md",children:e.jsxs("div",{className:"card-body items-center text-center gap-4",children:[e.jsx("div",{className:"text-5xl mb-2",children:l?"🚫":"🔒"}),e.jsx("h1",{className:"card-title text-2xl",children:h}),e.jsx("p",{className:"text-base-content/60 text-sm",children:m}),e.jsxs("div",{className:"w-full space-y-3 mt-2",children:[e.jsx("input",{type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:n,onChange:b=>{r(b.target.value),i(null)},onKeyDown:f,disabled:o,autoFocus:!0}),a&&e.jsx("p",{className:"text-error text-sm text-left",children:a}),e.jsx("button",{className:"btn btn-primary w-full",onClick:u,disabled:o||!n.trim(),children:o?"Activating...":"Activate License"})]}),e.jsx("div",{className:"divider text-base-content/40 text-xs my-1",children:"or"}),e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"btn btn-outline btn-sm w-full",children:"Get a License"}),e.jsx("a",{href:"https://polar.sh/max-ritter/portal",target:"_blank",rel:"noopener noreferrer",className:"btn btn-ghost btn-sm w-full",children:"Lost your key? Open members area"}),e.jsxs("p",{className:"text-base-content/40 text-xs mt-2",children:["Visit"," ",e.jsx("a",{href:"https://pilot-shell.com",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"pilot-shell.com"})," ","to learn more about Pilot Shell."]})]})})})}class Yt extends c.Component{constructor(n){super(n);Xe(this,"handleReset",()=>{this.setState(n=>({hasError:!1,error:null,errorInfo:null,resetCount:n.resetCount+1}))});this.state={hasError:!1,error:null,errorInfo:null,resetCount:0}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,r){console.error("[ErrorBoundary] Caught error:",n,r),this.setState({error:n,errorInfo:r})}render(){if(this.state.hasError){const n=this.props.label;return e.jsxs("div",{className:"p-5 min-h-screen bg-base-200 text-error",children:[e.jsx("h1",{className:"text-2xl font-bold mb-2.5",children:"Something went wrong"}),e.jsx("p",{className:"mb-2.5 text-base-content/60",children:n?`The ${n} hit an error. Use the buttons below, or pick another page.`:"The application hit an error. Use the buttons below, or pick another page."}),e.jsx("button",{type:"button",onClick:this.handleReset,className:"btn btn-sm btn-primary mr-2",children:"Try again"}),e.jsx("button",{type:"button",onClick:()=>window.location.reload(),className:"btn btn-sm btn-ghost",children:"Reload page"}),this.state.error&&e.jsxs("details",{className:"mt-5 text-base-content/60",children:[e.jsx("summary",{className:"cursor-pointer mb-2.5",children:"Error details"}),e.jsxs("pre",{className:"bg-base-300 p-2.5 rounded-lg overflow-auto text-sm",children:[this.state.error.toString(),this.state.errorInfo&&` -`+this.state.errorInfo.componentStack]})]})]})}return e.jsx(xs.Fragment,{children:this.props.children},`eb-${this.state.resetCount}`)}}const _r={totalGlobal:0,totalProject:0,totalPlugin:0,totalRemote:0};function Lr(){try{const t=localStorage.getItem("pilot-extensions-status");if(t)return JSON.parse(t)}catch{}return _r}function $r(){const{selectedProject:t,setProjects:s}=ie(),[n,r]=c.useState({observations:0,summaries:0,sessions:0,lastObservationAt:null,projects:0}),[a,i]=c.useState({status:"offline"}),[o,l]=c.useState([]),[u,m]=c.useState({active:!1,plans:[]}),[d,h]=c.useState({branch:null,staged:0,unstaged:0,untracked:0,totalFiles:0}),[f,b]=c.useState({totalSpecs:0,verified:0,inProgress:0,pending:0,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]}),[p,x]=c.useState(0),[y,v]=c.useState(0),[j,k]=c.useState(0),[w,C]=c.useState([]),[g,P]=c.useState(Lr),[$,R]=c.useState(!0),E=c.useCallback(async()=>{var q;try{const L=await fetch("/api/extensions?all=true").catch(()=>null);if(!(L!=null&&L.ok))return;const z=(await L.json()).extensions??[],H=z.filter(A=>A.scope==="global"&&!A.pluginName),U=z.filter(A=>A.scope==="project"),Q=z.filter(A=>A.pluginName!=null);let V=0;try{const A=await fetch("/api/team-remote/extensions").catch(()=>null);A!=null&&A.ok&&(V=((q=(await A.json()).extensions)==null?void 0:q.length)??0)}catch{}const N={totalGlobal:H.length,totalProject:U.length,totalPlugin:Q.length,totalRemote:V};P(N);try{localStorage.setItem("pilot-extensions-status",JSON.stringify(N))}catch{}}catch{}},[]),T=c.useCallback(async()=>{const q=t?`?project=${encodeURIComponent(t)}`:"";Promise.all([fetch(`/api/stats${q}`),fetch("/health"),fetch(`/api/observations?limit=6${t?`&project=${encodeURIComponent(t)}`:""}`),fetch("/api/projects")]).then(async([L,O,z,H])=>{var ce,se,ue,ke,D,G,Y;const U=await L.json(),Q=await O.json(),V=await z.json(),N=await H.json(),A=V.items||V.observations||V||[],M=Array.isArray(A)?A:[],K=M.length>0&&((ce=M[0])==null?void 0:ce.created_at)||null,J=N.projects||[];s(J),r({observations:((se=U.database)==null?void 0:se.observations)||0,summaries:((ue=U.database)==null?void 0:ue.summaries)||0,sessions:((ke=U.database)==null?void 0:ke.sessions)||0,lastObservationAt:K?$t(K):null,projects:J.length}),i({status:Q.status==="ok"?Q.isProcessing?"processing":"online":"offline",version:(D=U.worker)==null?void 0:D.version,uptime:(G=U.worker)!=null&&G.uptime?Mr(U.worker.uptime):void 0,queueDepth:Q.queueDepth||0,workspaceProject:(Y=U.worker)==null?void 0:Y.workspaceProject}),l(M.slice(0,2).map(X=>{var tt;return{id:X.id,type:X.obs_type||X.type||"observation",title:X.title||((tt=X.content)==null?void 0:tt.slice(0,100))||"Untitled",project:X.project||"unknown",timestamp:$t(X.created_at)}})),R(!1)}).catch(L=>{console.error("Failed to load core stats:",L),i({status:"offline"}),R(!1)}),fetch(`/api/plan${q}`).then(async L=>{const O=await L.json(),z=O.plans||(O.plan?[O.plan]:[]);m({active:z.length>0,plans:z})}).catch(()=>{}),fetch(`/api/git${q}`).then(async L=>{const O=await L.json();h({branch:O.branch||null,staged:O.staged||0,unstaged:O.unstaged||0,untracked:O.untracked||0,totalFiles:O.totalFiles||0})}).catch(()=>{}),fetch("/api/plans/active/all").then(async L=>{if(!L.ok)return;const z=(await L.json()).specs||[];b({totalSpecs:z.length,verified:z.filter(H=>H.status==="VERIFIED").length,inProgress:z.filter(H=>H.status==="COMPLETE"||H.status==="PENDING").length,pending:z.filter(H=>H.status==="PENDING").length,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]})}).catch(()=>{}),fetch("/api/prd/all").then(async L=>{if(!L.ok)return;const O=await L.json();x((O.prds||[]).length)}).catch(()=>{}),fetch("/api/usage/daily").then(async L=>{if(!L.ok)return;const z=(await L.json()).daily||[],H=new Date().toISOString().slice(0,10),U=z.find(Q=>Q.date===H);v((U==null?void 0:U.totalCost)??0)}).catch(()=>{}),fetch("/api/sessions?limit=50").then(async L=>{if(!L.ok)return;const z=(await L.json()).items||[];k(z.filter(H=>H.status==="active").length)}).catch(()=>{}),fetch(`/api/analytics/timeline?range=30d${t?`&project=${encodeURIComponent(t)}`:""}`).then(async L=>{if(!L.ok)return;const O=await L.json();C(O.data||[])}).catch(()=>{})},[t,s]),I=c.useRef(T);c.useEffect(()=>{I.current=T},[T]),c.useEffect(()=>{T()},[T]),c.useEffect(()=>{E()},[E]);const _=c.useRef(null),F=c.useCallback(()=>{_.current===null&&(_.current=setTimeout(()=>{_.current=null,I.current()},300))},[]);return c.useEffect(()=>()=>{_.current!==null&&(clearTimeout(_.current),_.current=null)},[]),ae("processing_status",q=>{i(L=>({...L,status:q.isProcessing?"processing":"online",queueDepth:q.queueDepth??L.queueDepth}))}),ae("new_observation",F),ae("new_summary",F),ae("plan_association_changed",F),{stats:n,workerStatus:a,extensionsStatus:g,recentActivity:o,planStatus:u,gitInfo:d,specStats:f,prdCount:p,todayCost:y,activeSessions:j,observationTimeline:w,isLoading:$,refreshStats:T}}function $t(t){if(!t)return"";const s=new Date(t),r=new Date().getTime()-s.getTime();return r<6e4?"just now":r<36e5?`${Math.floor(r/6e4)}m ago`:r<864e5?`${Math.floor(r/36e5)}h ago`:s.toLocaleDateString()}function Mr(t){return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:t<86400?`${Math.floor(t/3600)}h`:`${Math.floor(t/86400)}d`}function Or(t,s={}){const{enabled:n=!0}=s,r=c.useRef([]),a=c.useRef(null),i=c.useCallback(()=>{r.current=[],a.current&&(clearTimeout(a.current),a.current=null)},[]);c.useEffect(()=>{if(!n)return;const o=l=>{const u=l.target;if(u.tagName==="INPUT"||u.tagName==="TEXTAREA"||u.isContentEditable){l.key==="Escape"&&t("escape");return}navigator.platform.includes("Mac");const m=l.ctrlKey||l.metaKey;for(const d of Object.values(We)){const h=!d.modifiers||d.modifiers.some(p=>p==="ctrl"?l.ctrlKey:p==="meta"?l.metaKey:p==="shift"?l.shiftKey:p==="alt"?l.altKey:!1),f=l.key.toLowerCase()===d.key.toLowerCase(),b=d.modifiers&&d.modifiers.length>0;if(f&&h&&(b?m:!m)){l.preventDefault(),t(d.action),i();return}}if(!m&&!l.shiftKey&&!l.altKey){a.current&&clearTimeout(a.current),r.current.push(l.key.toLowerCase()),a.current=setTimeout(i,1e3);for(const d of Tr){const h=r.current,f=d.sequence;if(f.slice(0,h.length).every((p,x)=>p===h[x])){if(h.length===f.length){l.preventDefault(),t(d.action),i();return}return}}i()}};return document.addEventListener("keydown",o),()=>{document.removeEventListener("keydown",o),i()}},[n,t,i])}const zr=c.lazy(()=>re(()=>import("./index.js"),__vite__mapDeps([4,1,2,3]),import.meta.url).then(t=>({default:t.DashboardView}))),Fr=c.lazy(()=>re(()=>import("./index2.js"),__vite__mapDeps([5,1,2,3,6,7]),import.meta.url).then(t=>({default:t.ChangesView}))),Ur=c.lazy(()=>re(()=>import("./index3.js"),__vite__mapDeps([8,1,2,3,6]),import.meta.url).then(t=>({default:t.SpecView}))),qr=c.lazy(()=>re(()=>import("./index4.js"),__vite__mapDeps([9,1,2,3]),import.meta.url).then(t=>({default:t.UsageView}))),Hr=c.lazy(()=>re(()=>import("./ExtensionsView.js"),__vite__mapDeps([10,1,2,3]),import.meta.url).then(t=>({default:t.ExtensionsView}))),Gr=c.lazy(()=>re(()=>import("./index5.js"),__vite__mapDeps([11,1,2,3,0,12]),import.meta.url).then(t=>({default:t.SharedSpecView}))),Br=[{path:"/",component:zr},{path:"/requirements",component:Rr},{path:"/spec",component:Ur},{path:"/changes",component:Fr},{path:"/memories",component:Nt},{path:"/memories/:type",component:Nt},{path:"/sessions",component:Ka},{path:"/usage",component:qr},{path:"/extensions",component:Hr},{path:"/settings",component:Tt},{path:"/settings/:tab",component:Tt},{path:"/help",component:wa},{path:"/shared/:data",component:Gr}],Mt="pilot-memory-sidebar-collapsed";function Vr(){const{path:t,navigate:s}=oe(),{resolvedTheme:n,setThemePreference:r}=ts(),{workerStatus:a}=$r(),i=a.version,{license:o,isLoading:l,refetch:u}=Xt(),[m,d]=c.useState(()=>{if(typeof window<"u"&&window.innerWidth<1024)return!0;try{return localStorage.getItem(Mt)==="true"}catch{return!1}}),[h,f]=c.useState(!1),[b,p]=c.useState(!1),x=c.useCallback(()=>{r(n==="light"?"dark":"light")},[n,r]),y=c.useCallback(()=>{d(C=>{const g=!C;try{localStorage.setItem(Mt,String(g))}catch{}return g})},[]),v=c.useCallback(()=>{f(C=>!C)},[]),j=c.useCallback(C=>{if(C==="openCommandPalette")p(!0);else if(C==="escape")p(!1),f(!1);else if(C==="toggleTheme")r(n==="light"?"dark":"light");else if(C==="toggleSidebar")y();else if(C==="focusSearch"){const g=document.querySelector('input[type="search"]');g==null||g.focus()}else C.startsWith("navigate:")&&s(C.replace("navigate:",""))},[n,r,s,y]);Or(j);const k=!l&&(o==null?void 0:o.valid)===!0&&!o.isExpired,w=n==="dark"?"pilot-shell":"pilot-shell-light";return l?e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200","data-theme":w,children:e.jsxs("div",{className:"animate-pulse space-y-3 w-64",children:[e.jsx("div",{className:"h-8 bg-base-300/50 rounded w-3/4 mx-auto"}),e.jsx("div",{className:"h-4 bg-base-300/50 rounded w-1/2 mx-auto"})]})}):k?e.jsx("div",{"data-theme":w,children:e.jsx(Rs,{children:e.jsx(ca,{children:e.jsxs(ia,{children:[e.jsx(ja,{currentPath:`#${t}`,version:i,workerStatus:a.status,queueDepth:a.queueDepth??0,onToggleTheme:x,onToggleLogs:v,sidebarCollapsed:m,onToggleSidebar:y,children:e.jsx(ls,{label:"current page",children:e.jsx(c.Suspense,{fallback:e.jsx(le,{}),children:e.jsx(va,{routes:Br})})},t)}),e.jsx(Ir,{isOpen:h,onClose:()=>f(!1)}),e.jsx(Ar,{open:b,onClose:()=>p(!1),onNavigate:s,onToggleTheme:x,onToggleSidebar:y})]})})})}):e.jsx("div",{"data-theme":w,children:e.jsx(Dr,{license:o,onActivated:u})})}const ds=document.getElementById("root");if(!ds)throw new Error("Root element not found");const Kr=js.createRoot(ds);Kr.render(e.jsx(ls,{children:e.jsx(ta,{children:e.jsx(Vr,{})})}));export{B,Z as C,W as D,Be as E,S as I,rs as M,Ae as P,jr as S,Zt as T,le as V,re as _,ee as a,ie as b,oe as c,Xr as d,$r as e,ts as f,vr as g,te as h,ae as i,ne as j,wr as k,Wa as l,Xt as m,ns as n,Zr as u}; +`+this.state.errorInfo.componentStack]})]})]})}return e.jsx(ns.Fragment,{children:this.props.children},`eb-${this.state.resetCount}`)}}const br={totalGlobal:0,totalProject:0,totalPlugin:0,totalRemote:0};function gr(){try{const t=localStorage.getItem("pilot-extensions-status");if(t)return JSON.parse(t)}catch{}return br}function jr(){const{selectedProject:t,setProjects:s}=Z(),[n,r]=c.useState({observations:0,summaries:0,sessions:0,lastObservationAt:null,projects:0}),[a,i]=c.useState({status:"offline"}),[o,d]=c.useState([]),[u,f]=c.useState({active:!1,plans:[]}),[l,h]=c.useState({branch:null,staged:0,unstaged:0,untracked:0,totalFiles:0}),[m,b]=c.useState({totalSpecs:0,verified:0,inProgress:0,pending:0,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]}),[x,p]=c.useState(0),[j,v]=c.useState(0),[g,S]=c.useState(0),[k,P]=c.useState([]),[w,R]=c.useState(gr),[$,E]=c.useState(!0),C=c.useCallback(async()=>{var U;try{const _=await fetch("/api/extensions?all=true").catch(()=>null);if(!(_!=null&&_.ok))return;const z=(await _.json()).extensions??[],q=z.filter(L=>L.scope==="global"&&!L.pluginName),H=z.filter(L=>L.scope==="project"),V=z.filter(L=>L.pluginName!=null);let D=0;try{const L=await fetch("/api/team-remote/extensions").catch(()=>null);L!=null&&L.ok&&(D=((U=(await L.json()).extensions)==null?void 0:U.length)??0)}catch{}const y={totalGlobal:q.length,totalProject:H.length,totalPlugin:V.length,totalRemote:D};R(y);try{localStorage.setItem("pilot-extensions-status",JSON.stringify(y))}catch{}}catch{}},[]),I=c.useCallback(async()=>{const U=t?`?project=${encodeURIComponent(t)}`:"";Promise.all([fetch(`/api/stats${U}`),fetch("/health"),fetch(`/api/observations?limit=6${t?`&project=${encodeURIComponent(t)}`:""}`),fetch("/api/projects")]).then(async([_,M,z,q])=>{var ie,ae,Ke,Be,We,Je,Qe;const H=await _.json(),V=await M.json(),D=await z.json(),y=await q.json(),L=D.items||D.observations||D||[],O=Array.isArray(L)?L:[],J=O.length>0&&((ie=O[0])==null?void 0:ie.created_at)||null,ee=y.projects||[];s(ee),r({observations:((ae=H.database)==null?void 0:ae.observations)||0,summaries:((Ke=H.database)==null?void 0:Ke.summaries)||0,sessions:((Be=H.database)==null?void 0:Be.sessions)||0,lastObservationAt:J?Ct(J):null,projects:ee.length}),i({status:V.status==="ok"?V.isProcessing?"processing":"online":"offline",version:(We=H.worker)==null?void 0:We.version,uptime:(Je=H.worker)!=null&&Je.uptime?vr(H.worker.uptime):void 0,queueDepth:V.queueDepth||0,workspaceProject:(Qe=H.worker)==null?void 0:Qe.workspaceProject}),d(O.slice(0,2).map(te=>{var Ye;return{id:te.id,type:te.obs_type||te.type||"observation",title:te.title||((Ye=te.content)==null?void 0:Ye.slice(0,100))||"Untitled",project:te.project||"unknown",timestamp:Ct(te.created_at)}})),E(!1)}).catch(_=>{console.error("Failed to load core stats:",_),i({status:"offline"}),E(!1)}),fetch(`/api/plan${U}`).then(async _=>{const M=await _.json(),z=M.plans||(M.plan?[M.plan]:[]);f({active:z.length>0,plans:z})}).catch(()=>{}),fetch(`/api/git${U}`).then(async _=>{const M=await _.json();h({branch:M.branch||null,staged:M.staged||0,unstaged:M.unstaged||0,untracked:M.untracked||0,totalFiles:M.totalFiles||0})}).catch(()=>{}),fetch("/api/plans/active/all").then(async _=>{if(!_.ok)return;const z=(await _.json()).specs||[];b({totalSpecs:z.length,verified:z.filter(q=>q.status==="VERIFIED").length,inProgress:z.filter(q=>q.status==="COMPLETE"||q.status==="PENDING").length,pending:z.filter(q=>q.status==="PENDING").length,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]})}).catch(()=>{}),fetch("/api/prd/all").then(async _=>{if(!_.ok)return;const M=await _.json();p((M.prds||[]).length)}).catch(()=>{}),fetch("/api/usage/daily").then(async _=>{if(!_.ok)return;const z=(await _.json()).daily||[],q=new Date().toISOString().slice(0,10),H=z.find(V=>V.date===q);v((H==null?void 0:H.totalCost)??0)}).catch(()=>{}),fetch("/api/sessions?limit=50").then(async _=>{if(!_.ok)return;const z=(await _.json()).items||[];S(z.filter(q=>q.status==="active").length)}).catch(()=>{}),fetch(`/api/analytics/timeline?range=30d${t?`&project=${encodeURIComponent(t)}`:""}`).then(async _=>{if(!_.ok)return;const M=await _.json();P(M.data||[])}).catch(()=>{})},[t,s]),T=c.useRef(I);c.useEffect(()=>{T.current=I},[I]),c.useEffect(()=>{I()},[I]),c.useEffect(()=>{C()},[C]);const A=c.useRef(null),F=c.useCallback(()=>{A.current===null&&(A.current=setTimeout(()=>{A.current=null,T.current()},300))},[]);return c.useEffect(()=>()=>{A.current!==null&&(clearTimeout(A.current),A.current=null)},[]),Y("processing_status",U=>{i(_=>({..._,status:U.isProcessing?"processing":"online",queueDepth:U.queueDepth??_.queueDepth}))}),Y("new_observation",F),Y("new_summary",F),Y("plan_association_changed",F),{stats:n,workerStatus:a,extensionsStatus:w,recentActivity:o,planStatus:u,gitInfo:l,specStats:m,prdCount:x,todayCost:j,activeSessions:g,observationTimeline:k,isLoading:$,refreshStats:I}}function Ct(t){if(!t)return"";const s=new Date(t),r=new Date().getTime()-s.getTime();return r<6e4?"just now":r<36e5?`${Math.floor(r/6e4)}m ago`:r<864e5?`${Math.floor(r/36e5)}h ago`:s.toLocaleDateString()}function vr(t){return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:t<86400?`${Math.floor(t/3600)}h`:`${Math.floor(t/86400)}d`}function yr(t,s={}){const{enabled:n=!0}=s,r=c.useRef([]),a=c.useRef(null),i=c.useCallback(()=>{r.current=[],a.current&&(clearTimeout(a.current),a.current=null)},[]);c.useEffect(()=>{if(!n)return;const o=d=>{const u=d.target;if(u.tagName==="INPUT"||u.tagName==="TEXTAREA"||u.isContentEditable){d.key==="Escape"&&t("escape");return}navigator.platform.includes("Mac");const f=d.ctrlKey||d.metaKey;for(const l of Object.values(Fe)){const h=!l.modifiers||l.modifiers.some(x=>x==="ctrl"?d.ctrlKey:x==="meta"?d.metaKey:x==="shift"?d.shiftKey:x==="alt"?d.altKey:!1),m=d.key.toLowerCase()===l.key.toLowerCase(),b=l.modifiers&&l.modifiers.length>0;if(m&&h&&(b?f:!f)){d.preventDefault(),t(l.action),i();return}}if(!f&&!d.shiftKey&&!d.altKey){a.current&&clearTimeout(a.current),r.current.push(d.key.toLowerCase()),a.current=setTimeout(i,1e3);for(const l of mr){const h=r.current,m=l.sequence;if(m.slice(0,h.length).every((x,p)=>x===h[p])){if(h.length===m.length){d.preventDefault(),t(l.action),i();return}return}}i()}};return document.addEventListener("keydown",o),()=>{document.removeEventListener("keydown",o),i()}},[n,t,i])}function wr(){c.useEffect(()=>{const t=()=>{if(typeof window>"u")return;const s=window.location.hash.replace(/^#/,""),[n]=s.split("?");n.startsWith("/settings/")&&n!=="/settings"&&(window.location.hash="#/settings")};return t(),window.addEventListener("hashchange",t),()=>window.removeEventListener("hashchange",t)},[])}const Nr=c.lazy(()=>X(()=>import("./index.js"),__vite__mapDeps([4,1,2,3]),import.meta.url).then(t=>({default:t.DashboardView}))),Sr=c.lazy(()=>X(()=>import("./index2.js"),__vite__mapDeps([5,1,2,3,6,7]),import.meta.url).then(t=>({default:t.ChangesView}))),kr=c.lazy(()=>X(()=>import("./index3.js"),__vite__mapDeps([8,1,2,3,6]),import.meta.url).then(t=>({default:t.SpecView}))),Cr=c.lazy(()=>X(()=>import("./index4.js"),__vite__mapDeps([9,1,2,3]),import.meta.url).then(t=>({default:t.UsageView}))),Er=c.lazy(()=>X(()=>import("./ExtensionsView.js"),__vite__mapDeps([10,1,2,3]),import.meta.url).then(t=>({default:t.ExtensionsView}))),Rr=c.lazy(()=>X(()=>import("./index5.js"),__vite__mapDeps([11,1,2,3,0,12]),import.meta.url).then(t=>({default:t.SharedSpecView}))),Pr=[{path:"/",component:Nr},{path:"/requirements",component:ur},{path:"/spec",component:kr},{path:"/changes",component:Sr},{path:"/memories",component:jt},{path:"/memories/:type",component:jt},{path:"/sessions",component:Da},{path:"/usage",component:Cr},{path:"/extensions",component:Er},{path:"/settings",component:qa},{path:"/help",component:da},{path:"/shared/:data",component:Rr}],Et="pilot-memory-sidebar-collapsed";function Tr(){const{path:t,navigate:s}=ne(),{resolvedTheme:n,setThemePreference:r}=Vt(),{workerStatus:a}=jr(),i=a.version,{license:o,isLoading:d,refetch:u}=qt(),[f,l]=c.useState(()=>{if(typeof window<"u"&&window.innerWidth<1024)return!0;try{return localStorage.getItem(Et)==="true"}catch{return!1}}),[h,m]=c.useState(!1),[b,x]=c.useState(!1),p=c.useCallback(()=>{r(n==="light"?"dark":"light")},[n,r]),j=c.useCallback(()=>{l(P=>{const w=!P;try{localStorage.setItem(Et,String(w))}catch{}return w})},[]),v=c.useCallback(()=>{m(P=>!P)},[]),g=c.useCallback(P=>{if(P==="openCommandPalette")x(!0);else if(P==="escape")x(!1),m(!1);else if(P==="toggleTheme")r(n==="light"?"dark":"light");else if(P==="toggleSidebar")j();else if(P==="focusSearch"){const w=document.querySelector('input[type="search"]');w==null||w.focus()}else P.startsWith("navigate:")&&s(P.replace("navigate:",""))},[n,r,s,j]);yr(g),wr();const S=!d&&(o==null?void 0:o.valid)===!0&&!o.isExpired,k=n==="dark"?"pilot-shell":"pilot-shell-light";return d?e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200","data-theme":k,children:e.jsxs("div",{className:"animate-pulse space-y-3 w-64",children:[e.jsx("div",{className:"h-8 bg-base-300/50 rounded w-3/4 mx-auto"}),e.jsx("div",{className:"h-4 bg-base-300/50 rounded w-1/2 mx-auto"})]})}):S?e.jsx("div",{"data-theme":k,children:e.jsx(xs,{children:e.jsx(Qn,{children:e.jsxs(Wn,{children:[e.jsx(oa,{currentPath:`#${t}`,version:i,workerStatus:a.status,queueDepth:a.queueDepth??0,onToggleTheme:p,onToggleLogs:v,sidebarCollapsed:f,onToggleSidebar:j,children:e.jsx(Yt,{label:"current page",children:e.jsx(c.Suspense,{fallback:e.jsx(se,{}),children:e.jsx(ca,{routes:Pr})})},t)}),e.jsx(fr,{isOpen:h,onClose:()=>m(!1)}),e.jsx(pr,{open:b,onClose:()=>x(!1),onNavigate:s,onToggleTheme:p,onToggleSidebar:j})]})})})}):e.jsx("div",{"data-theme":k,children:e.jsx(xr,{license:o,onActivated:u})})}const Xt=document.getElementById("root");if(!Xt)throw new Error("Root element not found");const Ir=os.createRoot(Xt);Ir.render(e.jsx(Yt,{children:e.jsx(Hn,{children:e.jsx(Tr,{})})}));export{G as B,K as C,Me as E,N as I,Ce as P,sr as S,Ht as T,se as V,X as _,B as a,Z as b,ne as c,$r as d,jr as e,Vt as f,nr as g,W as h,Y as i,Q as j,rr as k,qt as l,Bt as m,Or as u}; diff --git a/pilot/ui/viewer.css b/pilot/ui/viewer.css index 292ab01e..e5c39b81 100644 --- a/pilot/ui/viewer.css +++ b/pilot/ui/viewer.css @@ -1 +1 @@ -/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-orange-500:oklch(70.5% .213 47.604);--color-amber-400:oklch(82.8% .189 84.429);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-500:oklch(62.7% .265 303.9);--color-pink-500:oklch(65.6% .241 354.308);--color-black:#000;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E");scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab,red,red)){:root{scrollbar-color:color-mix(in oklch,currentColor 35%,#0000) #0000}}:root:not(span){overflow:var(--page-overflow)}:root,[data-theme]{background:var(--page-scroll-bg,var(--root-bg));color:var(--color-base-content)}:where(:root,[data-theme]){--root-bg:var(--color-base-100)}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--root-bg:#0f0f0f;--layout-sidebar-background:#1a1a1a;--layout-topbar-background:#1a1a1a;--color-base-100:#1a1a1a;--color-base-200:#242424;--color-base-300:#2e2e2e;--color-base-400:#383838;--color-base-content:#fafafa;--color-primary:#5b9ed9;--color-primary-content:#fff;--color-secondary:#a855f7;--color-secondary-content:#fff;--color-accent:#5b9ed9;--color-accent-content:#fff;--color-neutral:#d1d5db;--color-neutral-content:#1e2832;--color-info:#0ea5e9;--color-info-content:#fff;--color-success:#22d3ee;--color-success-content:#fff;--color-warning:#f59e0b;--color-warning-content:#150a00;--color-error:#ef4444;--color-error-content:#fff;--radius-field:.375rem;--radius-box:.375rem;--rounded-box:.375rem;--radius-selector:.375rem;--border:1px}}:where(:root),:root:has(input.theme-controller[value=pilot-shell]:checked),[data-theme=pilot-shell]{color-scheme:dark;--root-bg:#0f0f0f;--layout-sidebar-background:#1a1a1a;--layout-topbar-background:#1a1a1a;--color-base-100:#1a1a1a;--color-base-200:#242424;--color-base-300:#2e2e2e;--color-base-400:#383838;--color-base-content:#fafafa;--color-primary:#5b9ed9;--color-primary-content:#fff;--color-secondary:#a855f7;--color-secondary-content:#fff;--color-accent:#5b9ed9;--color-accent-content:#fff;--color-neutral:#d1d5db;--color-neutral-content:#1e2832;--color-info:#0ea5e9;--color-info-content:#fff;--color-success:#22d3ee;--color-success-content:#fff;--color-warning:#f59e0b;--color-warning-content:#150a00;--color-error:#ef4444;--color-error-content:#fff;--radius-field:.375rem;--radius-box:.375rem;--rounded-box:.375rem;--radius-selector:.375rem;--border:1px}:root:has(input.theme-controller[value=pilot-shell-light]:checked),[data-theme=pilot-shell-light]{color-scheme:light;--root-bg:#f5f5f5;--layout-sidebar-background:#fff;--layout-topbar-background:#fff;--color-base-100:#fff;--color-base-200:#f0f0f0;--color-base-300:#e0e0e0;--color-base-400:#d5d5d5;--color-base-content:#171717;--color-primary:#4a90c7;--color-primary-content:#fff;--color-secondary:#9333ea;--color-secondary-content:#fff;--color-accent:#4a90c7;--color-accent-content:#fff;--color-neutral:#1f2937;--color-neutral-content:#fafcff;--color-info:#0284c7;--color-info-content:#fff;--color-success:#0891b2;--color-success-content:#fff;--color-warning:#d97706;--color-warning-content:#150a00;--color-error:#dc2626;--color-error-content:#fff;--radius-field:.375rem;--radius-box:.375rem;--rounded-box:.375rem;--radius-selector:.375rem;--border:1px}}@layer components;@layer utilities{@layer daisyui.l1.l2.l3{.diff{webkit-user-select:none;-webkit-user-select:none;user-select:none;direction:ltr;grid-template-rows:1fr 1.8rem 1fr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size}.diff:focus-visible,.diff:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}.diff:focus-visible .diff-resizer{min-width:95cqi;max-width:95cqi}.diff:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px}.diff:has(.diff-item-1:focus-visible) .diff-resizer{min-width:5cqi;max-width:5cqi}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){.diff:focus .diff-resizer{min-width:5cqi;max-width:5cqi}.diff:has(.diff-item-1:focus) .diff-resizer{min-width:95cqi;max-width:95cqi}}.modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;scrollbar-gutter:auto;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;top:0;right:0;bottom:0;left:0;overflow:clip}.modal::backdrop{display:none}.tooltip{--tt-bg:var(--color-neutral);--tt-off: calc(100% + .5rem) ;--tt-tail: calc(100% + 1px + .25rem) ;display:inline-block;position:relative}.tooltip>.tooltip-content,.tooltip[data-tip]:before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;position:absolute}.tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);display:block;position:absolute}@media(prefers-reduced-motion:no-preference){.tooltip>.tooltip-content,.tooltip[data-tip]:before,.tooltip:after{transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms}}:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{opacity:1;--tt-pos:0rem}@media(prefers-reduced-motion:no-preference){:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}.tab{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;webkit-user-select:none;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:center;align-items:center;display:inline-flex;position:relative}@media(hover:hover){.tab:hover{color:var(--color-base-content)}}.tab{--tab-p:.75rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));--tab-radius-limit:min(var(--radius-field), var(--tab-radius-min));--tab-radius-grad:#0000 calc(69% - var(--border)), var(--tab-border-color) calc(69% - var(--border) + .25px), var(--tab-border-color) 69%, var(--tab-bg) calc(69% + .25px) ;order:var(--tab-order);height:var(--tab-height);padding-inline:var(--tab-p);border-color:#0000;font-size:.875rem}.tab:is(input[type=radio]){min-width:fit-content}.tab:is(input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.tab:is(label){position:relative}.tab:is(label) input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0;position:absolute;top:0;right:0;bottom:0;left:0}:is(.tab:checked,.tab:is(label:has(:checked)),.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content{display:block}.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab,var(--color-base-content) 50%,transparent)}}.tab:not(input):empty{cursor:default;flex-grow:1}.tab:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.tab:focus{outline-offset:2px;outline:2px solid #0000}}.tab:focus-visible,.tab:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}.tab[disabled]{pointer-events:none;opacity:.4}.menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex}.menu :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative}.menu :where(li ul):before{background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";inset-inline-start:0;position:absolute;top:.75rem;bottom:.75rem}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}.menu :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;-webkit-user-select:none;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}.menu :where(li>details>summary){--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li>details>summary){outline-offset:2px;outline:2px solid #0000}}.menu :where(li>details>summary)::-webkit-details-marker{display:none}:is(.menu :where(li>details>summary),.menu :where(li>.menu-dropdown-toggle)):after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}.menu details{interpolate-size:allow-keywords;overflow:hidden}.menu details::details-content{block-size:0}@media(prefers-reduced-motion:no-preference){.menu details::details-content{transition-behavior:allow-discrete;transition-property:block-size,content-visibility;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}}.menu details[open]::details-content{block-size:auto}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{background-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{color:var(--color-base-content);--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){background-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){box-shadow:inset 0 1px #00000003,inset 0 -1px #ffffff03}.menu :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}.menu :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative}.menu :where(li) .badge{justify-self:flex-end}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{outline-offset:2px;outline:2px solid #0000}}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--fx-noise)}:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):not(:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):active){box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg)}.menu :where(li).menu-disabled{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li).menu-disabled{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.menu .dropdown:focus-within .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}.menu .dropdown-content{margin-top:.5rem;padding:.5rem}.menu .dropdown-content:before{display:none}.dropdown{position-area:var(--anchor-v,bottom) var(--anchor-h,span-right);display:inline-block;position:relative}.dropdown>:not(:has(~[class*=dropdown-content])):focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.dropdown>:not(:has(~[class*=dropdown-content])):focus{outline-offset:2px;outline:2px solid #0000}}.dropdown .dropdown-content{position:absolute}.dropdown.dropdown-close .dropdown-content,.dropdown:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within) .dropdown-content,.dropdown.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible)~.dropdown-content{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover],.dropdown .dropdown-content{z-index:999}@media(prefers-reduced-motion:no-preference){.dropdown[popover],.dropdown .dropdown-content{transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}}@starting-style{.dropdown[popover],.dropdown .dropdown-content{opacity:0;scale:.95}}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within)>[tabindex]:first-child{pointer-events:none}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within) .dropdown-content,.dropdown:not(.dropdown-close).dropdown-hover:hover .dropdown-content{opacity:1;scale:1}.dropdown:is(details) summary::-webkit-details-marker{display:none}.dropdown:where([popover]){background:0 0}.dropdown[popover]{color:inherit;position:fixed}@supports not (position-area:bottom){.dropdown[popover]{margin:auto}.dropdown[popover].dropdown-close{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover].dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover]::backdrop{background-color:oklab(0% none none/.3)}}:is(.dropdown[popover].dropdown-close,.dropdown[popover]:not(.dropdown-open,:popover-open)){transform-origin:top;opacity:0;display:none;scale:.95}:where(.btn){width:unset}.btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0 / calc(var(--depth) * .15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%)) inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem) * 10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:var(--btn-bg);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@supports (color:color-mix(in lab,red,red)){.btn{--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))}}.btn{--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab,red,red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}.btn{--btn-noise:var(--fx-noise)}@media(hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:hover{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}}.btn:focus-visible,.btn:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200));translate:0 .5px}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 5%)}}.btn:active:not(.btn-active){--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn:active:not(.btn-active){--btn-shadow:0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0)}.btn:is(input[type=checkbox],input[type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn:is(input[type=checkbox],input[type=radio])[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}.btn:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}.loading{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem) * 6);background-color:currentColor;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;grid-template-columns:minmax(0,1fr);width:100%;display:grid;position:relative;overflow:hidden}@media(prefers-reduced-motion:no-preference){.collapse{transition:grid-template-rows .2s}}.collapse>input:is([type=checkbox],[type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0;z-index:1;grid-row-start:1;grid-column-start:1;width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close)),.collapse:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){content-visibility:visible;min-height:fit-content}@supports not (content-visibility:visible){.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible}}.collapse:focus-visible,.collapse:has(>input:is([type=checkbox],[type=radio]):focus-visible),.collapse:has(summary:focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}.collapse:not(.collapse-close)>input[type=checkbox],.collapse:not(.collapse-close)>input[type=radio]:not(:checked),.collapse:not(.collapse-close)>.collapse-title{cursor:pointer}:is(.collapse[tabindex]:focus:not(.collapse-close,.collapse[open]),.collapse[tabindex]:focus-within:not(.collapse-close,.collapse[open]))>.collapse-title{cursor:unset}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>:where(.collapse-content),.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem}.collapse:is(details){width:100%}@media(prefers-reduced-motion:no-preference){.collapse:is(details)::details-content{transition:content-visibility .2s allow-discrete,visibility .2s allow-discrete,min-height .2s ease-out allow-discrete,padding .1s ease-out 20ms,background-color .2s ease-out,height .2s;interpolate-size:allow-keywords;height:0}.collapse:is(details):where([open])::details-content{height:auto}}.collapse:is(details) summary{display:block;position:relative}.collapse:is(details) summary::-webkit-details-marker{display:none}.collapse:is(details)>.collapse-content{content-visibility:visible}.collapse:is(details) summary{outline:none}.list{flex-direction:column;font-size:.875rem;display:flex}.list .list-row{--list-grid-cols:minmax(0, auto) 1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative}:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{content:"";border-bottom:var(--border) solid;inset-inline:var(--radius-box);border-color:var(--color-base-content);position:absolute;bottom:0}@supports (color:color-mix(in lab,red,red)){:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{border-color:color-mix(in oklab,var(--color-base-content) 5%,transparent)}}.toast{translate:var(--toast-x,0) var(--toast-y,0);inset-inline:auto 1rem;background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem}@media(prefers-reduced-motion:no-preference){.toast>*{animation:.25s ease-out toast}}.toggle{border:var(--border) solid currentColor;color:var(--input-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p),var(--radius-selector-max)) + min(var(--border),var(--radius-selector-max)));padding:var(--toggle-p);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;display:inline-grid;position:relative;box-shadow:inset 0 1px}@supports (color:color-mix(in lab,red,red)){.toggle{box-shadow:0 1px color-mix(in oklab,currentColor calc(var(--depth) * 10%),#0000) inset}}.toggle{--input-color:var(--color-base-content);transition:color .3s,grid-template-columns .2s}@supports (color:color-mix(in lab,red,red)){.toggle{--input-color:color-mix(in oklab, var(--color-base-content) 50%, #0000)}}.toggle{--toggle-p:calc(var(--size) * .125);--size:calc(var(--size-selector,.25rem) * 6);width:calc((var(--size) * 2) - (var(--border) + var(--toggle-p)) * 2);height:var(--size)}.toggle>*{z-index:1;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s}.toggle>:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.toggle>:focus{outline-offset:2px;outline:2px solid #0000}}.toggle>:nth-child(2){color:var(--color-base-100);rotate:0deg}.toggle>:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}.toggle:has(:checked)>:nth-child(2){opacity:0;rotate:15deg}.toggle:has(:checked)>:nth-child(3){opacity:1;rotate:0deg}.toggle:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);width:100%;height:100%;box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px currentColor;background-color:currentColor;grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@supports (color:color-mix(in lab,red,red)){.toggle:before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth) * 10%),#0000)}}.toggle:before{background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--fx-noise)}@media(forced-colors:active){.toggle:before{outline-style:var(--tw-outline-style);outline-offset:-1px;outline-width:1px}}@media print{.toggle:before{outline-offset:-1rem;outline:.25rem solid}}.toggle:focus-visible,.toggle:has(:focus-visible){outline-offset:2px;outline:2px solid}.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr}:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{background-color:currentColor}@starting-style{:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{opacity:0}}.toggle:indeterminate{grid-template-columns:.5fr 1fr .5fr}.toggle:disabled{cursor:not-allowed;opacity:.3}.toggle:disabled:before{border:var(--border) solid currentColor;background-color:#0000}.input{cursor:text;border:var(--border) solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,.875rem),.875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab,red,red)){.input{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.input{--size:calc(var(--size-field,.25rem) * 10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.input:where(input){display:inline-flex}.input :where(input){-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex}.input :where(input):focus,.input :where(input):focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.input :where(input):focus,.input :where(input):focus-within{outline-offset:2px;outline:2px solid #0000}}.input :where(input[type=url]),.input :where(input[type=email]){direction:ltr}.input :where(input[type=date]){display:inline-flex}.input:focus,.input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.input:focus,.input:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000)}}.input:focus,.input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media(pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus,.input:focus-within{--font-size:1rem}}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{color:color-mix(in oklab,var(--color-base-content) 40%,transparent)}}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{box-shadow:none}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.input::-webkit-date-and-time-value{text-align:inherit}.input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}.input:has(>input[type=date]) :where(input[type=date]){webkit-appearance:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex}.input:has(>input[type=date]) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute;inset-inline-end:.75em}.indicator{width:max-content;display:inline-flex;position:relative}.indicator :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%) var(--indicator-y,-50%);position:absolute}.table{border-collapse:separate;--tw-border-spacing-x: 0rem ;--tw-border-spacing-y: 0rem ;width:100%;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);border-radius:var(--radius-box);text-align:left;font-size:.875rem;position:relative}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media(hover:hover){:is(.table tr.row-hover,.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)}}.table :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}.table :where(thead,tfoot){white-space:nowrap;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead,tfoot){color:color-mix(in oklab,var(--color-base-content) 60%,transparent)}}.table :where(thead,tfoot){font-size:.875rem;font-weight:600}.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid color-mix(in oklch,var(--color-base-content) 5%,#0000)}}.table :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}.table :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid color-mix(in oklch,var(--color-base-content) 5%,#0000)}}.range{-webkit-appearance:none;-moz-appearance:none;appearance:none;webkit-appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem) * 6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:currentColor}@supports (color:color-mix(in lab,red,red)){.range{--range-bg:color-mix(in oklab, currentColor 10%, #0000)}}.range{cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden}[dir=rtl] .range{--range-dir:-1}.range:focus{outline:none}.range:focus-visible{outline-offset:2px;outline:2px solid}.range::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}@media(forced-colors:active){.range::-webkit-slider-runnable-track{border:1px solid}.range::-moz-range-track{border:1px solid}}.range::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));background-color:var(--range-thumb);height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;-webkit-appearance:none;-moz-appearance:none;appearance:none;webkit-appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px currentColor,0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill));position:relative;top:50%;transform:translateY(-50%)}@supports (color:color-mix(in lab,red,red)){.range::-webkit-slider-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth) * 10%),#0000),0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill))}}.range::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}.range::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px currentColor,0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill));background-color:currentColor;position:relative;top:50%}@supports (color:color-mix(in lab,red,red)){.range::-moz-range-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth) * 10%),#0000),0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill))}}.range:disabled{cursor:not-allowed;opacity:.3}.select{border:var(--border) solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;white-space:nowrap;text-overflow:ellipsis;box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:.75rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.select{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.select{border-color:var(--input-color);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.select{--size:calc(var(--size-field,.25rem) * 10)}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}[dir=rtl] .select::picker(select){translate:.5rem}[dir=rtl] .select select::picker(select){translate:.5rem}.select[multiple]{background-image:none;height:auto;padding-block:.75rem;padding-inline-end:.75rem;overflow:auto}.select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:calc(100% + 2.75rem);height:calc(100% - calc(var(--border) * 2));background:inherit;border-radius:inherit;border-style:none;align-items:center;margin-inline:-.75rem -1.75rem;padding-inline:.75rem 1.75rem}.select select:focus,.select select:focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px;outline:2px solid #0000}}.select select:not(:last-child){background-image:none;margin-inline-end:-1.375rem}.select:focus,.select:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.select:focus,.select:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000)}}.select:focus,.select:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{color:color-mix(in oklab,var(--color-base-content) 40%,transparent)}}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed}@supports (appearance:base-select){.select,.select select{-webkit-appearance:base-select;-moz-appearance:base-select;appearance:base-select}:is(.select,.select select)::picker(select){-webkit-appearance:base-select;-moz-appearance:base-select;appearance:base-select}}:is(.select,.select select)::picker(select){color:inherit;border:var(--border) solid var(--color-base-200);border-radius:var(--radius-box);background-color:inherit;max-height:min(24rem,70dvh);box-shadow:0 2px calc(var(--depth) * 3px) -2px #0003;box-shadow:0 20px 25px -5px rgb(0 0 0/calc(var(--depth) * .1)),0 8px 10px -6px rgb(0 0 0/calc(var(--depth) * .1));margin-block:.5rem;margin-inline:.5rem;padding:.5rem;translate:-.5rem}:is(.select,.select select)::picker-icon{display:none}:is(.select,.select select) optgroup{padding-top:.5em}:is(.select,.select select) optgroup option:first-child{margin-top:.5em}:is(.select,.select select) option{border-radius:var(--radius-field);white-space:normal;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{background-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{outline-offset:2px;outline:2px solid #0000}}:is(.select,.select select) option:not(:disabled):active{background-color:var(--color-neutral);color:var(--color-neutral-content);box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--color-neutral)}.timeline{display:flex;position:relative}.timeline>li{grid-template-rows:var(--timeline-row-start,minmax(0, 1fr)) auto var(--timeline-row-end,minmax(0, 1fr));grid-template-columns:var(--timeline-col-start,minmax(0, 1fr)) auto var(--timeline-col-end,minmax(0, 1fr));flex-shrink:0;align-items:center;display:grid;position:relative}.timeline>li>hr{border:none;width:100%}.timeline>li>hr:first-child{grid-row-start:2;grid-column-start:1}.timeline>li>hr:last-child{grid-area:2/3/auto/none}@media print{.timeline>li>hr{border:.1px solid var(--color-base-300)}}.timeline :where(hr){background-color:var(--color-base-300);height:.25rem}.timeline:has(.timeline-middle hr):first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline:has(.timeline-middle hr):last-child,.timeline:not(:has(.timeline-middle)) :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}.timeline:not(:has(.timeline-middle)) :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.checkbox{border:var(--border) solid var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox{border:var(--border) solid var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem) * 6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative}.checkbox:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0 3px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px oklch(0% 0 0 / calc(var(--depth) * .1))}:is(.checkbox:checked,.checkbox[aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media(forced-colors:active){:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}@media print{:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox:indeterminate:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:0deg}.card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative}.card:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.card:focus{outline-offset:2px;outline:2px solid #0000}}.card:focus-visible{outline-color:currentColor}.card :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}.card :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}.card figure{justify-content:center;align-items:center;display:flex}.card:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;-webkit-user-select:none;user-select:none}.card:has(>:checked){outline:2px solid}.stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-box);background-color:currentColor;width:100%;height:.5rem;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.progress{background-color:color-mix(in oklab,currentcolor 20%,transparent)}}.progress{color:var(--color-base-content)}.progress:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%}@media(prefers-reduced-motion:no-preference){.progress:indeterminate{animation:5s ease-in-out infinite progress}}@supports ((-moz-appearance:none)){.progress:indeterminate::-moz-progress-bar{background-color:#0000}@media(prefers-reduced-motion:no-preference){.progress:indeterminate::-moz-progress-bar{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}.progress::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){.progress::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}.progress::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}.textarea{border:var(--border) solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);min-height:5rem;font-size:max(var(--font-size,.875rem),.875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;flex-shrink:1;padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab,red,red)){.textarea{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.textarea{--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.textarea textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px;outline:2px solid #0000}}.textarea:focus,.textarea:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.textarea:focus,.textarea:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000)}}.textarea:focus,.textarea:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media(pointer:coarse){@supports (-webkit-touch-callout:none){.textarea:focus,.textarea:focus-within{--font-size:1rem}}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){color:color-mix(in oklab,var(--color-base-content) 40%,transparent)}}:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){box-shadow:none}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}.modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid}.modal-backdrop button{cursor:pointer}.modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:.95;box-shadow:0 25px 50px -12px #00000040}.stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.stat-desc{white-space:nowrap;color:var(--color-base-content);grid-column-start:1}@supports (color:color-mix(in lab,red,red)){.stat-desc{color:color-mix(in oklab,var(--color-base-content) 60%,transparent)}}.stat-desc{font-size:.75rem}.stat-title{white-space:nowrap;color:var(--color-base-content);grid-column-start:1}@supports (color:color-mix(in lab,red,red)){.stat-title{color:color-mix(in oklab,var(--color-base-content) 60%,transparent)}}.stat-title{font-size:.75rem}.divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:var(--color-base-content);flex-direction:row;align-self:stretch;align-items:center;display:flex}@supports (color:color-mix(in lab,red,red)){.divider{--divider-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.divider:before,.divider:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{.divider:before,.divider:after{border:.5px solid}}.divider:not(:empty){gap:1rem}.filter{flex-wrap:wrap;display:flex}.filter input[type=radio]{width:auto}.filter input{opacity:1;transition:margin .1s,opacity .3s,padding .3s,border-width .1s;overflow:hidden;scale:1}.filter input:not(:last-child){margin-inline-end:.25rem}.filter input.filter-reset{aspect-ratio:1}.filter input.filter-reset:after{--tw-content:"×";content:var(--tw-content)}.filter:not(:has(input:checked:not(.filter-reset))) .filter-reset,.filter:not(:has(input:checked:not(.filter-reset))) input[type=reset],.filter:has(input:checked:not(.filter-reset)) input:not(:checked,.filter-reset,input[type=reset]){opacity:0;border-width:0;width:0;margin-inline:0;padding-inline:0;scale:0}.label{white-space:nowrap;color:currentColor;align-items:center;gap:.375rem;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.label{color:color-mix(in oklab,currentcolor 60%,transparent)}}.label:has(input){cursor:pointer}.label:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex}.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid currentColor;margin-inline:-.75rem .75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid color-mix(in oklab,currentColor 10%,#0000)}}.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid currentColor;margin-inline:.75rem -.75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid color-mix(in oklab,currentColor 10%,#0000)}}.modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:var(--color-base-content);width:.5rem;height:.5rem;display:inline-block}@supports (color:color-mix(in lab,red,red)){.status{background-color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.status{vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat}@supports (color:color-mix(in lab,red,red)){.status{color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.status{background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0 / calc(var(--depth) * .5)),#0000);box-shadow:0 2px 3px -1px}@supports (color:color-mix(in lab,red,red)){.status{box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth) * 100%),#0000)}}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border) solid var(--badge-color,var(--color-base-200));background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem) * 6);width:fit-content;height:var(--size);padding-inline:calc(var(--size) / 2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border) solid var(--color-base-content);justify-content:center;align-items:center;padding-inline:.5em;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.kbd{border:var(--border) solid color-mix(in srgb,var(--color-base-content) 20%,#0000)}}.kbd{border-bottom:calc(var(--border) + 1px) solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.kbd{border-bottom:calc(var(--border) + 1px) solid color-mix(in srgb,var(--color-base-content) 20%,#0000)}}.kbd{--size:calc(var(--size-selector,.25rem) * 6);height:var(--size);min-width:var(--size);font-size:.875rem}.tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem) * 10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid}.footer>*{place-items:start;gap:.5rem;display:grid}.footer.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center}.footer.footer-center>*{place-items:center}.stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid}.stat:not(:last-child){border-inline-end:var(--border) dashed currentColor}@supports (color:color-mix(in lab,red,red)){.stat:not(:last-child){border-inline-end:var(--border) dashed color-mix(in oklab,currentColor 10%,#0000)}}.stat:not(:last-child){border-block-end:none}.card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex}.card-body :where(p){flex-grow:1}.alert{--alert-border-color:var(--color-base-200);border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset,0 1px #000,0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08));border-style:solid;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid}@supports (color:color-mix(in lab,red,red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200))) calc(var(--depth) * 20%),#0000),0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08))}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}.chat{--mask-chat:url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e");grid-auto-rows:min-content;column-gap:.75rem;padding-block:.25rem;display:grid}.card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}.skeleton{border-radius:var(--radius-box);background-color:var(--color-base-300)}@media(prefers-reduced-motion:reduce){.skeleton{transition-duration:15s}}.skeleton{will-change:background-position;background-image:linear-gradient(105deg,#0000 0% 40%,var(--color-base-100) 50%,#0000 60% 100%);background-position-x:-50%;background-size:200%}@media(prefers-reduced-motion:no-preference){.skeleton{animation:1.8s ease-in-out infinite skeleton}}.link{cursor:pointer;text-decoration-line:underline}.link:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.link:focus{outline-offset:2px;outline:2px solid #0000}}.link:focus-visible{outline-offset:2px;outline:2px solid}.btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}.btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}}@layer daisyui.l1.l2{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;background-color:#0006}:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal) .modal-box{opacity:1;translate:0;scale:1}:root:has(:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal)){--page-has-backdrop:1;--page-overflow:hidden;--page-scroll-bg:var(--page-scroll-bg-on);--page-scroll-gutter:stable;--page-scroll-transition:var(--page-scroll-transition-on);animation:forwards set-page-has-scroll;animation-timeline:scroll()}@starting-style{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{opacity:0}}.tooltip>.tooltip-content,.tooltip[data-tip]:before{transform:translate(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}.tooltip:after{transform:translate(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.btn:disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.btn:disabled:not(.btn-link,.btn-ghost){box-shadow:none}.btn:disabled{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:disabled{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.btn[disabled]:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.btn[disabled]:not(.btn-link,.btn-ghost){box-shadow:none}.btn[disabled]{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}@media(prefers-reduced-motion:no-preference){.collapse[open].collapse-arrow>.collapse-title:after,.collapse.collapse-open.collapse-arrow>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}.collapse.collapse-open.collapse-plus>.collapse-title:after{--tw-content:"−";content:var(--tw-content)}:is(.collapse[tabindex].collapse-arrow:focus:not(.collapse-close),.collapse.collapse-arrow[tabindex]:focus-within:not(.collapse-close))>.collapse-title:after,.collapse.collapse-arrow:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}.collapse[open].collapse-plus>.collapse-title:after,.collapse[tabindex].collapse-plus:focus:not(.collapse-close)>.collapse-title:after,.collapse.collapse-plus:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{--tw-content:"−";content:var(--tw-content)}.list .list-row:has(.list-col-grow:first-child){--list-grid-cols:1fr}.list .list-row:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row>*{grid-row-start:1}.checkbox:disabled{cursor:not-allowed;opacity:.2}.tooltip-bottom>.tooltip-content,.tooltip-bottom[data-tip]:before{transform:translate(-50%) translateY(var(--tt-pos,-.25rem));inset:var(--tt-off) auto auto 50%}.tooltip-bottom:after{transform:translate(-50%) translateY(var(--tt-pos,-.25rem)) rotate(180deg);inset:var(--tt-tail) auto auto 50%}.tooltip-left>.tooltip-content,.tooltip-left[data-tip]:before{transform:translate(calc(var(--tt-pos,.25rem) - .25rem)) translateY(-50%);inset:50% var(--tt-off) auto auto}.tooltip-left:after{transform:translate(var(--tt-pos,.25rem)) translateY(-50%) rotate(-90deg);inset:50% calc(var(--tt-tail) + 1px) auto auto}.tooltip-right>.tooltip-content,.tooltip-right[data-tip]:before{transform:translate(calc(var(--tt-pos,-.25rem) + .25rem)) translateY(-50%);inset:50% auto auto var(--tt-off)}.tooltip-right:after{transform:translate(var(--tt-pos,-.25rem)) translateY(-50%) rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}.tooltip-top>.tooltip-content,.tooltip-top[data-tip]:before{transform:translate(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}.tooltip-top:after{transform:translate(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.toast-end{--toast-x:0;inset-inline:auto 1rem}.dropdown-end{--anchor-h:span-left}.dropdown-end :where(.dropdown-content){inset-inline-end:0;translate:0}[dir=rtl] :is(.dropdown-end :where(.dropdown-content)){translate:0}.dropdown-end.dropdown-left{--anchor-h:left;--anchor-v:span-top}.dropdown-end.dropdown-left .dropdown-content{top:auto;bottom:0}.dropdown-end.dropdown-right{--anchor-h:right;--anchor-v:span-top}.dropdown-end.dropdown-right .dropdown-content{top:auto;bottom:0}.dropdown-bottom{--anchor-v:bottom}.dropdown-bottom .dropdown-content{transform-origin:top;top:100%;bottom:auto}.toast-bottom{--toast-y:0;top:auto;bottom:1rem}.input-lg{--size:calc(var(--size-field,.25rem) * 12);font-size:max(var(--font-size,1.125rem),1.125rem)}.input-lg[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input-sm{--size:calc(var(--size-field,.25rem) * 8);font-size:max(var(--font-size,.75rem),.75rem)}.input-sm[type=number]::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}.input-xs{--size:calc(var(--size-field,.25rem) * 6);font-size:max(var(--font-size,.6875rem),.6875rem)}.input-xs[type=number]::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}.btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.btn-square{width:var(--size);height:var(--size);padding-inline:0}.loading-lg{width:calc(var(--size-selector,.25rem) * 7)}.loading-md{width:calc(var(--size-selector,.25rem) * 6)}.loading-sm{width:calc(var(--size-selector,.25rem) * 5)}.loading-xs{width:calc(var(--size-selector,.25rem) * 4)}.menu-sm :where(li:not(.menu-title)>:not(ul,details,.menu-title)),.menu-sm :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.625rem;font-size:.75rem}.menu-sm .menu-title{padding-block:.5rem;padding-inline:.75rem}.badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}:where(:not(ul,details,.menu-title,.btn)).menu-active{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){:where(:not(ul,details,.menu-title,.btn)).menu-active{outline-offset:2px;outline:2px solid #0000}}:where(:not(ul,details,.menu-title,.btn)).menu-active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--fx-noise)}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}.checkbox-xs{--size:calc(var(--size-selector,.25rem) * 4);padding:.125rem}.select-lg{--size:calc(var(--size-field,.25rem) * 12);font-size:1.125rem}.select-lg option{padding-block:.375rem;padding-inline:1rem}.select-sm{--size:calc(var(--size-field,.25rem) * 8);font-size:.75rem}.select-sm option{padding-block:.25rem;padding-inline:.625rem}.select-xs{--size:calc(var(--size-field,.25rem) * 6);font-size:.6875rem}.select-xs option{padding-block:.25rem;padding-inline:.5rem}.table-sm :not(thead,tfoot) tr{font-size:.75rem}.table-sm :where(th,td){padding-block:.5rem;padding-inline:.75rem}.table-xs :not(thead,tfoot) tr{font-size:.6875rem}.table-xs :where(th,td){padding-block:.25rem;padding-inline:.5rem}.badge-lg{--size:calc(var(--size-selector,.25rem) * 7);font-size:1rem}.badge-sm{--size:calc(var(--size-selector,.25rem) * 5);font-size:.75rem}.badge-xs{--size:calc(var(--size-selector,.25rem) * 4);font-size:.625rem}.kbd-sm{--size:calc(var(--size-selector,.25rem) * 5);font-size:.75rem}.kbd-xs{--size:calc(var(--size-selector,.25rem) * 4);font-size:.625rem}.textarea-sm{font-size:max(var(--font-size,.75rem),.75rem)}.textarea-xs{font-size:max(var(--font-size,.6875rem),.6875rem)}.alert-error{color:var(--color-error-content);--alert-border-color:var(--color-error);--alert-color:var(--color-error)}.alert-info{color:var(--color-info-content);--alert-border-color:var(--color-info);--alert-color:var(--color-info)}.alert-success{color:var(--color-success-content);--alert-border-color:var(--color-success);--alert-color:var(--color-success)}.alert-warning{color:var(--color-warning-content);--alert-border-color:var(--color-warning);--alert-color:var(--color-warning)}.checkbox-primary{color:var(--color-primary-content);--input-color:var(--color-primary)}.progress-accent{color:var(--color-accent)}.progress-error{color:var(--color-error)}.progress-info{color:var(--color-info)}.progress-primary{color:var(--color-primary)}.progress-secondary{color:var(--color-secondary)}.progress-success{color:var(--color-success)}.progress-warning{color:var(--color-warning)}.btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem) * 12)}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem) * 8)}.btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem) * 6)}.badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.input-error,.input-error:focus,.input-error:focus-within,.select-error,.select-error:focus,.select-error:focus-within{--input-color:var(--color-error)}.toggle-info:checked,.toggle-info[aria-checked=true]{--input-color:var(--color-info)}.toggle-lg[type=checkbox],.toggle-lg:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 7)}.toggle-primary:checked,.toggle-primary[aria-checked=true]{--input-color:var(--color-primary)}.toggle-sm[type=checkbox],.toggle-sm:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 5)}.toggle-xs[type=checkbox],.toggle-xs:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 4)}}.prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.pointer-events-none{pointer-events:none}.collapse:not(td,tr,colgroup){visibility:revert-layer}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.top-0{top:calc(var(--spacing) * 0)}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-full{top:100%}.-right-1\.5{right:calc(var(--spacing) * -1.5)}.right-0{right:calc(var(--spacing) * 0)}.right-3{right:calc(var(--spacing) * 3)}.right-6{right:calc(var(--spacing) * 6)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-6{bottom:calc(var(--spacing) * 6)}.-left-7{left:calc(var(--spacing) * -7)}.-left-9{left:calc(var(--spacing) * -9)}.left-0{left:calc(var(--spacing) * 0)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-span-4{grid-column:span 4/span 4}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-auto{margin-right:auto}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-auto{margin-left:auto}.kbd{box-shadow:none}.alert{border-width:var(--border);border-color:var(--alert-border-color,var(--color-base-200))}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-80{height:calc(var(--spacing) * 80)}.h-\[85vh\]{height:85vh}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[70vh\]{max-height:70vh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[15\%\]{width:15%}.w-\[28\%\]{width:28%}.w-\[42\%\]{width:42%}.w-\[72px\]{width:72px}.w-\[90vw\]{width:90vw}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-28{max-width:calc(var(--spacing) * 28)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-96{max-width:calc(var(--spacing) * 96)}.max-w-\[60ch\]{max-width:60ch}.max-w-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-72{min-width:calc(var(--spacing) * 72)}.min-w-\[4\.5rem\]{min-width:4.5rem}.min-w-\[16px\]{min-width:16px}.min-w-\[140px\]{min-width:140px}.min-w-\[180px\]{min-width:180px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.scroll-mt-4{scroll-margin-top:calc(var(--spacing) * 4)}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-base-200>:not(:last-child)){border-color:var(--color-base-200)}:where(.divide-base-300>:not(:last-child)){border-color:var(--color-base-300)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-box{border-radius:var(--radius-box)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-base-100{border-color:var(--color-base-100)}.border-base-200{border-color:var(--color-base-200)}.border-base-300,.border-base-300\/50{border-color:var(--color-base-300)}@supports (color:color-mix(in lab,red,red)){.border-base-300\/50{border-color:color-mix(in oklab,var(--color-base-300) 50%,transparent)}}.border-base-300\/60{border-color:var(--color-base-300)}@supports (color:color-mix(in lab,red,red)){.border-base-300\/60{border-color:color-mix(in oklab,var(--color-base-300) 60%,transparent)}}.border-base-300\/70{border-color:var(--color-base-300)}@supports (color:color-mix(in lab,red,red)){.border-base-300\/70{border-color:color-mix(in oklab,var(--color-base-300) 70%,transparent)}}.border-base-content\/10{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/10{border-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.border-base-content\/15{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/15{border-color:color-mix(in oklab,var(--color-base-content) 15%,transparent)}}.border-base-content\/20{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/20{border-color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.border-error\/20{border-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.border-error\/20{border-color:color-mix(in oklab,var(--color-error) 20%,transparent)}}.border-error\/40{border-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.border-error\/40{border-color:color-mix(in oklab,var(--color-error) 40%,transparent)}}.border-info\/20{border-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.border-info\/20{border-color:color-mix(in oklab,var(--color-info) 20%,transparent)}}.border-info\/30{border-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.border-info\/30{border-color:color-mix(in oklab,var(--color-info) 30%,transparent)}}.border-primary\/30{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,var(--color-primary) 30%,transparent)}}.border-primary\/40{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,var(--color-primary) 40%,transparent)}}.border-primary\/50{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,var(--color-primary) 50%,transparent)}}.border-success\/20{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\/20{border-color:color-mix(in oklab,var(--color-success) 20%,transparent)}}.border-success\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\/30{border-color:color-mix(in oklab,var(--color-success) 30%,transparent)}}.border-success\/40{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\/40{border-color:color-mix(in oklab,var(--color-success) 40%,transparent)}}.border-transparent{border-color:#0000}.border-warning\/30{border-color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.border-warning\/30{border-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.border-l-accent{border-left-color:var(--color-accent)}.border-l-amber-400{border-left-color:var(--color-amber-400)}.border-l-base-content\/30{border-left-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-l-base-content\/30{border-left-color:color-mix(in oklab,var(--color-base-content) 30%,transparent)}}.border-l-emerald-400{border-left-color:var(--color-emerald-400)}.border-l-info{border-left-color:var(--color-info)}.border-l-sky-400{border-left-color:var(--color-sky-400)}.border-l-violet-400{border-left-color:var(--color-violet-400)}.border-l-warning{border-left-color:var(--color-warning)}.bg-base-100,.bg-base-100\/40{background-color:var(--color-base-100)}@supports (color:color-mix(in lab,red,red)){.bg-base-100\/40{background-color:color-mix(in oklab,var(--color-base-100) 40%,transparent)}}.bg-base-100\/50{background-color:var(--color-base-100)}@supports (color:color-mix(in lab,red,red)){.bg-base-100\/50{background-color:color-mix(in oklab,var(--color-base-100) 50%,transparent)}}.bg-base-100\/70{background-color:var(--color-base-100)}@supports (color:color-mix(in lab,red,red)){.bg-base-100\/70{background-color:color-mix(in oklab,var(--color-base-100) 70%,transparent)}}.bg-base-200,.bg-base-200\/30{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.bg-base-200\/30{background-color:color-mix(in oklab,var(--color-base-200) 30%,transparent)}}.bg-base-200\/40{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.bg-base-200\/40{background-color:color-mix(in oklab,var(--color-base-200) 40%,transparent)}}.bg-base-200\/50{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.bg-base-200\/50{background-color:color-mix(in oklab,var(--color-base-200) 50%,transparent)}}.bg-base-200\/60{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.bg-base-200\/60{background-color:color-mix(in oklab,var(--color-base-200) 60%,transparent)}}.bg-base-200\/80{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.bg-base-200\/80{background-color:color-mix(in oklab,var(--color-base-200) 80%,transparent)}}.bg-base-300,.bg-base-300\/50{background-color:var(--color-base-300)}@supports (color:color-mix(in lab,red,red)){.bg-base-300\/50{background-color:color-mix(in oklab,var(--color-base-300) 50%,transparent)}}.bg-base-content\/30{background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.bg-base-content\/30{background-color:color-mix(in oklab,var(--color-base-content) 30%,transparent)}}.bg-base-content\/50{background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.bg-base-content\/50{background-color:color-mix(in oklab,var(--color-base-content) 50%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-error,.bg-error\/10{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\/10{background-color:color-mix(in oklab,var(--color-error) 10%,transparent)}}.bg-error\/20{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\/20{background-color:color-mix(in oklab,var(--color-error) 20%,transparent)}}.bg-info,.bg-info\/10{background-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\/10{background-color:color-mix(in oklab,var(--color-info) 10%,transparent)}}.bg-info\/15{background-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\/15{background-color:color-mix(in oklab,var(--color-info) 15%,transparent)}}.bg-info\/30{background-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\/30{background-color:color-mix(in oklab,var(--color-info) 30%,transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-primary-content\/20{background-color:var(--color-primary-content)}@supports (color:color-mix(in lab,red,red)){.bg-primary-content\/20{background-color:color-mix(in oklab,var(--color-primary-content) 20%,transparent)}}.bg-primary\/5{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--color-primary) 5%,transparent)}}.bg-primary\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary) 10%,transparent)}}.bg-primary\/15{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,var(--color-primary) 15%,transparent)}}.bg-primary\/20{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--color-primary) 20%,transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-success,.bg-success\/5{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/5{background-color:color-mix(in oklab,var(--color-success) 5%,transparent)}}.bg-success\/10{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/10{background-color:color-mix(in oklab,var(--color-success) 10%,transparent)}}.bg-success\/15{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/15{background-color:color-mix(in oklab,var(--color-success) 15%,transparent)}}.bg-success\/20{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/20{background-color:color-mix(in oklab,var(--color-success) 20%,transparent)}}.bg-transparent{background-color:#0000}.bg-warning,.bg-warning\/5{background-color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/5{background-color:color-mix(in oklab,var(--color-warning) 5%,transparent)}}.bg-warning\/10{background-color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/10{background-color:color-mix(in oklab,var(--color-warning) 10%,transparent)}}.bg-warning\/20{background-color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/20{background-color:color-mix(in oklab,var(--color-warning) 20%,transparent)}}.stroke-base-content\/10{stroke:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.stroke-base-content\/10{stroke:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.stroke-current{stroke:currentColor}.p-0{padding:calc(var(--spacing) * 0)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-px{padding-block:1px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--color-accent)}.text-amber-400{color:var(--color-amber-400)}.text-base-content,.text-base-content\/15{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/15{color:color-mix(in oklab,var(--color-base-content) 15%,transparent)}}.text-base-content\/20{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/20{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.text-base-content\/30{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/30{color:color-mix(in oklab,var(--color-base-content) 30%,transparent)}}.text-base-content\/40{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/40{color:color-mix(in oklab,var(--color-base-content) 40%,transparent)}}.text-base-content\/50{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/50{color:color-mix(in oklab,var(--color-base-content) 50%,transparent)}}.text-base-content\/55{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/55{color:color-mix(in oklab,var(--color-base-content) 55%,transparent)}}.text-base-content\/60{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/60{color:color-mix(in oklab,var(--color-base-content) 60%,transparent)}}.text-base-content\/70{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/70{color:color-mix(in oklab,var(--color-base-content) 70%,transparent)}}.text-base-content\/75{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/75{color:color-mix(in oklab,var(--color-base-content) 75%,transparent)}}.text-base-content\/80{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/80{color:color-mix(in oklab,var(--color-base-content) 80%,transparent)}}.text-base-content\/90{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/90{color:color-mix(in oklab,var(--color-base-content) 90%,transparent)}}.text-cyan-500{color:var(--color-cyan-500)}.text-emerald-400{color:var(--color-emerald-400)}.text-error{color:var(--color-error)}.text-error-content{color:var(--color-error-content)}.text-error\/40{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.text-error\/40{color:color-mix(in oklab,var(--color-error) 40%,transparent)}}.text-error\/50{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.text-error\/50{color:color-mix(in oklab,var(--color-error) 50%,transparent)}}.text-error\/70{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.text-error\/70{color:color-mix(in oklab,var(--color-error) 70%,transparent)}}.text-error\/80{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.text-error\/80{color:color-mix(in oklab,var(--color-error) 80%,transparent)}}.text-info{color:var(--color-info)}.text-info-content{color:var(--color-info-content)}.text-info\/70{color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.text-info\/70{color:color-mix(in oklab,var(--color-info) 70%,transparent)}}.text-info\/80{color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.text-info\/80{color:color-mix(in oklab,var(--color-info) 80%,transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-pink-500{color:var(--color-pink-500)}.text-primary{color:var(--color-primary)}.text-primary-content{color:var(--color-primary-content)}.text-primary\/50{color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/50{color:color-mix(in oklab,var(--color-primary) 50%,transparent)}}.text-primary\/60{color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/60{color:color-mix(in oklab,var(--color-primary) 60%,transparent)}}.text-primary\/70{color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/70{color:color-mix(in oklab,var(--color-primary) 70%,transparent)}}.text-purple-500{color:var(--color-purple-500)}.text-secondary{color:var(--color-secondary)}.text-sky-400{color:var(--color-sky-400)}.text-sky-500{color:var(--color-sky-500)}.text-success{color:var(--color-success)}.text-success-content{color:var(--color-success-content)}.text-success\/80{color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.text-success\/80{color:color-mix(in oklab,var(--color-success) 80%,transparent)}}.text-violet-400{color:var(--color-violet-400)}.text-violet-500{color:var(--color-violet-500)}.text-warning{color:var(--color-warning)}.text-warning-content{color:var(--color-warning-content)}.text-warning\/80{color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.text-warning\/80{color:color-mix(in oklab,var(--color-warning) 80%,transparent)}}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-primary{--tw-ring-color:var(--color-primary)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}@layer daisyui.l1{.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)):not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor);outline-color:currentColor}@media(hover:none){.btn-ghost:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color,currentColor);--btn-border:#0000;--btn-noise:none;outline-color:currentColor}}.btn-outline:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media(hover:none){.btn-outline:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}.blur-\[2px\]{--tw-blur:blur(2px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[1px\]{--tw-backdrop-blur:blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}@media(hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\:text-base-content\/70:is(:where(.group):hover *){color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.group-hover\:text-base-content\/70:is(:where(.group):hover *){color:color-mix(in oklab,var(--color-base-content) 70%,transparent)}}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/block\:opacity-100:is(:where(.group\/block):hover *){opacity:1}}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}@media(hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:border-base-content\/10:hover{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.hover\:border-base-content\/10:hover{border-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.hover\:border-base-content\/15:hover{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.hover\:border-base-content\/15:hover{border-color:color-mix(in oklab,var(--color-base-content) 15%,transparent)}}.hover\:border-primary\/50:hover{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,var(--color-primary) 50%,transparent)}}.hover\:bg-base-200:hover,.hover\:bg-base-200\/40:hover{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-base-200\/40:hover{background-color:color-mix(in oklab,var(--color-base-200) 40%,transparent)}}.hover\:bg-base-200\/50:hover{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-base-200\/50:hover{background-color:color-mix(in oklab,var(--color-base-200) 50%,transparent)}}.hover\:bg-base-200\/60:hover{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-base-200\/60:hover{background-color:color-mix(in oklab,var(--color-base-200) 60%,transparent)}}.hover\:bg-base-300:hover,.hover\:bg-base-300\/30:hover{background-color:var(--color-base-300)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-base-300\/30:hover{background-color:color-mix(in oklab,var(--color-base-300) 30%,transparent)}}.hover\:bg-info\/25:hover{background-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-info\/25:hover{background-color:color-mix(in oklab,var(--color-info) 25%,transparent)}}.hover\:bg-primary\/20:hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,var(--color-primary) 20%,transparent)}}.hover\:bg-success\/15:hover{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-success\/15:hover{background-color:color-mix(in oklab,var(--color-success) 15%,transparent)}}.hover\:text-base-content\/60:hover{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.hover\:text-base-content\/60:hover{color:color-mix(in oklab,var(--color-base-content) 60%,transparent)}}.hover\:text-base-content\/70:hover{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.hover\:text-base-content\/70:hover{color:color-mix(in oklab,var(--color-base-content) 70%,transparent)}}.hover\:text-base-content\/80:hover{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.hover\:text-base-content\/80:hover{color:color-mix(in oklab,var(--color-base-content) 80%,transparent)}}.hover\:text-error:hover{color:var(--color-error)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.98\]:active{scale:.98}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:40rem){.sm\:block{display:block}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-rows-\[auto_auto\]{grid-template-rows:auto auto}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\:\:before\]\:bg-base-300:before{background-color:var(--color-base-300)}.\[\&\:\:before\]\:text-base-content:before{color:var(--color-base-content)}.\[\&\>\*\]\:h-full>*{height:100%}.\[\&\>div\]\:py-6>div{padding-block:calc(var(--spacing) * 6)}}:root{--layout-sidebar-width:256px;font-family:Geist,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}code,pre,.font-mono,kbd{font-family:Geist Mono,monospace}.dashboard-layout{background:var(--root-bg)}.dashboard-sidebar{background:var(--layout-sidebar-background);border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.dashboard-sidebar{border-color:color-mix(in srgb,var(--color-base-content) 8%,transparent)}}.dashboard-topbar{background:var(--layout-topbar-background);border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.dashboard-topbar{border-color:color-mix(in srgb,var(--color-base-content) 8%,transparent)}}.sidebar-header{border-bottom-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);border-bottom-width:1px;border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.sidebar-header{border-color:color-mix(in srgb,var(--color-base-content) 6%,transparent)}}.sidebar-header-title{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.sidebar-header-title{color:color-mix(in srgb,var(--color-base-content) 50%,transparent)}}.sidebar-section{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2)}.sidebar-section-title{margin-bottom:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 1);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.sidebar-section-title{color:color-mix(in srgb,var(--color-base-content) 45%,transparent)}}.nav-item{cursor:pointer;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-lg);padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * 2);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s;display:flex}.nav-item:hover:not(.active){background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.nav-item:hover:not(.active){background:color-mix(in srgb,var(--color-base-content) 5%,transparent)}}.nav-item.active{background:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.nav-item.active{background:color-mix(in srgb,var(--color-primary) 15%,transparent)}}.nav-item.active{box-shadow:inset 0 0 0 1px var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.nav-item.active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-primary) 30%,transparent)}}.memory-card{border-radius:var(--radius-lg);padding:calc(var(--spacing) * 3);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;background:var(--color-base-content);transition-duration:.15s}@supports (color:color-mix(in lab,red,red)){.memory-card{background:color-mix(in srgb,var(--color-base-content) 4%,transparent)}}.memory-card:hover{background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.memory-card:hover{background:color-mix(in srgb,var(--color-base-content) 6%,transparent)}}.stats-card{border-radius:var(--radius-lg);padding:calc(var(--spacing) * 4);background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.stats-card{background:color-mix(in srgb,var(--color-base-content) 4%,transparent)}}.property-card{border-radius:var(--radius-lg);padding:calc(var(--spacing) * 3);background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.property-card{background:color-mix(in srgb,var(--color-base-content) 4%,transparent)}}.property-label{margin-bottom:calc(var(--spacing) * 1);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-base-content);display:block}@supports (color:color-mix(in lab,red,red)){.property-label{color:color-mix(in srgb,var(--color-base-content) 55%,transparent)}}.settings-collapse{border-radius:var(--radius-lg);background:var(--color-base-content);overflow:hidden}@supports (color:color-mix(in lab,red,red)){.settings-collapse{background:color-mix(in srgb,var(--color-base-content) 3%,transparent)}}.settings-collapse .collapse-title{min-height:calc(var(--spacing) * 0);padding-block:calc(var(--spacing) * 2.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.status-indicator{align-items:center;gap:calc(var(--spacing) * 1.5);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);border-radius:3.40282e38px;display:inline-flex}.status-indicator.online{background:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.status-indicator.online{background:color-mix(in srgb,var(--color-success) 15%,transparent)}}.status-indicator.online{color:var(--color-success)}.status-indicator.offline{background:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.status-indicator.offline{background:color-mix(in srgb,var(--color-error) 15%,transparent)}}.status-indicator.offline{color:var(--color-error)}.status-indicator.processing{background:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.status-indicator.processing{background:color-mix(in srgb,var(--color-warning) 15%,transparent)}}.status-indicator.processing{color:var(--color-warning)}@layer daisyui.l1.l2.l3{.search-input{cursor:text;border:var(--border) solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,.875rem),.875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab,red,red)){.search-input{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.search-input{--size:calc(var(--size-field,.25rem) * 10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.search-input{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.search-input:where(input){display:inline-flex}.search-input :where(input){-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex}.search-input :where(input):focus,.search-input :where(input):focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.search-input :where(input):focus,.search-input :where(input):focus-within{outline-offset:2px;outline:2px solid #0000}}.search-input :where(input[type=url]),.search-input :where(input[type=email]){direction:ltr}.search-input :where(input[type=date]){display:inline-flex}.search-input:focus,.search-input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.search-input:focus,.search-input:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000)}}.search-input:focus,.search-input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media(pointer:coarse){@supports (-webkit-touch-callout:none){.search-input:focus,.search-input:focus-within{--font-size:1rem}}}.search-input:has(>input[disabled]),.search-input:is(:disabled,[disabled]),fieldset:disabled .search-input{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.search-input:has(>input[disabled]),.search-input:is(:disabled,[disabled]),fieldset:disabled .search-input{color:color-mix(in oklab,var(--color-base-content) 40%,transparent)}}:is(.search-input:has(>input[disabled]),.search-input:is(:disabled,[disabled]),fieldset:disabled .search-input)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.search-input:has(>input[disabled]),.search-input:is(:disabled,[disabled]),fieldset:disabled .search-input)::placeholder{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.search-input:has(>input[disabled]),.search-input:is(:disabled,[disabled]),fieldset:disabled .search-input{box-shadow:none}.search-input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.search-input::-webkit-date-and-time-value{text-align:inherit}.search-input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.search-input::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}.search-input:has(>input[type=date]) :where(input[type=date]){webkit-appearance:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex}.search-input:has(>input[type=date]) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute;inset-inline-end:.75em}}@layer daisyui.l1.l2{.search-input{--size:calc(var(--size-field,.25rem) * 8);font-size:max(var(--font-size,.75rem),.75rem)}.search-input[type=number]::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}.badge-observation{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.badge-summary{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.badge-prompt{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.badge-bugfix{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.badge-refactor{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.badge-discovery{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.badge-decision{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.badge-change{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}}.search-input{border-style:var(--tw-border-style);background:var(--color-base-content);border-width:1px;width:100%}@supports (color:color-mix(in lab,red,red)){.search-input{background:color-mix(in srgb,var(--color-base-content) 4%,transparent)}}.search-input{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.search-input{border-color:color-mix(in srgb,var(--color-base-content) 10%,transparent)}}.search-input:focus{border-color:var(--color-primary);background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.search-input:focus{background:color-mix(in srgb,var(--color-base-content) 6%,transparent)}}.badge-feature{color:#4ade80;background-color:#22c55e26;border-color:#22c55e40}.dashboard-layout:after{content:"";z-index:0;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;position:fixed;top:0;right:0;bottom:0;left:0}@media(prefers-reduced-motion:reduce){.dashboard-layout:after{display:none}}.surface-elevated{background:var(--color-base-400)}.surface-border{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.surface-border{border-color:color-mix(in srgb,var(--color-base-content) 10%,transparent)}}.card-hover{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}.card-hover:hover{border-color:var(--color-base-content);transform:translateY(-2px)}@supports (color:color-mix(in lab,red,red)){.card-hover:hover{border-color:color-mix(in srgb,var(--color-base-content) 15%,transparent)}}@media(prefers-reduced-motion:reduce){.card-hover:hover{transform:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.text-display{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);letter-spacing:-.025em}.text-heading{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);letter-spacing:-.015em}.text-label{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-label{color:color-mix(in srgb,var(--color-base-content) 50%,transparent)}}.text-data{font-variant-numeric:tabular-nums;font-family:Geist Mono,monospace}.text-muted{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-muted{color:color-mix(in srgb,var(--color-base-content) 50%,transparent)}}.text-subtle{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-subtle{color:color-mix(in srgb,var(--color-base-content) 70%,transparent)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--color-base-content) 15%,transparent)}}::-webkit-scrollbar-thumb{border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--color-base-content) 25%,transparent)}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes dropdown{0%{opacity:0}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes rotator{89.9999%,to{--first-item-position:0 0%}90%,99.9999%{--first-item-position:0 calc(var(--items) * 100%)}to{translate:0 -100%}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@keyframes menu{0%{opacity:0}}@keyframes progress{50%{background-position-x:-115%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}} +/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-orange-500:oklch(70.5% .213 47.604);--color-amber-400:oklch(82.8% .189 84.429);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-500:oklch(62.7% .265 303.9);--color-pink-500:oklch(65.6% .241 354.308);--color-black:#000;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E");scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab,red,red)){:root{scrollbar-color:color-mix(in oklch,currentColor 35%,#0000) #0000}}:root:not(span){overflow:var(--page-overflow)}:root,[data-theme]{background:var(--page-scroll-bg,var(--root-bg));color:var(--color-base-content)}:where(:root,[data-theme]){--root-bg:var(--color-base-100)}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--root-bg:#0f0f0f;--layout-sidebar-background:#1a1a1a;--layout-topbar-background:#1a1a1a;--color-base-100:#1a1a1a;--color-base-200:#242424;--color-base-300:#2e2e2e;--color-base-400:#383838;--color-base-content:#fafafa;--color-primary:#5b9ed9;--color-primary-content:#fff;--color-secondary:#a855f7;--color-secondary-content:#fff;--color-accent:#5b9ed9;--color-accent-content:#fff;--color-neutral:#d1d5db;--color-neutral-content:#1e2832;--color-info:#0ea5e9;--color-info-content:#fff;--color-success:#22d3ee;--color-success-content:#fff;--color-warning:#f59e0b;--color-warning-content:#150a00;--color-error:#ef4444;--color-error-content:#fff;--radius-field:.375rem;--radius-box:.375rem;--rounded-box:.375rem;--radius-selector:.375rem;--border:1px}}:where(:root),:root:has(input.theme-controller[value=pilot-shell]:checked),[data-theme=pilot-shell]{color-scheme:dark;--root-bg:#0f0f0f;--layout-sidebar-background:#1a1a1a;--layout-topbar-background:#1a1a1a;--color-base-100:#1a1a1a;--color-base-200:#242424;--color-base-300:#2e2e2e;--color-base-400:#383838;--color-base-content:#fafafa;--color-primary:#5b9ed9;--color-primary-content:#fff;--color-secondary:#a855f7;--color-secondary-content:#fff;--color-accent:#5b9ed9;--color-accent-content:#fff;--color-neutral:#d1d5db;--color-neutral-content:#1e2832;--color-info:#0ea5e9;--color-info-content:#fff;--color-success:#22d3ee;--color-success-content:#fff;--color-warning:#f59e0b;--color-warning-content:#150a00;--color-error:#ef4444;--color-error-content:#fff;--radius-field:.375rem;--radius-box:.375rem;--rounded-box:.375rem;--radius-selector:.375rem;--border:1px}:root:has(input.theme-controller[value=pilot-shell-light]:checked),[data-theme=pilot-shell-light]{color-scheme:light;--root-bg:#f5f5f5;--layout-sidebar-background:#fff;--layout-topbar-background:#fff;--color-base-100:#fff;--color-base-200:#f0f0f0;--color-base-300:#e0e0e0;--color-base-400:#d5d5d5;--color-base-content:#171717;--color-primary:#4a90c7;--color-primary-content:#fff;--color-secondary:#9333ea;--color-secondary-content:#fff;--color-accent:#4a90c7;--color-accent-content:#fff;--color-neutral:#1f2937;--color-neutral-content:#fafcff;--color-info:#0284c7;--color-info-content:#fff;--color-success:#0891b2;--color-success-content:#fff;--color-warning:#d97706;--color-warning-content:#150a00;--color-error:#dc2626;--color-error-content:#fff;--radius-field:.375rem;--radius-box:.375rem;--rounded-box:.375rem;--radius-selector:.375rem;--border:1px}}@layer components;@layer utilities{@layer daisyui.l1.l2.l3{.diff{webkit-user-select:none;-webkit-user-select:none;user-select:none;direction:ltr;grid-template-rows:1fr 1.8rem 1fr;grid-template-columns:auto 1fr;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size}.diff:focus-visible,.diff:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}.diff:focus-visible .diff-resizer{min-width:95cqi;max-width:95cqi}.diff:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px}.diff:has(.diff-item-1:focus-visible) .diff-resizer{min-width:5cqi;max-width:5cqi}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){.diff:focus .diff-resizer{min-width:5cqi;max-width:5cqi}.diff:has(.diff-item-1:focus) .diff-resizer{min-width:95cqi;max-width:95cqi}}.modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:visibility .3s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;overscroll-behavior:contain;z-index:999;scrollbar-gutter:auto;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;top:0;right:0;bottom:0;left:0;overflow:clip}.modal::backdrop{display:none}.tooltip{--tt-bg:var(--color-neutral);--tt-off: calc(100% + .5rem) ;--tt-tail: calc(100% + 1px + .25rem) ;display:inline-block;position:relative}.tooltip>.tooltip-content,.tooltip[data-tip]:before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;position:absolute}.tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);display:block;position:absolute}@media(prefers-reduced-motion:no-preference){.tooltip>.tooltip-content,.tooltip[data-tip]:before,.tooltip:after{transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms}}:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{opacity:1;--tt-pos:0rem}@media(prefers-reduced-motion:no-preference){:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}.tab{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;webkit-user-select:none;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:center;align-items:center;display:inline-flex;position:relative}@media(hover:hover){.tab:hover{color:var(--color-base-content)}}.tab{--tab-p:.75rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));--tab-radius-limit:min(var(--radius-field), var(--tab-radius-min));--tab-radius-grad:#0000 calc(69% - var(--border)), var(--tab-border-color) calc(69% - var(--border) + .25px), var(--tab-border-color) 69%, var(--tab-bg) calc(69% + .25px) ;order:var(--tab-order);height:var(--tab-height);padding-inline:var(--tab-p);border-color:#0000;font-size:.875rem}.tab:is(input[type=radio]){min-width:fit-content}.tab:is(input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.tab:is(label){position:relative}.tab:is(label) input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0;position:absolute;top:0;right:0;bottom:0;left:0}:is(.tab:checked,.tab:is(label:has(:checked)),.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content{display:block}.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab,var(--color-base-content) 50%,transparent)}}.tab:not(input):empty{cursor:default;flex-grow:1}.tab:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.tab:focus{outline-offset:2px;outline:2px solid #0000}}.tab:focus-visible,.tab:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}.tab[disabled]{pointer-events:none;opacity:.4}.menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex}.menu :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative}.menu :where(li ul):before{background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";inset-inline-start:0;position:absolute;top:.75rem;bottom:.75rem}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}.menu :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;-webkit-user-select:none;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}.menu :where(li>details>summary){--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li>details>summary){outline-offset:2px;outline:2px solid #0000}}.menu :where(li>details>summary)::-webkit-details-marker{display:none}:is(.menu :where(li>details>summary),.menu :where(li>.menu-dropdown-toggle)):after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}.menu details{interpolate-size:allow-keywords;overflow:hidden}.menu details::details-content{block-size:0}@media(prefers-reduced-motion:no-preference){.menu details::details-content{transition-behavior:allow-discrete;transition-property:block-size,content-visibility;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}}.menu details[open]::details-content{block-size:auto}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{background-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{color:var(--color-base-content);--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){background-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){box-shadow:inset 0 1px #00000003,inset 0 -1px #ffffff03}.menu :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}.menu :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative}.menu :where(li) .badge{justify-self:flex-end}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{outline-offset:2px;outline:2px solid #0000}}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--fx-noise)}:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):not(:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):active){box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg)}.menu :where(li).menu-disabled{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.menu :where(li).menu-disabled{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.menu .dropdown:focus-within .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}.menu .dropdown-content{margin-top:.5rem;padding:.5rem}.menu .dropdown-content:before{display:none}.dropdown{position-area:var(--anchor-v,bottom) var(--anchor-h,span-right);display:inline-block;position:relative}.dropdown>:not(:has(~[class*=dropdown-content])):focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.dropdown>:not(:has(~[class*=dropdown-content])):focus{outline-offset:2px;outline:2px solid #0000}}.dropdown .dropdown-content{position:absolute}.dropdown.dropdown-close .dropdown-content,.dropdown:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within) .dropdown-content,.dropdown.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible)~.dropdown-content{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover],.dropdown .dropdown-content{z-index:999}@media(prefers-reduced-motion:no-preference){.dropdown[popover],.dropdown .dropdown-content{transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}}@starting-style{.dropdown[popover],.dropdown .dropdown-content{opacity:0;scale:.95}}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within)>[tabindex]:first-child{pointer-events:none}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within) .dropdown-content,.dropdown:not(.dropdown-close).dropdown-hover:hover .dropdown-content{opacity:1;scale:1}.dropdown:is(details) summary::-webkit-details-marker{display:none}.dropdown:where([popover]){background:0 0}.dropdown[popover]{color:inherit;position:fixed}@supports not (position-area:bottom){.dropdown[popover]{margin:auto}.dropdown[popover].dropdown-close{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover].dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover]::backdrop{background-color:oklab(0% none none/.3)}}:is(.dropdown[popover].dropdown-close,.dropdown[popover]:not(.dropdown-open,:popover-open)){transform-origin:top;opacity:0;display:none;scale:.95}:where(.btn){width:unset}.btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0 / calc(var(--depth) * .15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%)) inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem) * 10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:var(--btn-bg);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@supports (color:color-mix(in lab,red,red)){.btn{--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))}}.btn{--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab,red,red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}.btn{--btn-noise:var(--fx-noise)}@media(hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:hover{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}}.btn:focus-visible,.btn:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200));translate:0 .5px}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 5%)}}.btn:active:not(.btn-active){--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab,red,red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn:active:not(.btn-active){--btn-shadow:0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0)}.btn:is(input[type=checkbox],input[type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn:is(input[type=checkbox],input[type=radio])[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}.btn:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}.loading{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem) * 6);background-color:currentColor;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;grid-template-columns:minmax(0,1fr);width:100%;display:grid;position:relative;overflow:hidden}@media(prefers-reduced-motion:no-preference){.collapse{transition:grid-template-rows .2s}}.collapse>input:is([type=checkbox],[type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0;z-index:1;grid-row-start:1;grid-column-start:1;width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close)),.collapse:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){content-visibility:visible;min-height:fit-content}@supports not (content-visibility:visible){.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible}}.collapse:focus-visible,.collapse:has(>input:is([type=checkbox],[type=radio]):focus-visible),.collapse:has(summary:focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}.collapse:not(.collapse-close)>input[type=checkbox],.collapse:not(.collapse-close)>input[type=radio]:not(:checked),.collapse:not(.collapse-close)>.collapse-title{cursor:pointer}:is(.collapse[tabindex]:focus:not(.collapse-close,.collapse[open]),.collapse[tabindex]:focus-within:not(.collapse-close,.collapse[open]))>.collapse-title{cursor:unset}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>:where(.collapse-content),.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem}.collapse:is(details){width:100%}@media(prefers-reduced-motion:no-preference){.collapse:is(details)::details-content{transition:content-visibility .2s allow-discrete,visibility .2s allow-discrete,min-height .2s ease-out allow-discrete,padding .1s ease-out 20ms,background-color .2s ease-out,height .2s;interpolate-size:allow-keywords;height:0}.collapse:is(details):where([open])::details-content{height:auto}}.collapse:is(details) summary{display:block;position:relative}.collapse:is(details) summary::-webkit-details-marker{display:none}.collapse:is(details)>.collapse-content{content-visibility:visible}.collapse:is(details) summary{outline:none}.list{flex-direction:column;font-size:.875rem;display:flex}.list .list-row{--list-grid-cols:minmax(0, auto) 1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative}:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{content:"";border-bottom:var(--border) solid;inset-inline:var(--radius-box);border-color:var(--color-base-content);position:absolute;bottom:0}@supports (color:color-mix(in lab,red,red)){:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{border-color:color-mix(in oklab,var(--color-base-content) 5%,transparent)}}.toast{translate:var(--toast-x,0) var(--toast-y,0);inset-inline:auto 1rem;background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem}@media(prefers-reduced-motion:no-preference){.toast>*{animation:.25s ease-out toast}}.toggle{border:var(--border) solid currentColor;color:var(--input-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p),var(--radius-selector-max)) + min(var(--border),var(--radius-selector-max)));padding:var(--toggle-p);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;display:inline-grid;position:relative;box-shadow:inset 0 1px}@supports (color:color-mix(in lab,red,red)){.toggle{box-shadow:0 1px color-mix(in oklab,currentColor calc(var(--depth) * 10%),#0000) inset}}.toggle{--input-color:var(--color-base-content);transition:color .3s,grid-template-columns .2s}@supports (color:color-mix(in lab,red,red)){.toggle{--input-color:color-mix(in oklab, var(--color-base-content) 50%, #0000)}}.toggle{--toggle-p:calc(var(--size) * .125);--size:calc(var(--size-selector,.25rem) * 6);width:calc((var(--size) * 2) - (var(--border) + var(--toggle-p)) * 2);height:var(--size)}.toggle>*{z-index:1;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s}.toggle>:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.toggle>:focus{outline-offset:2px;outline:2px solid #0000}}.toggle>:nth-child(2){color:var(--color-base-100);rotate:0deg}.toggle>:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}.toggle:has(:checked)>:nth-child(2){opacity:0;rotate:15deg}.toggle:has(:checked)>:nth-child(3){opacity:1;rotate:0deg}.toggle:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);width:100%;height:100%;box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px currentColor;background-color:currentColor;grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@supports (color:color-mix(in lab,red,red)){.toggle:before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth) * 10%),#0000)}}.toggle:before{background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--fx-noise)}@media(forced-colors:active){.toggle:before{outline-style:var(--tw-outline-style);outline-offset:-1px;outline-width:1px}}@media print{.toggle:before{outline-offset:-1rem;outline:.25rem solid}}.toggle:focus-visible,.toggle:has(:focus-visible){outline-offset:2px;outline:2px solid}.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr}:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{background-color:currentColor}@starting-style{:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{opacity:0}}.toggle:indeterminate{grid-template-columns:.5fr 1fr .5fr}.toggle:disabled{cursor:not-allowed;opacity:.3}.toggle:disabled:before{border:var(--border) solid currentColor;background-color:#0000}.input{cursor:text;border:var(--border) solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,.875rem),.875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab,red,red)){.input{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.input{--size:calc(var(--size-field,.25rem) * 10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.input:where(input){display:inline-flex}.input :where(input){-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex}.input :where(input):focus,.input :where(input):focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.input :where(input):focus,.input :where(input):focus-within{outline-offset:2px;outline:2px solid #0000}}.input :where(input[type=url]),.input :where(input[type=email]){direction:ltr}.input :where(input[type=date]){display:inline-flex}.input:focus,.input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.input:focus,.input:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000)}}.input:focus,.input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media(pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus,.input:focus-within{--font-size:1rem}}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{color:color-mix(in oklab,var(--color-base-content) 40%,transparent)}}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{box-shadow:none}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.input::-webkit-date-and-time-value{text-align:inherit}.input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}.input:has(>input[type=date]) :where(input[type=date]){webkit-appearance:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex}.input:has(>input[type=date]) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute;inset-inline-end:.75em}.indicator{width:max-content;display:inline-flex;position:relative}.indicator :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%) var(--indicator-y,-50%);position:absolute}.table{border-collapse:separate;--tw-border-spacing-x: 0rem ;--tw-border-spacing-y: 0rem ;width:100%;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);border-radius:var(--radius-box);text-align:left;font-size:.875rem;position:relative}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media(hover:hover){:is(.table tr.row-hover,.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)}}.table :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}.table :where(thead,tfoot){white-space:nowrap;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead,tfoot){color:color-mix(in oklab,var(--color-base-content) 60%,transparent)}}.table :where(thead,tfoot){font-size:.875rem;font-weight:600}.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid color-mix(in oklch,var(--color-base-content) 5%,#0000)}}.table :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}.table :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid color-mix(in oklch,var(--color-base-content) 5%,#0000)}}.range{-webkit-appearance:none;-moz-appearance:none;appearance:none;webkit-appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem) * 6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:currentColor}@supports (color:color-mix(in lab,red,red)){.range{--range-bg:color-mix(in oklab, currentColor 10%, #0000)}}.range{cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden}[dir=rtl] .range{--range-dir:-1}.range:focus{outline:none}.range:focus-visible{outline-offset:2px;outline:2px solid}.range::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}@media(forced-colors:active){.range::-webkit-slider-runnable-track{border:1px solid}.range::-moz-range-track{border:1px solid}}.range::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));background-color:var(--range-thumb);height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;-webkit-appearance:none;-moz-appearance:none;appearance:none;webkit-appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px currentColor,0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill));position:relative;top:50%;transform:translateY(-50%)}@supports (color:color-mix(in lab,red,red)){.range::-webkit-slider-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth) * 10%),#0000),0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill))}}.range::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}.range::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p),var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px currentColor,0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill));background-color:currentColor;position:relative;top:50%}@supports (color:color-mix(in lab,red,red)){.range::-moz-range-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px color-mix(in oklab,currentColor calc(var(--depth) * 10%),#0000),0 0 0 2rem var(--range-thumb) inset,calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill))}}.range:disabled{cursor:not-allowed;opacity:.3}.select{border:var(--border) solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;white-space:nowrap;text-overflow:ellipsis;box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:.75rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.select{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.select{border-color:var(--input-color);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.select{--size:calc(var(--size-field,.25rem) * 10)}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}[dir=rtl] .select::picker(select){translate:.5rem}[dir=rtl] .select select::picker(select){translate:.5rem}.select[multiple]{background-image:none;height:auto;padding-block:.75rem;padding-inline-end:.75rem;overflow:auto}.select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:calc(100% + 2.75rem);height:calc(100% - calc(var(--border) * 2));background:inherit;border-radius:inherit;border-style:none;align-items:center;margin-inline:-.75rem -1.75rem;padding-inline:.75rem 1.75rem}.select select:focus,.select select:focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px;outline:2px solid #0000}}.select select:not(:last-child){background-image:none;margin-inline-end:-1.375rem}.select:focus,.select:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.select:focus,.select:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000)}}.select:focus,.select:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{color:color-mix(in oklab,var(--color-base-content) 40%,transparent)}}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed}@supports (appearance:base-select){.select,.select select{-webkit-appearance:base-select;-moz-appearance:base-select;appearance:base-select}:is(.select,.select select)::picker(select){-webkit-appearance:base-select;-moz-appearance:base-select;appearance:base-select}}:is(.select,.select select)::picker(select){color:inherit;border:var(--border) solid var(--color-base-200);border-radius:var(--radius-box);background-color:inherit;max-height:min(24rem,70dvh);box-shadow:0 2px calc(var(--depth) * 3px) -2px #0003;box-shadow:0 20px 25px -5px rgb(0 0 0/calc(var(--depth) * .1)),0 8px 10px -6px rgb(0 0 0/calc(var(--depth) * .1));margin-block:.5rem;margin-inline:.5rem;padding:.5rem;translate:-.5rem}:is(.select,.select select)::picker-icon{display:none}:is(.select,.select select) optgroup{padding-top:.5em}:is(.select,.select select) optgroup option:first-child{margin-top:.5em}:is(.select,.select select) option{border-radius:var(--radius-field);white-space:normal;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{background-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{outline-offset:2px;outline:2px solid #0000}}:is(.select,.select select) option:not(:disabled):active{background-color:var(--color-neutral);color:var(--color-neutral-content);box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--color-neutral)}.timeline{display:flex;position:relative}.timeline>li{grid-template-rows:var(--timeline-row-start,minmax(0, 1fr)) auto var(--timeline-row-end,minmax(0, 1fr));grid-template-columns:var(--timeline-col-start,minmax(0, 1fr)) auto var(--timeline-col-end,minmax(0, 1fr));flex-shrink:0;align-items:center;display:grid;position:relative}.timeline>li>hr{border:none;width:100%}.timeline>li>hr:first-child{grid-row-start:2;grid-column-start:1}.timeline>li>hr:last-child{grid-area:2/3/auto/none}@media print{.timeline>li>hr{border:.1px solid var(--color-base-300)}}.timeline :where(hr){background-color:var(--color-base-300);height:.25rem}.timeline:has(.timeline-middle hr):first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline:has(.timeline-middle hr):last-child,.timeline:not(:has(.timeline-middle)) :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}.timeline:not(:has(.timeline-middle)) :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.checkbox{border:var(--border) solid var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox{border:var(--border) solid var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset,0 0 #0000 inset,0 0 #0000;--size:calc(var(--size-selector,.25rem) * 6);width:var(--size);height:var(--size);background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative}.checkbox:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0 3px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset,0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset,0 1px oklch(0% 0 0 / calc(var(--depth) * .1))}:is(.checkbox:checked,.checkbox[aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media(forced-colors:active){:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}@media print{:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab,red,red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox:indeterminate:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:0deg}.card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative}.card:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.card:focus{outline-offset:2px;outline:2px solid #0000}}.card:focus-visible{outline-color:currentColor}.card :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}.card :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}.card figure{justify-content:center;align-items:center;display:flex}.card:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;-webkit-user-select:none;user-select:none}.card:has(>:checked){outline:2px solid}.stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-box);background-color:currentColor;width:100%;height:.5rem;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.progress{background-color:color-mix(in oklab,currentcolor 20%,transparent)}}.progress{color:var(--color-base-content)}.progress:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%}@media(prefers-reduced-motion:no-preference){.progress:indeterminate{animation:5s ease-in-out infinite progress}}@supports ((-moz-appearance:none)){.progress:indeterminate::-moz-progress-bar{background-color:#0000}@media(prefers-reduced-motion:no-preference){.progress:indeterminate::-moz-progress-bar{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}.progress::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){.progress::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}.progress::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}.textarea{border:var(--border) solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);min-height:5rem;font-size:max(var(--font-size,.875rem),.875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;flex-shrink:1;padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab,red,red)){.textarea{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.textarea{--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.textarea textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px;outline:2px solid #0000}}.textarea:focus,.textarea:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.textarea:focus,.textarea:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000)}}.textarea:focus,.textarea:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media(pointer:coarse){@supports (-webkit-touch-callout:none){.textarea:focus,.textarea:focus-within{--font-size:1rem}}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){color:color-mix(in oklab,var(--color-base-content) 40%,transparent)}}:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){box-shadow:none}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}.modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid}.modal-backdrop button{cursor:pointer}.modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:.95;box-shadow:0 25px 50px -12px #00000040}.stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.stat-desc{white-space:nowrap;color:var(--color-base-content);grid-column-start:1}@supports (color:color-mix(in lab,red,red)){.stat-desc{color:color-mix(in oklab,var(--color-base-content) 60%,transparent)}}.stat-desc{font-size:.75rem}.stat-title{white-space:nowrap;color:var(--color-base-content);grid-column-start:1}@supports (color:color-mix(in lab,red,red)){.stat-title{color:color-mix(in oklab,var(--color-base-content) 60%,transparent)}}.stat-title{font-size:.75rem}.divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:var(--color-base-content);flex-direction:row;align-self:stretch;align-items:center;display:flex}@supports (color:color-mix(in lab,red,red)){.divider{--divider-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.divider:before,.divider:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{.divider:before,.divider:after{border:.5px solid}}.divider:not(:empty){gap:1rem}.filter{flex-wrap:wrap;display:flex}.filter input[type=radio]{width:auto}.filter input{opacity:1;transition:margin .1s,opacity .3s,padding .3s,border-width .1s;overflow:hidden;scale:1}.filter input:not(:last-child){margin-inline-end:.25rem}.filter input.filter-reset{aspect-ratio:1}.filter input.filter-reset:after{--tw-content:"×";content:var(--tw-content)}.filter:not(:has(input:checked:not(.filter-reset))) .filter-reset,.filter:not(:has(input:checked:not(.filter-reset))) input[type=reset],.filter:has(input:checked:not(.filter-reset)) input:not(:checked,.filter-reset,input[type=reset]){opacity:0;border-width:0;width:0;margin-inline:0;padding-inline:0;scale:0}.label{white-space:nowrap;color:currentColor;align-items:center;gap:.375rem;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.label{color:color-mix(in oklab,currentcolor 60%,transparent)}}.label:has(input){cursor:pointer}.label:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex}.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid currentColor;margin-inline:-.75rem .75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid color-mix(in oklab,currentColor 10%,#0000)}}.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid currentColor;margin-inline:.75rem -.75rem}@supports (color:color-mix(in lab,red,red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid color-mix(in oklab,currentColor 10%,#0000)}}.modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:var(--color-base-content);width:.5rem;height:.5rem;display:inline-block}@supports (color:color-mix(in lab,red,red)){.status{background-color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.status{vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat}@supports (color:color-mix(in lab,red,red)){.status{color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.status{background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0 / calc(var(--depth) * .5)),#0000);box-shadow:0 2px 3px -1px}@supports (color:color-mix(in lab,red,red)){.status{box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth) * 100%),#0000)}}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border) solid var(--badge-color,var(--color-base-200));background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem) * 6);width:fit-content;height:var(--size);padding-inline:calc(var(--size) / 2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border) solid var(--color-base-content);justify-content:center;align-items:center;padding-inline:.5em;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.kbd{border:var(--border) solid color-mix(in srgb,var(--color-base-content) 20%,#0000)}}.kbd{border-bottom:calc(var(--border) + 1px) solid var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.kbd{border-bottom:calc(var(--border) + 1px) solid color-mix(in srgb,var(--color-base-content) 20%,#0000)}}.kbd{--size:calc(var(--size-selector,.25rem) * 6);height:var(--size);min-width:var(--size);font-size:.875rem}.tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem) * 10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid}.footer>*{place-items:start;gap:.5rem;display:grid}.footer.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center}.footer.footer-center>*{place-items:center}.stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid}.stat:not(:last-child){border-inline-end:var(--border) dashed currentColor}@supports (color:color-mix(in lab,red,red)){.stat:not(:last-child){border-inline-end:var(--border) dashed color-mix(in oklab,currentColor 10%,#0000)}}.stat:not(:last-child){border-block-end:none}.card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex}.card-body :where(p){flex-grow:1}.alert{--alert-border-color:var(--color-base-200);border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;background-size:auto,calc(var(--noise) * 100%);background-image:none,var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset,0 1px #000,0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08));border-style:solid;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid}@supports (color:color-mix(in lab,red,red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset,0 1px color-mix(in oklab,color-mix(in oklab,#000 20%,var(--alert-color,var(--color-base-200))) calc(var(--depth) * 20%),#0000),0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08))}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}.card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}.skeleton{border-radius:var(--radius-box);background-color:var(--color-base-300)}@media(prefers-reduced-motion:reduce){.skeleton{transition-duration:15s}}.skeleton{will-change:background-position;background-image:linear-gradient(105deg,#0000 0% 40%,var(--color-base-100) 50%,#0000 60% 100%);background-position-x:-50%;background-size:200%}@media(prefers-reduced-motion:no-preference){.skeleton{animation:1.8s ease-in-out infinite skeleton}}.link{cursor:pointer;text-decoration-line:underline}.link:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.link:focus{outline-offset:2px;outline:2px solid #0000}}.link:focus-visible{outline-offset:2px;outline:2px solid}.btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}.btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}}@layer daisyui.l1.l2{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete,background-color .3s ease-out,opacity .1s ease-out;background-color:#0006}:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal) .modal-box{opacity:1;translate:0;scale:1}:root:has(:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal)){--page-has-backdrop:1;--page-overflow:hidden;--page-scroll-bg:var(--page-scroll-bg-on);--page-scroll-gutter:stable;--page-scroll-transition:var(--page-scroll-transition-on);animation:forwards set-page-has-scroll;animation-timeline:scroll()}@starting-style{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{opacity:0}}.tooltip>.tooltip-content,.tooltip[data-tip]:before{transform:translate(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}.tooltip:after{transform:translate(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.btn:disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.btn:disabled:not(.btn-link,.btn-ghost){box-shadow:none}.btn:disabled{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn:disabled{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.btn[disabled]:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.btn[disabled]:not(.btn-link,.btn-ghost){box-shadow:none}.btn[disabled]{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.btn[disabled]{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}@media(prefers-reduced-motion:no-preference){.collapse[open].collapse-arrow>.collapse-title:after,.collapse.collapse-open.collapse-arrow>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}.collapse.collapse-open.collapse-plus>.collapse-title:after{--tw-content:"−";content:var(--tw-content)}:is(.collapse[tabindex].collapse-arrow:focus:not(.collapse-close),.collapse.collapse-arrow[tabindex]:focus-within:not(.collapse-close))>.collapse-title:after,.collapse.collapse-arrow:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}.collapse[open].collapse-plus>.collapse-title:after,.collapse[tabindex].collapse-plus:focus:not(.collapse-close)>.collapse-title:after,.collapse.collapse-plus:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{--tw-content:"−";content:var(--tw-content)}.list .list-row:has(.list-col-grow:first-child){--list-grid-cols:1fr}.list .list-row:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row>*{grid-row-start:1}.checkbox:disabled{cursor:not-allowed;opacity:.2}.tooltip-bottom>.tooltip-content,.tooltip-bottom[data-tip]:before{transform:translate(-50%) translateY(var(--tt-pos,-.25rem));inset:var(--tt-off) auto auto 50%}.tooltip-bottom:after{transform:translate(-50%) translateY(var(--tt-pos,-.25rem)) rotate(180deg);inset:var(--tt-tail) auto auto 50%}.tooltip-left>.tooltip-content,.tooltip-left[data-tip]:before{transform:translate(calc(var(--tt-pos,.25rem) - .25rem)) translateY(-50%);inset:50% var(--tt-off) auto auto}.tooltip-left:after{transform:translate(var(--tt-pos,.25rem)) translateY(-50%) rotate(-90deg);inset:50% calc(var(--tt-tail) + 1px) auto auto}.tooltip-right>.tooltip-content,.tooltip-right[data-tip]:before{transform:translate(calc(var(--tt-pos,-.25rem) + .25rem)) translateY(-50%);inset:50% auto auto var(--tt-off)}.tooltip-right:after{transform:translate(var(--tt-pos,-.25rem)) translateY(-50%) rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}.tooltip-top>.tooltip-content,.tooltip-top[data-tip]:before{transform:translate(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}.tooltip-top:after{transform:translate(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.toast-end{--toast-x:0;inset-inline:auto 1rem}.dropdown-end{--anchor-h:span-left}.dropdown-end :where(.dropdown-content){inset-inline-end:0;translate:0}[dir=rtl] :is(.dropdown-end :where(.dropdown-content)){translate:0}.dropdown-end.dropdown-left{--anchor-h:left;--anchor-v:span-top}.dropdown-end.dropdown-left .dropdown-content{top:auto;bottom:0}.dropdown-end.dropdown-right{--anchor-h:right;--anchor-v:span-top}.dropdown-end.dropdown-right .dropdown-content{top:auto;bottom:0}.dropdown-bottom{--anchor-v:bottom}.dropdown-bottom .dropdown-content{transform-origin:top;top:100%;bottom:auto}.toast-bottom{--toast-y:0;top:auto;bottom:1rem}.input-lg{--size:calc(var(--size-field,.25rem) * 12);font-size:max(var(--font-size,1.125rem),1.125rem)}.input-lg[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input-sm{--size:calc(var(--size-field,.25rem) * 8);font-size:max(var(--font-size,.75rem),.75rem)}.input-sm[type=number]::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}.input-xs{--size:calc(var(--size-field,.25rem) * 6);font-size:max(var(--font-size,.6875rem),.6875rem)}.input-xs[type=number]::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}.btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.btn-square{width:var(--size);height:var(--size);padding-inline:0}.loading-lg{width:calc(var(--size-selector,.25rem) * 7)}.loading-md{width:calc(var(--size-selector,.25rem) * 6)}.loading-sm{width:calc(var(--size-selector,.25rem) * 5)}.loading-xs{width:calc(var(--size-selector,.25rem) * 4)}.badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}.checkbox-xs{--size:calc(var(--size-selector,.25rem) * 4);padding:.125rem}.select-lg{--size:calc(var(--size-field,.25rem) * 12);font-size:1.125rem}.select-lg option{padding-block:.375rem;padding-inline:1rem}.select-sm{--size:calc(var(--size-field,.25rem) * 8);font-size:.75rem}.select-sm option{padding-block:.25rem;padding-inline:.625rem}.select-xs{--size:calc(var(--size-field,.25rem) * 6);font-size:.6875rem}.select-xs option{padding-block:.25rem;padding-inline:.5rem}.table-sm :not(thead,tfoot) tr{font-size:.75rem}.table-sm :where(th,td){padding-block:.5rem;padding-inline:.75rem}.table-xs :not(thead,tfoot) tr{font-size:.6875rem}.table-xs :where(th,td){padding-block:.25rem;padding-inline:.5rem}.badge-lg{--size:calc(var(--size-selector,.25rem) * 7);font-size:1rem}.badge-sm{--size:calc(var(--size-selector,.25rem) * 5);font-size:.75rem}.badge-xs{--size:calc(var(--size-selector,.25rem) * 4);font-size:.625rem}.kbd-sm{--size:calc(var(--size-selector,.25rem) * 5);font-size:.75rem}.kbd-xs{--size:calc(var(--size-selector,.25rem) * 4);font-size:.625rem}.textarea-sm{font-size:max(var(--font-size,.75rem),.75rem)}.textarea-xs{font-size:max(var(--font-size,.6875rem),.6875rem)}.alert-error{color:var(--color-error-content);--alert-border-color:var(--color-error);--alert-color:var(--color-error)}.alert-info{color:var(--color-info-content);--alert-border-color:var(--color-info);--alert-color:var(--color-info)}.alert-success{color:var(--color-success-content);--alert-border-color:var(--color-success);--alert-color:var(--color-success)}.alert-warning{color:var(--color-warning-content);--alert-border-color:var(--color-warning);--alert-color:var(--color-warning)}.checkbox-primary{color:var(--color-primary-content);--input-color:var(--color-primary)}.progress-accent{color:var(--color-accent)}.progress-error{color:var(--color-error)}.progress-info{color:var(--color-info)}.progress-primary{color:var(--color-primary)}.progress-secondary{color:var(--color-secondary)}.progress-success{color:var(--color-success)}.progress-warning{color:var(--color-warning)}.btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem) * 12)}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem) * 8)}.btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem) * 6)}.badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.input-error,.input-error:focus,.input-error:focus-within,.select-error,.select-error:focus,.select-error:focus-within{--input-color:var(--color-error)}.toggle-info:checked,.toggle-info[aria-checked=true]{--input-color:var(--color-info)}.toggle-lg[type=checkbox],.toggle-lg:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 7)}.toggle-primary:checked,.toggle-primary[aria-checked=true]{--input-color:var(--color-primary)}.toggle-sm[type=checkbox],.toggle-sm:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 5)}.toggle-xs[type=checkbox],.toggle-xs:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 4)}}.prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.pointer-events-none{pointer-events:none}.collapse:not(td,tr,colgroup){visibility:revert-layer}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.top-0{top:calc(var(--spacing) * 0)}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-full{top:100%}.-right-1\.5{right:calc(var(--spacing) * -1.5)}.right-0{right:calc(var(--spacing) * 0)}.right-3{right:calc(var(--spacing) * 3)}.right-6{right:calc(var(--spacing) * 6)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-6{bottom:calc(var(--spacing) * 6)}.-left-7{left:calc(var(--spacing) * -7)}.-left-9{left:calc(var(--spacing) * -9)}.left-0{left:calc(var(--spacing) * 0)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-span-4{grid-column:span 4/span 4}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-auto{margin-right:auto}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-auto{margin-left:auto}.kbd{box-shadow:none}.alert{border-width:var(--border);border-color:var(--alert-border-color,var(--color-base-200))}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-80{height:calc(var(--spacing) * 80)}.h-\[85vh\]{height:85vh}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[70vh\]{max-height:70vh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[72px\]{width:72px}.w-\[90vw\]{width:90vw}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-28{max-width:calc(var(--spacing) * 28)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-96{max-width:calc(var(--spacing) * 96)}.max-w-\[60ch\]{max-width:60ch}.max-w-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-72{min-width:calc(var(--spacing) * 72)}.min-w-\[4\.5rem\]{min-width:4.5rem}.min-w-\[16px\]{min-width:16px}.min-w-\[140px\]{min-width:140px}.min-w-\[180px\]{min-width:180px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.scroll-mt-4{scroll-margin-top:calc(var(--spacing) * 4)}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-base-200>:not(:last-child)){border-color:var(--color-base-200)}:where(.divide-base-300>:not(:last-child)){border-color:var(--color-base-300)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-box{border-radius:var(--radius-box)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-base-100{border-color:var(--color-base-100)}.border-base-200{border-color:var(--color-base-200)}.border-base-300,.border-base-300\/50{border-color:var(--color-base-300)}@supports (color:color-mix(in lab,red,red)){.border-base-300\/50{border-color:color-mix(in oklab,var(--color-base-300) 50%,transparent)}}.border-base-300\/60{border-color:var(--color-base-300)}@supports (color:color-mix(in lab,red,red)){.border-base-300\/60{border-color:color-mix(in oklab,var(--color-base-300) 60%,transparent)}}.border-base-300\/70{border-color:var(--color-base-300)}@supports (color:color-mix(in lab,red,red)){.border-base-300\/70{border-color:color-mix(in oklab,var(--color-base-300) 70%,transparent)}}.border-base-content\/10{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/10{border-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.border-base-content\/15{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/15{border-color:color-mix(in oklab,var(--color-base-content) 15%,transparent)}}.border-base-content\/20{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-base-content\/20{border-color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.border-error\/20{border-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.border-error\/20{border-color:color-mix(in oklab,var(--color-error) 20%,transparent)}}.border-error\/40{border-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.border-error\/40{border-color:color-mix(in oklab,var(--color-error) 40%,transparent)}}.border-info\/20{border-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.border-info\/20{border-color:color-mix(in oklab,var(--color-info) 20%,transparent)}}.border-info\/30{border-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.border-info\/30{border-color:color-mix(in oklab,var(--color-info) 30%,transparent)}}.border-primary\/30{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,var(--color-primary) 30%,transparent)}}.border-primary\/40{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,var(--color-primary) 40%,transparent)}}.border-primary\/50{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,var(--color-primary) 50%,transparent)}}.border-success\/20{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\/20{border-color:color-mix(in oklab,var(--color-success) 20%,transparent)}}.border-success\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\/30{border-color:color-mix(in oklab,var(--color-success) 30%,transparent)}}.border-success\/40{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\/40{border-color:color-mix(in oklab,var(--color-success) 40%,transparent)}}.border-transparent{border-color:#0000}.border-warning\/30{border-color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.border-warning\/30{border-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.border-l-accent{border-left-color:var(--color-accent)}.border-l-amber-400{border-left-color:var(--color-amber-400)}.border-l-base-content\/30{border-left-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.border-l-base-content\/30{border-left-color:color-mix(in oklab,var(--color-base-content) 30%,transparent)}}.border-l-emerald-400{border-left-color:var(--color-emerald-400)}.border-l-info{border-left-color:var(--color-info)}.border-l-sky-400{border-left-color:var(--color-sky-400)}.border-l-violet-400{border-left-color:var(--color-violet-400)}.border-l-warning{border-left-color:var(--color-warning)}.bg-base-100,.bg-base-100\/40{background-color:var(--color-base-100)}@supports (color:color-mix(in lab,red,red)){.bg-base-100\/40{background-color:color-mix(in oklab,var(--color-base-100) 40%,transparent)}}.bg-base-200,.bg-base-200\/30{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.bg-base-200\/30{background-color:color-mix(in oklab,var(--color-base-200) 30%,transparent)}}.bg-base-200\/40{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.bg-base-200\/40{background-color:color-mix(in oklab,var(--color-base-200) 40%,transparent)}}.bg-base-200\/50{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.bg-base-200\/50{background-color:color-mix(in oklab,var(--color-base-200) 50%,transparent)}}.bg-base-200\/60{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.bg-base-200\/60{background-color:color-mix(in oklab,var(--color-base-200) 60%,transparent)}}.bg-base-200\/80{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.bg-base-200\/80{background-color:color-mix(in oklab,var(--color-base-200) 80%,transparent)}}.bg-base-300,.bg-base-300\/50{background-color:var(--color-base-300)}@supports (color:color-mix(in lab,red,red)){.bg-base-300\/50{background-color:color-mix(in oklab,var(--color-base-300) 50%,transparent)}}.bg-base-content\/30{background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.bg-base-content\/30{background-color:color-mix(in oklab,var(--color-base-content) 30%,transparent)}}.bg-base-content\/50{background-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.bg-base-content\/50{background-color:color-mix(in oklab,var(--color-base-content) 50%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-error,.bg-error\/10{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\/10{background-color:color-mix(in oklab,var(--color-error) 10%,transparent)}}.bg-error\/20{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.bg-error\/20{background-color:color-mix(in oklab,var(--color-error) 20%,transparent)}}.bg-info,.bg-info\/10{background-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\/10{background-color:color-mix(in oklab,var(--color-info) 10%,transparent)}}.bg-info\/15{background-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\/15{background-color:color-mix(in oklab,var(--color-info) 15%,transparent)}}.bg-info\/30{background-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.bg-info\/30{background-color:color-mix(in oklab,var(--color-info) 30%,transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-primary-content\/20{background-color:var(--color-primary-content)}@supports (color:color-mix(in lab,red,red)){.bg-primary-content\/20{background-color:color-mix(in oklab,var(--color-primary-content) 20%,transparent)}}.bg-primary\/5{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--color-primary) 5%,transparent)}}.bg-primary\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary) 10%,transparent)}}.bg-primary\/15{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,var(--color-primary) 15%,transparent)}}.bg-primary\/20{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--color-primary) 20%,transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-success,.bg-success\/5{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/5{background-color:color-mix(in oklab,var(--color-success) 5%,transparent)}}.bg-success\/10{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/10{background-color:color-mix(in oklab,var(--color-success) 10%,transparent)}}.bg-success\/15{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/15{background-color:color-mix(in oklab,var(--color-success) 15%,transparent)}}.bg-success\/20{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/20{background-color:color-mix(in oklab,var(--color-success) 20%,transparent)}}.bg-transparent{background-color:#0000}.bg-warning,.bg-warning\/5{background-color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/5{background-color:color-mix(in oklab,var(--color-warning) 5%,transparent)}}.bg-warning\/10{background-color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/10{background-color:color-mix(in oklab,var(--color-warning) 10%,transparent)}}.bg-warning\/20{background-color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/20{background-color:color-mix(in oklab,var(--color-warning) 20%,transparent)}}.stroke-base-content\/10{stroke:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.stroke-base-content\/10{stroke:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.stroke-current{stroke:currentColor}.p-0{padding:calc(var(--spacing) * 0)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-px{padding-block:1px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.78rem\]{font-size:.78rem}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--color-accent)}.text-amber-400{color:var(--color-amber-400)}.text-base-content,.text-base-content\/15{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/15{color:color-mix(in oklab,var(--color-base-content) 15%,transparent)}}.text-base-content\/20{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/20{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.text-base-content\/30{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/30{color:color-mix(in oklab,var(--color-base-content) 30%,transparent)}}.text-base-content\/40{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/40{color:color-mix(in oklab,var(--color-base-content) 40%,transparent)}}.text-base-content\/50{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/50{color:color-mix(in oklab,var(--color-base-content) 50%,transparent)}}.text-base-content\/55{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/55{color:color-mix(in oklab,var(--color-base-content) 55%,transparent)}}.text-base-content\/60{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/60{color:color-mix(in oklab,var(--color-base-content) 60%,transparent)}}.text-base-content\/70{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/70{color:color-mix(in oklab,var(--color-base-content) 70%,transparent)}}.text-base-content\/80{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/80{color:color-mix(in oklab,var(--color-base-content) 80%,transparent)}}.text-base-content\/90{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-base-content\/90{color:color-mix(in oklab,var(--color-base-content) 90%,transparent)}}.text-cyan-500{color:var(--color-cyan-500)}.text-emerald-400{color:var(--color-emerald-400)}.text-error{color:var(--color-error)}.text-error-content{color:var(--color-error-content)}.text-error\/40{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.text-error\/40{color:color-mix(in oklab,var(--color-error) 40%,transparent)}}.text-error\/50{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.text-error\/50{color:color-mix(in oklab,var(--color-error) 50%,transparent)}}.text-error\/70{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.text-error\/70{color:color-mix(in oklab,var(--color-error) 70%,transparent)}}.text-error\/80{color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.text-error\/80{color:color-mix(in oklab,var(--color-error) 80%,transparent)}}.text-info{color:var(--color-info)}.text-info-content{color:var(--color-info-content)}.text-info\/70{color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.text-info\/70{color:color-mix(in oklab,var(--color-info) 70%,transparent)}}.text-info\/80{color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.text-info\/80{color:color-mix(in oklab,var(--color-info) 80%,transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-pink-500{color:var(--color-pink-500)}.text-primary{color:var(--color-primary)}.text-primary-content{color:var(--color-primary-content)}.text-primary\/50{color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/50{color:color-mix(in oklab,var(--color-primary) 50%,transparent)}}.text-primary\/60{color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/60{color:color-mix(in oklab,var(--color-primary) 60%,transparent)}}.text-primary\/70{color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/70{color:color-mix(in oklab,var(--color-primary) 70%,transparent)}}.text-purple-500{color:var(--color-purple-500)}.text-secondary{color:var(--color-secondary)}.text-sky-400{color:var(--color-sky-400)}.text-sky-500{color:var(--color-sky-500)}.text-success{color:var(--color-success)}.text-success-content{color:var(--color-success-content)}.text-success\/80{color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.text-success\/80{color:color-mix(in oklab,var(--color-success) 80%,transparent)}}.text-violet-400{color:var(--color-violet-400)}.text-violet-500{color:var(--color-violet-500)}.text-warning{color:var(--color-warning)}.text-warning-content{color:var(--color-warning-content)}.text-warning\/80{color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.text-warning\/80{color:color-mix(in oklab,var(--color-warning) 80%,transparent)}}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-primary{--tw-ring-color:var(--color-primary)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}@layer daisyui.l1{.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)):not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor);outline-color:currentColor}@media(hover:none){.btn-ghost:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color,currentColor);--btn-border:#0000;--btn-noise:none;outline-color:currentColor}}.btn-outline:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media(hover:none){.btn-outline:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}.blur-\[2px\]{--tw-blur:blur(2px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[1px\]{--tw-backdrop-blur:blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}@media(hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\:text-base-content\/70:is(:where(.group):hover *){color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.group-hover\:text-base-content\/70:is(:where(.group):hover *){color:color-mix(in oklab,var(--color-base-content) 70%,transparent)}}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/block\:opacity-100:is(:where(.group\/block):hover *){opacity:1}}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}.focus-within\:border-primary\/60:focus-within{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.focus-within\:border-primary\/60:focus-within{border-color:color-mix(in oklab,var(--color-primary) 60%,transparent)}}.focus-within\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\:ring-primary\/40:focus-within{--tw-ring-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.focus-within\:ring-primary\/40:focus-within{--tw-ring-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}@media(hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:border-base-content\/10:hover{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.hover\:border-base-content\/10:hover{border-color:color-mix(in oklab,var(--color-base-content) 10%,transparent)}}.hover\:border-base-content\/15:hover{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.hover\:border-base-content\/15:hover{border-color:color-mix(in oklab,var(--color-base-content) 15%,transparent)}}.hover\:border-primary\/50:hover{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,var(--color-primary) 50%,transparent)}}.hover\:bg-base-200:hover,.hover\:bg-base-200\/40:hover{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-base-200\/40:hover{background-color:color-mix(in oklab,var(--color-base-200) 40%,transparent)}}.hover\:bg-base-200\/50:hover{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-base-200\/50:hover{background-color:color-mix(in oklab,var(--color-base-200) 50%,transparent)}}.hover\:bg-base-200\/60:hover{background-color:var(--color-base-200)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-base-200\/60:hover{background-color:color-mix(in oklab,var(--color-base-200) 60%,transparent)}}.hover\:bg-base-300:hover,.hover\:bg-base-300\/30:hover{background-color:var(--color-base-300)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-base-300\/30:hover{background-color:color-mix(in oklab,var(--color-base-300) 30%,transparent)}}.hover\:bg-info\/25:hover{background-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-info\/25:hover{background-color:color-mix(in oklab,var(--color-info) 25%,transparent)}}.hover\:bg-primary\/20:hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,var(--color-primary) 20%,transparent)}}.hover\:bg-success\/15:hover{background-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-success\/15:hover{background-color:color-mix(in oklab,var(--color-success) 15%,transparent)}}.hover\:text-base-content\/60:hover{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.hover\:text-base-content\/60:hover{color:color-mix(in oklab,var(--color-base-content) 60%,transparent)}}.hover\:text-base-content\/70:hover{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.hover\:text-base-content\/70:hover{color:color-mix(in oklab,var(--color-base-content) 70%,transparent)}}.hover\:text-base-content\/80:hover{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.hover\:text-base-content\/80:hover{color:color-mix(in oklab,var(--color-base-content) 80%,transparent)}}.hover\:text-error:hover{color:var(--color-error)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.98\]:active{scale:.98}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:40rem){.sm\:block{display:block}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-rows-\[auto_auto\]{grid-template-rows:auto auto}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\:\:before\]\:bg-base-300:before{background-color:var(--color-base-300)}.\[\&\:\:before\]\:text-base-content:before{color:var(--color-base-content)}.\[\&\>\*\]\:h-full>*{height:100%}.\[\&\>div\]\:py-6>div{padding-block:calc(var(--spacing) * 6)}}:root{--layout-sidebar-width:256px;font-family:Geist,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}code,pre,.font-mono,kbd{font-family:Geist Mono,monospace}.dashboard-layout{background:var(--root-bg)}.dashboard-sidebar{background:var(--layout-sidebar-background);border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.dashboard-sidebar{border-color:color-mix(in srgb,var(--color-base-content) 8%,transparent)}}.dashboard-topbar{background:var(--layout-topbar-background);border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.dashboard-topbar{border-color:color-mix(in srgb,var(--color-base-content) 8%,transparent)}}.sidebar-header{border-bottom-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);border-bottom-width:1px;border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.sidebar-header{border-color:color-mix(in srgb,var(--color-base-content) 6%,transparent)}}.sidebar-header-title{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.sidebar-header-title{color:color-mix(in srgb,var(--color-base-content) 50%,transparent)}}.sidebar-section{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2)}.sidebar-section-title{margin-bottom:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 1);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.sidebar-section-title{color:color-mix(in srgb,var(--color-base-content) 45%,transparent)}}.nav-item{cursor:pointer;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-lg);padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * 2);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s;display:flex}.nav-item:hover:not(.active){background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.nav-item:hover:not(.active){background:color-mix(in srgb,var(--color-base-content) 5%,transparent)}}.nav-item.active{background:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.nav-item.active{background:color-mix(in srgb,var(--color-primary) 15%,transparent)}}.nav-item.active{box-shadow:inset 0 0 0 1px var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.nav-item.active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-primary) 30%,transparent)}}.memory-card{border-radius:var(--radius-lg);padding:calc(var(--spacing) * 3);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;background:var(--color-base-content);transition-duration:.15s}@supports (color:color-mix(in lab,red,red)){.memory-card{background:color-mix(in srgb,var(--color-base-content) 4%,transparent)}}.memory-card:hover{background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.memory-card:hover{background:color-mix(in srgb,var(--color-base-content) 6%,transparent)}}.stats-card{border-radius:var(--radius-lg);padding:calc(var(--spacing) * 4);background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.stats-card{background:color-mix(in srgb,var(--color-base-content) 4%,transparent)}}.property-card{border-radius:var(--radius-lg);padding:calc(var(--spacing) * 3);background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.property-card{background:color-mix(in srgb,var(--color-base-content) 4%,transparent)}}.property-label{margin-bottom:calc(var(--spacing) * 1);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-base-content);display:block}@supports (color:color-mix(in lab,red,red)){.property-label{color:color-mix(in srgb,var(--color-base-content) 55%,transparent)}}.settings-collapse{border-radius:var(--radius-lg);background:var(--color-base-content);overflow:hidden}@supports (color:color-mix(in lab,red,red)){.settings-collapse{background:color-mix(in srgb,var(--color-base-content) 3%,transparent)}}.settings-collapse .collapse-title{min-height:calc(var(--spacing) * 0);padding-block:calc(var(--spacing) * 2.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.status-indicator{align-items:center;gap:calc(var(--spacing) * 1.5);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);border-radius:3.40282e38px;display:inline-flex}.status-indicator.online{background:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.status-indicator.online{background:color-mix(in srgb,var(--color-success) 15%,transparent)}}.status-indicator.online{color:var(--color-success)}.status-indicator.offline{background:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.status-indicator.offline{background:color-mix(in srgb,var(--color-error) 15%,transparent)}}.status-indicator.offline{color:var(--color-error)}.status-indicator.processing{background:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.status-indicator.processing{background:color-mix(in srgb,var(--color-warning) 15%,transparent)}}.status-indicator.processing{color:var(--color-warning)}@layer daisyui.l1.l2.l3{.search-input{cursor:text;border:var(--border) solid #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,.875rem),.875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab,red,red)){.search-input{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000) inset,0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.search-input{--size:calc(var(--size-field,.25rem) * 10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.search-input{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.search-input:where(input){display:inline-flex}.search-input :where(input){-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex}.search-input :where(input):focus,.search-input :where(input):focus-within{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.search-input :where(input):focus,.search-input :where(input):focus-within{outline-offset:2px;outline:2px solid #0000}}.search-input :where(input[type=url]),.search-input :where(input[type=email]){direction:ltr}.search-input :where(input[type=date]){display:inline-flex}.search-input:focus,.search-input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab,red,red)){.search-input:focus,.search-input:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color) calc(var(--depth) * 10%),#0000)}}.search-input:focus,.search-input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media(pointer:coarse){@supports (-webkit-touch-callout:none){.search-input:focus,.search-input:focus-within{--font-size:1rem}}}.search-input:has(>input[disabled]),.search-input:is(:disabled,[disabled]),fieldset:disabled .search-input{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.search-input:has(>input[disabled]),.search-input:is(:disabled,[disabled]),fieldset:disabled .search-input{color:color-mix(in oklab,var(--color-base-content) 40%,transparent)}}:is(.search-input:has(>input[disabled]),.search-input:is(:disabled,[disabled]),fieldset:disabled .search-input)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){:is(.search-input:has(>input[disabled]),.search-input:is(:disabled,[disabled]),fieldset:disabled .search-input)::placeholder{color:color-mix(in oklab,var(--color-base-content) 20%,transparent)}}.search-input:has(>input[disabled]),.search-input:is(:disabled,[disabled]),fieldset:disabled .search-input{box-shadow:none}.search-input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.search-input::-webkit-date-and-time-value{text-align:inherit}.search-input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.search-input::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}.search-input:has(>input[type=date]) :where(input[type=date]){webkit-appearance:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex}.search-input:has(>input[type=date]) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute;inset-inline-end:.75em}}@layer daisyui.l1.l2{.search-input{--size:calc(var(--size-field,.25rem) * 8);font-size:max(var(--font-size,.75rem),.75rem)}.search-input[type=number]::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}.badge-observation{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.badge-summary{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.badge-prompt{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.badge-bugfix{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.badge-refactor{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.badge-discovery{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.badge-decision{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.badge-change{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}}.search-input{border-style:var(--tw-border-style);background:var(--color-base-content);border-width:1px;width:100%}@supports (color:color-mix(in lab,red,red)){.search-input{background:color-mix(in srgb,var(--color-base-content) 4%,transparent)}}.search-input{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.search-input{border-color:color-mix(in srgb,var(--color-base-content) 10%,transparent)}}.search-input:focus{border-color:var(--color-primary);background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.search-input:focus{background:color-mix(in srgb,var(--color-base-content) 6%,transparent)}}.badge-feature{color:#4ade80;background-color:#22c55e26;border-color:#22c55e40}.dashboard-layout:after{content:"";z-index:0;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;position:fixed;top:0;right:0;bottom:0;left:0}@media(prefers-reduced-motion:reduce){.dashboard-layout:after{display:none}}.surface-elevated{background:var(--color-base-400)}.surface-border{border-color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.surface-border{border-color:color-mix(in srgb,var(--color-base-content) 10%,transparent)}}.card-hover{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}.card-hover:hover{border-color:var(--color-base-content);transform:translateY(-2px)}@supports (color:color-mix(in lab,red,red)){.card-hover:hover{border-color:color-mix(in srgb,var(--color-base-content) 15%,transparent)}}@media(prefers-reduced-motion:reduce){.card-hover:hover{transform:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.text-display{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);letter-spacing:-.025em}.text-heading{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);letter-spacing:-.015em}.text-label{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-label{color:color-mix(in srgb,var(--color-base-content) 50%,transparent)}}.text-data{font-variant-numeric:tabular-nums;font-family:Geist Mono,monospace}.text-muted{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-muted{color:color-mix(in srgb,var(--color-base-content) 50%,transparent)}}.text-subtle{color:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){.text-subtle{color:color-mix(in srgb,var(--color-base-content) 70%,transparent)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--color-base-content) 15%,transparent)}}::-webkit-scrollbar-thumb{border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-base-content)}@supports (color:color-mix(in lab,red,red)){::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--color-base-content) 25%,transparent)}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes dropdown{0%{opacity:0}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes rotator{89.9999%,to{--first-item-position:0 0%}90%,99.9999%{--first-item-position:0 calc(var(--items) * 100%)}to{translate:0 -100%}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@keyframes menu{0%{opacity:0}}@keyframes progress{50%{background-position-x:-115%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}} diff --git a/uninstall.sh b/uninstall.sh index 798bdb9d..7b7dc9dc 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -10,9 +10,23 @@ HOOKS_BASELINE_FILE="$CLAUDE_DIR/.pilot-hooks-baseline.json" MCP_BASELINE_FILE="$CLAUDE_DIR/.pilot-mcp-baseline.json" LSP_MANIFEST_FILE="$PILOT_DIR/.pilot-lsp-plugins.json" -# Piebald LSP plugins installed by Pilot (Task 4) LSP_MARKETPLACE="claude-code-lsps" +EXTRA_PLUGIN_IDS=( + "codex@openai-codex" + "chrome-devtools-mcp@chrome-devtools-plugins" +) + +LEGACY_PLUGIN_IDS=( + "context-mode@context-mode" +) +LEGACY_MARKETPLACE_NAMES=( + "context-mode" +) +LEGACY_HOOK_FILES=( + "context-mode-cache-heal.mjs" +) + CLAUDE_ALIAS_MARKER="# Pilot Shell" OLD_CLAUDE_PILOT_MARKER="# Claude Pilot" OLD_CCP_MARKER="# Claude CodePro alias" @@ -98,7 +112,6 @@ confirm_uninstall() { echo " • Clean Pilot-added keys (and mcpServers) from ~/.claude.json" fi - # LSP plugins Pilot installed itself (not user-pre-installed ones) if [ -f "$LSP_MANIFEST_FILE" ]; then local lsp_ids lsp_ids=$(grep -oE '"[a-z][a-z0-9-]*@'"$LSP_MARKETPLACE"'"' "$LSP_MANIFEST_FILE" 2>/dev/null | sed 's/"//g' | tr '\n' ' ') @@ -107,6 +120,20 @@ confirm_uninstall() { fi fi + if command -v claude >/dev/null 2>&1; then + local extras_present="" + local plugin_list + plugin_list=$(claude plugins list 2>/dev/null) + for plugin_id in "${EXTRA_PLUGIN_IDS[@]}" "${LEGACY_PLUGIN_IDS[@]}"; do + if echo "$plugin_list" | grep -q "$plugin_id"; then + extras_present="${extras_present}${plugin_id} " + fi + done + if [ -n "$extras_present" ]; then + echo " • Uninstall Pilot-installed plugins: ${extras_present}" + fi + fi + local baseline_files="" for f in "$CLAUDE_DIR/.pilot-settings-baseline.json" "$CLAUDE_DIR/.pilot-claude-baseline.json" "$HOOKS_BASELINE_FILE" "$MCP_BASELINE_FILE" "$MANIFEST_FILE"; do if [ -f "$f" ]; then @@ -248,8 +275,6 @@ run_surgical_cleanup() { return fi - # Pass paths via env vars (NOT interpolated into Python source) to defend - # against home-dir paths with single-quotes or other shell metachars. PILOT_TARGET="$target_file" PILOT_BASELINE_FILE="$baseline_file" PILOT_DISPLAY="$display_path" python3 -c ' import json, os, sys @@ -324,12 +349,6 @@ remove_pilot_settings() { echo " [!!] Skipped ~/.claude/settings.json (no baseline found, manual cleanup needed)" fi - # Strip Pilot's merged `hooks` entries using the dedicated hooks baseline - # (Task 1). Signature-aware reversal — uses (matcher, sorted-commands) - # identity, matching the install-time merge_pilot_hooks logic — NOT a - # generic value-equality diff. This correctly handles the case where the - # user added their own hook entries alongside Pilot's: Pilot's entries are - # removed by signature; user entries remain. if [ -f "$settings_file" ] && [ -f "$HOOKS_BASELINE_FILE" ] && command -v python3 >/dev/null 2>&1; then PILOT_SETTINGS="$settings_file" PILOT_HOOKS_BASELINE="$HOOKS_BASELINE_FILE" python3 -c ' import json, os, sys @@ -402,14 +421,7 @@ remove_claude_json_keys() { return fi - # Value-aware MCP server cleanup: only remove a Pilot server entry when its - # value in ~/.claude.json EXACTLY matches the dedicated MCP baseline (i.e., - # the user hasn't modified it). User-modified entries are left entirely - # intact — NOT partially gutted by the recursive surgical cleanup. if [ -f "$mcp_baseline" ] && command -v python3 >/dev/null 2>&1; then - # Pass paths via env vars (NOT shell-interpolated into Python source) to - # defend against home-dir paths containing single-quotes or other shell - # metacharacters. PILOT_CLAUDE_JSON="$claude_json" PILOT_MCP_BASELINE="$mcp_baseline" python3 -c ' import json, os, sys @@ -454,8 +466,6 @@ with open(claude_json, "w") as f: ' fi - # Standard surgical cleanup for ~/.claude.json non-MCP keys (claude.json - # template keys — owned by .pilot-claude-baseline.json). if [ -f "$baseline" ]; then run_surgical_cleanup "$claude_json" "$baseline" "~/.claude.json" fi @@ -494,6 +504,41 @@ uninstall_lsp_plugins() { rm -f "$LSP_MANIFEST_FILE" } +uninstall_extra_plugins() { + if ! command -v claude >/dev/null 2>&1; then + echo " [!!] Skipped non-LSP plugin uninstall (claude CLI not found)" + return + fi + + local removed_count=0 + local plugin_list + plugin_list=$(claude plugins list 2>/dev/null) + for plugin_id in "${EXTRA_PLUGIN_IDS[@]}" "${LEGACY_PLUGIN_IDS[@]}"; do + if echo "$plugin_list" | grep -q "$plugin_id"; then + if claude plugins uninstall "$plugin_id" -y >/dev/null 2>&1; then + removed_count=$((removed_count + 1)) + fi + fi + done + + local marketplace_list + marketplace_list=$(claude plugins marketplace list 2>/dev/null) + for marketplace_name in "${LEGACY_MARKETPLACE_NAMES[@]}"; do + if echo "$marketplace_list" | grep -q "$marketplace_name"; then + claude plugins marketplace remove "$marketplace_name" >/dev/null 2>&1 || true + fi + done + + for hook_file in "${LEGACY_HOOK_FILES[@]}"; do + rm -f "$CLAUDE_DIR/hooks/$hook_file" + done + + if [ "$removed_count" -gt 0 ]; then + echo " [OK] Uninstalled $removed_count Pilot-installed plugin(s) (codex/chrome-devtools, plus legacy if present)" + removed_items+=("$removed_count non-LSP plugin(s)") + fi +} + remove_pilot_baselines() { local files=( "$CLAUDE_DIR/.pilot-settings-baseline.json" @@ -617,6 +662,7 @@ remove_manifest_files remove_pilot_settings remove_claude_json_keys uninstall_lsp_plugins +uninstall_extra_plugins remove_pilot_baselines remove_pilot_plugin remove_pilot_dir